tx · 4fMNfSqvJT82EaiVkwSJxu7aj6KZ2PVj3VSu2n7nUXa9

3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr:  -0.02200000 Waves

2023.05.31 12:08 [2601938] smart account 3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr > SELF 0.00000000 Waves

{ "type": 13, "id": "4fMNfSqvJT82EaiVkwSJxu7aj6KZ2PVj3VSu2n7nUXa9", "fee": 2200000, "feeAssetId": null, "timestamp": 1685524141835, "version": 2, "chainId": 84, "sender": "3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr", "senderPublicKey": "GFbasS3jufhZkK4xR7tdTjjnP8K33KvJFEDHRtxXDkaJ", "proofs": [ "1249wrXecxs3ch756vxU26QekLY3UC93CupvobuYhTmQ6m8RSMc1EPiQz9TueoAsUCXY6MgagEiWWLjrhUREbwc" ], "script": "base64:BgL+FggCEgQKAggBEgcKBQgICAgBEgQKAggIEgUKAwgIARIECgIICBIDCgEBEgMKAQESBAoCCAgSBAoCCAQSABIDCgEBEgASBAoCCAgSBAoCCAgSBAoCCAgSACIJc2VwYXJhdG9yIg5wb29sV2VpZ2h0TXVsdCIPbWF4RGVwdGhEZWZhdWx0IhZmaW5hbGl6YXRpb25TdGFnZVRvdGFsIhdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcyIOa2V5RXBvY2hMZW5ndGgiEWtleUVwb2NoTGVuZ3RoTmV3IhVrZXlFcG9jaExlbmd0aEJ5RXBvY2giBWVwb2NoIg9rZXlDdXJyZW50RXBvY2giC2tleU1heERlcHRoIiJrZXlWb3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0Ih1rZXlWb3RpbmdFbWlzc2lvblJhdGVDb250cmFjdCISa2V5RmFjdG9yeUNvbnRyYWN0IhNrZXlCb29zdGluZ0NvbnRyYWN0IhJrZXlTdGFraW5nQ29udHJhY3QiFGtleUZpbmFsaXphdGlvblN0YWdlIgtrZXlOZXh0UG9vbCILa2V5TmV4dFVzZXIiDmtleVN0YXJ0SGVpZ2h0IhFrZXlDdXJyZW50RXBvY2hVaSIQa2V5U3RhcnRIZWlnaHRVaSIda2V5RmluYWxpemF0aW9uU2hvdWxkQmVGb3JjZWQiFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaCIMa2V5RmluYWxpemVkIglrZXlJbkxpc3QiBHBvb2wiCyR0MDE3ODgxODI4Ig1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiB2tleVVzZWQiB2FkZHJlc3MiB2tleVZvdGUiCyR0MDIxMDIyMTQyIg9rZXlWb3RpbmdSZXN1bHQiCyR0MDIzMjQyMzY0IhVrZXlWb3RpbmdSZXN1bHRTdGFrZWQiDGxwQXNzZXRJZFN0ciIMa2V5UG9vbFNoYXJlIgskdDAyNjg1MjcyNSINa2V5VG90YWxWb3RlcyIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIOZ2V0VmFsdWVPckZhaWwiA2tleSIEdHlwZSIFZXJyb3IiByRtYXRjaDAiA3N0ciIDaW50IgxnZXRTdHJPckZhaWwiAUAiDGdldEludE9yRmFpbCIMcG9vbFRvU3RyaW5nIgxzdHJpbmdUb1Bvb2wiBXBhcnRzIg9mYWN0b3J5Q29udHJhY3QiGklkeEZhY3RvcnlDZmdHd3hSZXdhcmREYXBwIg1rZXlGYWN0b3J5Q2ZnIhRyZWFkRmFjdG9yeUNmZ09yRmFpbCIHZmFjdG9yeSIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIWZ2V0THBBc3NldEJ5UG9vbEFzc2V0cyIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCITcG9vbENvbnRyYWN0QWRkcmVzcyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIJbHBBc3NldElkIhhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwiCyR0MDU1NjU1NjA1IhBnd3hSZXdhcmREZXBvc2l0IhJnd3hSZXdhcmRzQ29udHJhY3QiDXBvb2xzTGlzdE5hbWUiEGdldFZvdGVzTGlzdE5hbWUiCyR0MDYwMjI2MDYyIgtrZXlMaXN0SGVhZCIIbGlzdE5hbWUiBG1ldGEiC2tleUxpc3RTaXplIgtrZXlMaXN0UHJldiICaWQiC2tleUxpc3ROZXh0Igxjb250YWluc05vZGUiCmhlYWRPclVuaXQiCnByZXZPclVuaXQiCm5leHRPclVuaXQiEWluc2VydE5vZGVBY3Rpb25zIghsaXN0U2l6ZSIJY2hlY2tOb2RlIhFkZWxldGVOb2RlQWN0aW9ucyIWa2V5TWFuYWdlclZhdWx0QWRkcmVzcyITa2V5TWFuYWdlclB1YmxpY0tleSIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIJaXNNYW5hZ2VyIgFpIgJwayILbXVzdE1hbmFnZXIiCG11c3RUaGlzIgt1c2VyQWRkcmVzcyIMdGFyZ2V0SGVpZ2h0Ihdib29zdGluZ0NvbnRyYWN0QWRkcmVzcyIfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIPc3Rha2luZ0NvbnRyYWN0IgtlcG9jaExlbmd0aCIGY2hlY2tzIg1pbkxpc3RBY3Rpb25zIhhjdXJyZW50RXBvY2hJc05vdERlZmluZWQiEnN0YXJ0SGVpZ2h0QWN0aW9ucyIGYW1vdW50IgtzdGFydEhlaWdodCIJZW5kSGVpZ2h0IhdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdCIEdXNlZCIEdm90ZSIKcG9vbFJlc3VsdCIKdG90YWxWb3RlcyITZ3d4QW1vdW50QXRFbmRUb3RhbCIJYXZhaWxhYmxlIgduZXdWb3RlIgp3eEVtaXNzaW9uIg12b3Rlc0xpc3ROYW1lIhB2b3Rlc0xpc3RBY3Rpb25zIg5uZXdFcG9jaExlbmd0aCILbmV3TWF4RGVwdGgiB3Bvb2xTdHIiC2NoZWNrQ2FsbGVyIg1lcG9jaFByZXZpb3VzIhNzdGFydEhlaWdodFByZXZpb3VzIhNlcG9jaExlbmd0aFByZXZpb3VzIhFlbmRIZWlnaHRQcmV2aW91cyIQY2hlY2tUYXJnZXRFcG9jaCINJHQwMTgwNjUxODEwNSIbZ3d4QW1vdW50QXRFbmRUb3RhbFByZXZpb3VzIgx2b3RpbmdSZXN1bHQiDHZvdGVQcmV2aW91cyIadm90aW5nUmVzdWx0U3Rha2VkUHJldmlvdXMiDHN0YWtlZEJ5VXNlciIZdm90aW5nUmVzdWx0U3Rha2VkQWN0aW9ucyIHYWN0aW9ucyIFZm9yY2UiC3RhcmdldEVwb2NoIgxjdXJyZW50RXBvY2giDSR0MDIwNDYyMjA1MDIiAXIiBXNoYXJlIg9tb2RpZnlXZWlnaHRJbnYiEHBvb2xzTGlzdEFjdGlvbnMiDXByZXZpb3VzRXBvY2giCG5ld0Vwb2NoIhRuZXdFcG9jaExlbmd0aE9wdGlvbiIVbmV3RXBvY2hMZW5ndGhBY3Rpb25zIgpwb29sT3JVbml0Igp1c2VyT3JVbml0IgckbWF0Y2gxIgxwb29sc0hlYWRTdHIiDm5leHRVc2VyT3JVbml0IgR1c2VyIgRuZXh0Ig5wcm9jZXNzVm90ZUludiIObmV4dFBvb2xPclVuaXQiByRtYXRjaDIiCG5leHRVc2VyIhNnd3hSZXdhcmREZXBvc2l0SW52IgtuZXh0UG9vbFN0ciIHY291bnRlciIadm90aW5nRW1pc3Npb25SYXRlQ29udHJhY3QiBnJlc3VsdCIDaW52IghtYXhEZXB0aCIWZmluYWxpemF0aW9uSW5Qcm9ncmVzcyICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5PwABYQICX18AAWIAgMLXLwABYwAKAAFkAAAAAWUAAQABZgkAuQkCCQDMCAICAiVzCQDMCAICC2Vwb2NoTGVuZ3RoBQNuaWwFAWEAAWcJALkJAgkAzAgCAgQlcyVzCQDMCAICEGVwb2NoTGVuZ3RoX19uZXcFA25pbAUBYQEBaAEBaQkAuQkCCQDMCAICBCVzJWQJAMwIAgILZXBvY2hMZW5ndGgJAMwIAgkApAMBBQFpBQNuaWwFAWEAAWoJALkJAgkAzAgCAgIlcwkAzAgCAgxjdXJyZW50RXBvY2gFA25pbAUBYQABawkAuQkCCQDMCAICAiVzCQDMCAICCG1heERlcHRoBQNuaWwFAWEAAWwJALkJAgkAzAgCAgIlcwkAzAgCAh92b3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0BQNuaWwFAWEAAW0JALkJAgkAzAgCAgIlcwkAzAgCAhp2b3RpbmdFbWlzc2lvblJhdGVDb250cmFjdAUDbmlsBQFhAAFuCQC5CQIJAMwIAgICJXMJAMwIAgIPZmFjdG9yeUNvbnRyYWN0BQNuaWwFAWEAAW8JALkJAgkAzAgCAgIlcwkAzAgCAhBib29zdGluZ0NvbnRyYWN0BQNuaWwFAWEAAXAJALkJAgkAzAgCAgIlcwkAzAgCAg9zdGFraW5nQ29udHJhY3QFA25pbAUBYQABcQkAuQkCCQDMCAICAiVzCQDMCAICEWZpbmFsaXphdGlvblN0YWdlBQNuaWwFAWEAAXIJALkJAgkAzAgCAgIlcwkAzAgCAghuZXh0UG9vbAUDbmlsBQFhAAFzCQC5CQIJAMwIAgICJXMJAMwIAgIIbmV4dFVzZXIFA25pbAUBYQABdAkAuQkCCQDMCAICAiVzCQDMCAICC3N0YXJ0SGVpZ2h0BQNuaWwFAWEAAXUJALkJAgkAzAgCAgIlcwkAzAgCAg5jdXJyZW50RXBvY2hVaQUDbmlsBQFhAAF2CQC5CQIJAMwIAgICJXMJAMwIAgINc3RhcnRIZWlnaHRVaQUDbmlsBQFhAAF3CQC5CQIJAMwIAgICJXMJAMwIAgIFZm9yY2UFA25pbAUBYQEBeAEBaQkAuQkCCQDMCAICBCVzJWQJAMwIAgILc3RhcnRIZWlnaHQJAMwIAgkApAMBBQFpBQNuaWwFAWEBAXkBAWkJALkJAgkAzAgCAgQlcyVkCQDMCAICCWZpbmFsaXplZAkAzAgCCQCkAwEFAWkFA25pbAUBYQEBegEBQQQBQgUBQQQBQwgFAUICXzEEAUQIBQFCAl8yCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBmluTGlzdAkAzAgCBQFDCQDMCAIFAUQFA25pbAUBYQEBRQIBRgFpCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICBHVzZWQJAMwIAgkApQgBBQFGCQDMCAIJAKQDAQUBaQUDbmlsBQFhAQFHAwFBAUYBaQQBSAUBQQQBQwgFAUgCXzEEAUQIBQFIAl8yCQC5CQIJAMwIAgIKJXMlcyVzJXMlZAkAzAgCAgR2b3RlCQDMCAIFAUMJAMwIAgUBRAkAzAgCCQClCAEFAUYJAMwIAgkApAMBBQFpBQNuaWwFAWEBAUkCAUEBaQQBSgUBQQQBQwgFAUoCXzEEAUQIBQFKAl8yCQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIMdm90aW5nUmVzdWx0CQDMCAIFAUMJAMwIAgUBRAkAzAgCCQCkAwEFAWkFA25pbAUBYQEBSwIBTAFpCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICEnZvdGluZ1Jlc3VsdFN0YWtlZAkAzAgCBQFMCQDMCAIJAKQDAQUBaQUDbmlsBQFhAQFNAgFBAWkEAU4FAUEEAUMIBQFOAl8xBAFECAUBTgJfMgkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICCXBvb2xTaGFyZQkAzAgCBQFDCQDMCAIFAUQJAMwIAgkApAMBBQFpBQNuaWwFAWEBAU8BAWkJALkJAgkAzAgCAgQlcyVkCQDMCAICCnRvdGFsVm90ZXMJAMwIAgkApAMBBQFpBQNuaWwFAWEBAVACAUwBUQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGFrZWQJAMwIAgUBUQkAzAgCBQFMBQNuaWwFAWEBAVIBAVMJALkJAgkAzAgCAhV2b3RpbmdfZW1pc3Npb24ucmlkZToJAMwIAgUBUwUDbmlsAgEgAQFUAQFTCQACAQkBAVIBBQFTAQFVAwFGAVYBVwQBWAkBAVIBCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAUYJAMwIAgIBLgkAzAgCBQFWCQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgQBWQUBVwMJAAECBQFZAgZTdHJpbmcEAVoFAVkJAJ0IAgUBRgUBVgMJAAECBQFZAgNJbnQEAmFhBQFZCQCaCAIFAUYFAVYJAQFUAQISaW52YWxpZCBlbnRyeSB0eXBlBQFYAQJhYgIBRgFWCgACYWMJAQFVAwUBRgUBVgIAAwkAAQIFAmFjAgZTdHJpbmcFAmFjCQACAQkArAICCQADAQUCYWMCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwECYWQCAUYBVgoAAmFjCQEBVQMFAUYFAVYAAAMJAAECBQJhYwIDSW50BQJhYwkAAgEJAKwCAgkAAwEFAmFjAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmFlAQFBCQCsAgIJAKwCAggFAUECXzEFAWEIBQFBAl8yAQJhZgEBWgQCYWcJALUJAgUBWgUBYQMJAAACCQCQAwEFAmFnAAIJAJQKAgkAkQMCBQJhZwAACQCRAwIFAmFnAAEJAQFUAQITaW52YWxpZCBwb29sIHN0cmluZwACYWgJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhYgIFBHRoaXMFAW4AAmFpAAoBAmFqAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFrAQJhbAkAtQkCCQECYWICBQJhbAkBAmFqAAUBYQECYW0BAmFuCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFuBQJhaQECYW8CAUMBRAoBAmFwAQJhcQkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhcQoBAmFyAgJhcwJhdAkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmFzAgJfXwkApAMBBQJhdAIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QKAQJhdQECYXYJAKwCAgkArAICAgglcyVzJXNfXwUCYXYCIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0BAJhdwkBAmFkAgUCYWgJAQJhcAEFAUMEAmF4CQECYWQCBQJhaAkBAmFwAQUBRAQCYXYJAQJhYgIFAmFoCQECYXICBQJhdwUCYXgEAmF5CQECYWICBQJhaAkBAmF1AQUCYXYFAmF5AQJhegEBQQQCYUEFAUEEAUMIBQJhQQJfMQQBRAgFAmFBAl8yCgACYWMJAPwHBAUCYWgCGGNoZWNrV3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQFDCQDMCAIFAUQFA25pbAUDbmlsAwkAAQIFAmFjAgdCb29sZWFuBQJhYwkAAgEJAKwCAgkAAwEFAmFjAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAQJhQgAEAmFuCQECYWsBBQJhaAQCYUMJAQJhbQEFAmFuCQD8BwQFAmFDAgdkZXBvc2l0BQNuaWwFA25pbAACYUQCBXBvb2xzAQJhRQEBQQQCYUYFAUEEAUMIBQJhRgJfMQQBRAgFAmFGAl8yCQC5CQIJAMwIAgIFdm90ZXMJAMwIAgUBQwkAzAgCBQFEBQNuaWwFAWEBAmFHAQJhSAQCYUkDCQAAAgUCYUgFAmFEAgQlcyVzAgglcyVzJXMlcwkAuQkCCQDMCAIFAmFJCQDMCAIFAmFICQDMCAICBGhlYWQFA25pbAUBYQECYUoBAmFIBAJhSQMJAAACBQJhSAUCYUQCBCVzJXMCCCVzJXMlcyVzCQC5CQIJAMwIAgUCYUkJAMwIAgUCYUgJAMwIAgIEc2l6ZQUDbmlsBQFhAQJhSwICYUgCYUwEAmFJAwkAAAIFAmFIBQJhRAIIJXMlcyVzJXMCCiVzJXMlcyVzJXMJALkJAgkAzAgCBQJhSQkAzAgCBQJhSAkAzAgCBQJhTAkAzAgCAgRwcmV2BQNuaWwFAWEBAmFNAgJhSAJhTAQCYUkDCQAAAgUCYUgFAmFEAgglcyVzJXMlcwIKJXMlcyVzJXMlcwkAuQkCCQDMCAIFAmFJCQDMCAIFAmFICQDMCAIFAmFMCQDMCAICBG5leHQFA25pbAUBYQECYU4CAmFIAmFMBAJhTwkAnQgCBQR0aGlzCQECYUcBBQJhSAQCYVAJAJ0IAgUEdGhpcwkBAmFLAgUCYUgFAmFMBAJhUQkAnQgCBQR0aGlzCQECYU0CBQJhSAUCYUwDAwkAAAIFAmFMCQELdmFsdWVPckVsc2UCBQJhTwIABgkBAiE9AgUCYVAFBHVuaXQGCQECIT0CBQJhUQUEdW5pdAECYVICAmFIAmFMBAJhTwkAnQgCBQR0aGlzCQECYUcBBQJhSAQCYVMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFKAQUCYUgAAAQCYVQDCQEBIQEJAQJhTgIFAmFIBQJhTAYJAQFUAQILTm9kZSBleGlzdHMDCQAAAgUCYVQFAmFUCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFKAQUCYUgJAGQCBQJhUwABBQNuaWwDCQECIT0CBQJhTwUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYU0CBQJhSAUCYUwJAQV2YWx1ZQEFAmFPCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhSwIFAmFICQEFdmFsdWUBBQJhTwUCYUwFA25pbAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhRwEFAmFIBQJhTAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJhVQICYUgCYUwEAmFPCQCdCAIFBHRoaXMJAQJhRwEFAmFIBAJhUwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYUoBBQJhSAAABAJhUAkAnQgCBQR0aGlzCQECYUsCBQJhSAUCYUwEAmFRCQCdCAIFBHRoaXMJAQJhTQIFAmFIBQJhTAkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYUoBBQJhSAkAZQIFAmFTAAEFA25pbAMDCQECIT0CBQJhUAUEdW5pdAkBAiE9AgUCYVEFBHVuaXQHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhTQIFAmFICQEFdmFsdWUBBQJhUAkBBXZhbHVlAQUCYVEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFLAgUCYUgJAQV2YWx1ZQEFAmFRCQEFdmFsdWUBBQJhUAkAzAgCCQELRGVsZXRlRW50cnkBCQECYUsCBQJhSAUCYUwJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFNAgUCYUgFAmFMBQNuaWwDCQECIT0CBQJhUQUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYUcBBQJhSAkBBXZhbHVlAQUCYVEJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFNAgUCYUgFAmFMCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhSwIFAmFICQEFdmFsdWUBBQJhUQUDbmlsAwkBAiE9AgUCYVAFBHVuaXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFLAgUCYUgFAmFMCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTQIFAmFICQEFdmFsdWUBBQJhUAUDbmlsAwkAAAIFAmFMCQELdmFsdWVPckVsc2UCBQJhTwIACQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRwEFAmFIBQNuaWwJAQFUAQkArAICCQCsAgIJAKwCAgIOaW52YWxpZCBub2RlOiAFAmFIAgEuBQJhTAECYVYAAhclc19fbWFuYWdlclZhdWx0QWRkcmVzcwECYVcAAhQlc19fbWFuYWdlclB1YmxpY0tleQECYVgABAFZCQCiCAEJAQJhVgADCQABAgUBWQIGU3RyaW5nBAJhWQUBWQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYVkFBHRoaXMBAmFaAAQCYmEJAQJhWAAEAVkJAJ0IAgUCYmEJAQJhVwADCQABAgUBWQIGU3RyaW5nBAJhWQUBWQkA2QQBBQJhWQMJAAECBQFZAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmJiAQJiYwQBWQkBAmFaAAMJAAECBQFZAgpCeXRlVmVjdG9yBAJiZAUBWQkAAAIIBQJiYw9jYWxsZXJQdWJsaWNLZXkFAmJkAwkAAQIFAVkCBFVuaXQJAAACCAUCYmMGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmJlAQJiYwMJAQJiYgEFAmJjBgkAAgECEXBlcm1pc3Npb24gZGVuaWVkAQJiZgECYmMDCQAAAggFAmJjBmNhbGxlcgUEdGhpcwYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZBACYmMBGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAICYmcCYmgEAmJpCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBAmFiAgUEdGhpcwUBbwkBAVIBAiFpbnZhbGlkIGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MJAJQKAgUDbmlsCgACYWMJAPwHBAUCYmkCIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIFAmJnCQDMCAIFAmJoBQNuaWwFA25pbAMJAAECBQJhYwIDSW50BQJhYwkAAgEJAKwCAgkAAwEFAmFjAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQCYmMBC2NvbnN0cnVjdG9yBQJhaAJiagJiawJibAJibQQCYm4JAMwIAgkBAmJlAQUCYmMJAMwIAgMJAQIhPQIJAKYIAQUCYWgFBHVuaXQGAiBpbnZhbGlkIGZhY3RvcnkgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQJiagUEdW5pdAYCMmludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNhbmRpZGF0ZSBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQECIT0CCQCmCAEFAmJrBQR1bml0BgIhaW52YWxpZCBib29zdGluZyBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQECIT0CCQCmCAEFAmJsBQR1bml0BgIgaW52YWxpZCBzdGFraW5nIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAGYCBQJibQAABgkBAVQBAhRpbnZhbGlkIGVwb2NoIGxlbmd0aAUDbmlsAwkAAAIFAmJuBQJibgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAW4FAmFoCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWwFAmJqCQDMCAIJAQtTdHJpbmdFbnRyeQIFAW8FAmJrCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXAFAmJsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFmBQJibQUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQZjcmVhdGUCAUMBRAQCYm4JAMwIAgMJAAACCQDYBAEICAUCYmMGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAWwCAAYJAQJiZQEFAmJjBQNuaWwDCQAAAgUCYm4FAmJuBAFBCQCUCgIFAUMFAUQEAmJvCQDOCAIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQF6AQUBQQYFA25pbAkBAmFSAgUCYUQJAQJhZQEFAUEEAmJwCQAAAgkAmggCBQR0aGlzBQFqBQR1bml0BAJicQMFAmJwBAFpAAAJAMwIAgkBDEludGVnZXJFbnRyeQIFAWoFAWkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQF4AQUBaQUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAXUFAWkJAMwIAgkBDEludGVnZXJFbnRyeQIFAXYFBmhlaWdodAUDbmlsBQNuaWwJAJQKAgkAzggCBQJibwUCYnEFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBBHZvdGUDAUMBRAJicgQBQQkAlAoCBQFDBQFEBAFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWoAAAQCYnMJAQJhZAIFBHRoaXMJAQF4AQUBaQQCYm0JAQJhZAIFBHRoaXMFAWYEAmJ0CQBkAgUCYnMFAmJtBAJidQkAmggCBQR0aGlzBQFxBAJidgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBRQIIBQJiYwZjYWxsZXIFAWkAAAQCYncJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUcDBQFBCAUCYmMGY2FsbGVyBQFpAAAEAmJ4CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFJAgUBQQUBaQAABAJieQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBTwEFAWkAAAQCYnoKAAJhYwkA/AcEBQR0aGlzAhhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQJAMwIAgkA2AQBCAgFAmJjBmNhbGxlcgVieXRlcwkAzAgCBQJidAUDbmlsBQNuaWwDCQABAgUCYWMCA0ludAUCYWMJAAIBCQCsAgIJAAMBBQJhYwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJiQQkAZQIFAmJ6BQJidgQCYkIJAGQCBQJidwUCYnIEAmJDCQECYXoBBQFBBAJibgkAzAgCAwkBAiE9AgkAoAgBCQEBegEFAUEFBHVuaXQGCQEBVAECDmludmFsaWQgYXNzZXRzCQDMCAIDCQBmAgUCYnQFBmhlaWdodAYJAQFUAQIOaW52YWxpZCBoZWlnaHQJAMwIAgMJAAACBQJidQUEdW5pdAYJAQFUAQIYZmluYWxpemF0aW9uIGluIHByb2dyZXNzCQDMCAIDCQBmAgUCYnoAAAYJAQFUAQITeW91IGRvIG5vdCBoYXZlIGdXWAkAzAgCAwMJAGYCBQJicgAACQBnAgUCYkEFAmJyBwYJAQFUAQIOaW52YWxpZCBhbW91bnQJAMwIAgMFAmJDBgkBAVQBAh1wb29sIGhhc24ndCBXWF9FTUlTU0lPTiBsYWJlbAUDbmlsAwkAAAIFAmJuBQJibgQCYkQJAQJhRQEFAUEEAVEJAKUIAQgFAmJjBmNhbGxlcgQCYkUDCQECYU4CBQJiRAUBUQUDbmlsCQECYVICBQJiRAUBUQkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFFAggFAmJjBmNhbGxlcgUBaQkAZAIFAmJ2BQJicgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUcDBQFBCAUCYmMGY2FsbGVyBQFpBQJiQgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUkCBQFBBQFpCQBkAgUCYngFAmJyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBTwEFAWkJAGQCBQJieQUCYnIFA25pbAUCYkUFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBCmNhbmNlbFZvdGUCAUMBRAQBQQkAlAoCBQFDBQFEBAFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWoAAAQCYnMJAQJhZAIFBHRoaXMJAQF4AQUBaQQCYm0JAQJhZAIFBHRoaXMFAWYEAmJ0CQBkAgUCYnMFAmJtBAJidQkAmggCBQR0aGlzBQFxBAJidgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBRQIIBQJiYwZjYWxsZXIFAWkAAAQCYncJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUcDBQFBCAUCYmMGY2FsbGVyBQFpAAAEAmJ4CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFJAgUBQQUBaQAABAJieQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBTwEFAWkAAAQCYm4JAMwIAgMJAQIhPQIJAKAIAQkBAXoBBQFBBQR1bml0BgkBAVQBAg5pbnZhbGlkIGFzc2V0cwkAzAgCAwkAZgIFAmJ0BQZoZWlnaHQGCQEBVAECDmludmFsaWQgaGVpZ2h0CQDMCAIDCQAAAgUCYnUFBHVuaXQGCQEBVAECGGZpbmFsaXphdGlvbiBpbiBwcm9ncmVzcwkAzAgCAwkAZgIFAmJ3AAAGCQEBVAECB25vIHZvdGUFA25pbAMJAAACBQJibgUCYm4EAmJECQECYUUBBQFBBAFRCQClCAEIBQJiYwZjYWxsZXIJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBRQIIBQJiYwZjYWxsZXIFAWkJAJYDAQkAzAgCCQBlAgUCYnYFAmJ3CQDMCAIAAAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFHAwUBQQgFAmJjBmNhbGxlcgUBaQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUkCBQFBBQFpCQBlAgUCYngFAmJ3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBTwEFAWkJAGUCBQJieQUCYncFA25pbAkBAmFVAgUCYkQFAVEFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBDnNldEVwb2NoTGVuZ3RoAQJiRgQCYm4JAMwIAgkBAmJlAQUCYmMJAMwIAgMJAGYCBQJiRgAABgkBAVQBAhRpbnZhbGlkIGVwb2NoIGxlbmd0aAUDbmlsAwkAAAIFAmJuBQJibgkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFnBQJiRgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQtzZXRNYXhEZXB0aAECYkcEAmJuCQDMCAIJAQJiZQEFAmJjCQDMCAIDCQBmAgUCYkcAAAYJAQFUAQIRaW52YWxpZCBtYXggZGVwdGgFA25pbAMJAAACBQJibgUCYm4JAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBawUCYkcFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiYwETcHJvY2Vzc1ZvdGVJTlRFUk5BTAICYkgBUQQCYkkJAQJiZgEFAmJjAwkAAAIFAmJJBQJiSQQCYmcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQFRCQEBUgEJAKwCAgIqcHJvY2Vzc1ZvdGVJTlRFUk5BTDogaW52YWxpZCB1c2VyIGFkZHJlc3MgBQFRBAFpCQECYWQCBQR0aGlzBQFqBAJiSgkAZQIFAWkAAQQCYm0JAQJhZAIFBHRoaXMFAWYEAmJzCQECYWQCBQR0aGlzCQEBeAEFAWkEAmJ0CQBkAgUCYnMFAmJtBAJiSwkBAmFkAgUEdGhpcwkBAXgBBQJiSgQCYkwJAQJhZAIFBHRoaXMJAQFoAQUCYkoEAmJNCQBkAgUCYksFAmJMBAJiTgMJAGcCBQJiSgAABgkBAVQBAitwcm9jZXNzVm90ZUlOVEVSTkFMOiBpbnZhbGlkIHByZXZpb3VzIGVwb2NoAwkAAAIFAmJOBQJiTgQBQQkBAmFmAQUCYkgEAmJPBQFBBAFDCAUCYk8CXzEEAUQIBQJiTwJfMgQCYkMJAQJhegEFAUEEAmJ6CgACYWMJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIFAVEJAMwIAgUCYnQFA25pbAUDbmlsAwkAAQIFAmFjAgNJbnQFAmFjCQACAQkArAICCQADAQUCYWMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCYlAKAAJhYwkA/AcEBQR0aGlzAhhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQJAMwIAgUBUQkAzAgCBQJiTQUDbmlsBQNuaWwDCQABAgUCYWMCA0ludAUCYWMJAAIBCQCsAgIJAAMBBQJhYwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJieQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBTwEFAWkAAAQCYlEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAUkCBQFBBQFpAAAEAmJSCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBAUcDBQFBBQJiZwUCYkoJAQFSAQkArAICCQCsAgIJAKwCAgkArAICAhRwcm9jZXNzVm90ZUlOVEVSTkFMIAUCYkgCASAFAVECEjogbm8gcHJldmlvdXMgdm90ZQQCYnYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUUCBQJiZwUBaQAABAFMCQECYW8CBQFDBQFEBAJiUwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBSwIFAUwFAmJKAAAEAmJsCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWICBQR0aGlzBQFwBAJiVAkBC3ZhbHVlT3JFbHNlAgkAmggCBQJibAkBAVACBQFMBQFRAAAEAmJVAwkAAAIFAmJUAAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUsCBQFMBQJiSgkAZAIFAmJTBQJiUgUDbmlsBAJiQgMJAGYCBQJiUAAACQBrAwUCYlIFAmJ6BQJiUAAABAJiVgMDCQBmAgUCYkIAAAUCYkMHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBRwMFAUEFAmJnBQFpBQJiQgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAU8BBQFpCQBkAgUCYnkFAmJCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSQIFAUEFAWkJAGQCBQJiUQUCYkIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFFAgUCYmcFAWkJAGQCBQJidgUCYkIFA25pbAkBAmFVAgkBAmFFAQUBQQUBUQkAlAoCCQDOCAIFAmJWBQJiVQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiYwETcHJvY2Vzc1Bvb2xJTlRFUk5BTAICYkgCYlcEAmJJCQECYmYBBQJiYwMJAAACBQJiSQUCYkkEAmJYBAJiWQkBAmFkAgUEdGhpcwUBagMFAmJXBQJiWQkAZQIFAmJZAAEEAmJOAwkAZwIFAmJYAAAGCQEBVAECKXByb2Nlc3NQb29sSU5URVJOQUw6IGludmFsaWQgdGFyZ2V0IGVwb2NoAwkAAAIFAmJOBQJiTgQBQQkBAmFmAQUCYkgEAmJaBQFBBAFDCAUCYloCXzEEAUQIBQJiWgJfMgQCYmwJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhYgIFBHRoaXMFAXAEAmF5CQECYW8CBQFDBQFEBAJjYQoAAmFjCQD8BwQFAmJsAhJ1c2Vyc0xpc3RUcmF2ZXJzYWwJAMwIAgUCYXkFA25pbAUDbmlsAwkAAQIFAmFjAgdCb29sZWFuBQJhYwkAAgEJAKwCAgkAAwEFAmFjAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFAmNhBQJjYQMFAmNhCQCUCgIFA25pbAYEAmJDCQECYXoBBQFBBAJieQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBTwEFAmJYAAAEAmJRCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFJAgUBQQUCYlgAAAQCY2IDAwkAAAIFAmJ5AAAGCQEBIQEFAmJDAAAJAGsDBQJiUQUBYgUCYnkEAmNjCQD8BwQFAmFoAgxtb2RpZnlXZWlnaHQJAMwIAgUCYXkJAMwIAgUCY2IFA25pbAUDbmlsAwkAAAIFAmNjBQJjYwQCY2QDAwUCYkMGBQJiVwUDbmlsCQDOCAIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAXoBBQFBBQNuaWwJAQJhVQIFAmFEBQJiSAkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFNAgUBQQUCYlgFAmNiBQNuaWwFAmNkBwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiYwEOZmluYWxpemVIZWxwZXIABAJiVwkBC3ZhbHVlT3JFbHNlAgkAoAgBBQF3BwQBaQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFqAAAEAmNlCQBlAgUBaQABBAJicwkBAmFkAgUEdGhpcwkBAXgBBQFpBAJibQkBAmFkAgUEdGhpcwUBZgQCYnQJAGQCBQJicwUCYm0EAmJ1CQCaCAIFBHRoaXMFAXEDAwMJAGcCBQZoZWlnaHQFAmJ0CQAAAgUCYnUFBHVuaXQHCQEBIQEFAmJXBwQCY2YJAGQCBQFpAAEEAmNnCQCaCAIFBHRoaXMFAWcEAmNoBAFZBQJjZwMJAAECBQFZAgNJbnQEAmJGBQFZCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFmBQJiRgkAzAgCCQELRGVsZXRlRW50cnkBBQFnBQNuaWwDCQABAgUBWQIEVW5pdAUDbmlsCQACAQILTWF0Y2ggZXJyb3IJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBeAEFAmNmBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAXQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBagUCY2YJAMwIAgkBDEludGVnZXJFbnRyeQIFAXEFAWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFoAQUBaQUCYm0FA25pbAUCY2gGAwMFAmJXCQAAAgUCYnUFBHVuaXQHCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAXEFAWUFA25pbAYDCQAAAgUCYnUFBHVuaXQJAJQKAgUDbmlsBwMJAAACBQJidQUBZAQCY2kJAKIIAQUBcgQCY2oJAKIIAQUBcwQBWQUCY2kDCQABAgUBWQIEVW5pdAQCY2sJAKIIAQkBAmFHAQUCYUQDCQABAgUCY2sCBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBcQUBZQkAzAgCCQELRGVsZXRlRW50cnkBBQFyCQDMCAIJAQtEZWxldGVFbnRyeQEFAXMFA25pbAYDCQABAgUCY2sCBlN0cmluZwQCY2wFAmNrCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBcgUCY2wFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQFZAgZTdHJpbmcEAmJIBQFZBAFBCQECYWYBBQJiSAQCY20EAmNrBQJjagMJAAECBQJjawIEVW5pdAkAoggBCQECYUcBCQECYUUBBQFBAwkAAQIFAmNrAgZTdHJpbmcEAmNuBQJjawQCY28JAKIIAQkBAmFNAgkBAmFFAQUBQQUCY24DCQAAAgUCY28FAmNvBAJjcAkA/AcEBQR0aGlzAhNwcm9jZXNzVm90ZUlOVEVSTkFMCQDMCAIFAmJICQDMCAIFAmNuBQNuaWwFA25pbAMJAAACBQJjcAUCY3AFAmNvCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQILTWF0Y2ggZXJyb3IEAmNrBQJjbQMJAAECBQJjawIEVW5pdAQCY3EJAKIIAQkBAmFNAgUCYUQFAmJIBAJjcgUCY3EDCQABAgUCY3ICBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBcQUBZQkAzAgCCQELRGVsZXRlRW50cnkBBQFyCQDMCAIJAQtEZWxldGVFbnRyeQEFAXMFA25pbAYDCQABAgUCY3ICBlN0cmluZwQCYVkFAmNyCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBcgUCYVkJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcwUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFAmNrAgZTdHJpbmcEAmNzBQJjawkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXMFAmNzBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IJAAIBAgtNYXRjaCBlcnJvcgMJAAACBQJidQUBZQQCY2kJAKIIAQUBcgQBWQUCY2kDCQABAgUBWQIEVW5pdAQCY2sJAKIIAQkBAmFHAQUCYUQDCQABAgUCY2sCBFVuaXQEAmJWAwUCYlcJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcQkAzAgCCQELRGVsZXRlRW50cnkBBQF3BQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcQkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAXkBBQJjZQYJAMwIAgkBDEludGVnZXJFbnRyeQIFAXUFAWkJAMwIAgkBDEludGVnZXJFbnRyeQIFAXYFAmJzBQNuaWwEAmN0CQECYUIAAwkAAAIFAmN0BQJjdAkAlAoCBQJiVgYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQABAgUCY2sCBlN0cmluZwQCY3UFAmNrCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBcgUCY3UFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQFZAgZTdHJpbmcEAmJIBQFZBAJjcQkAoggBCQECYU0CBQJhRAUCYkgDCQAAAgUCY3EFAmNxBAJjYQoAAmFjCQD8BwQFBHRoaXMCE3Byb2Nlc3NQb29sSU5URVJOQUwJAMwIAgUCYkgJAMwIAgUCYlcFA25pbAUDbmlsAwkAAQIFAmFjAgdCb29sZWFuBQJhYwkAAgEJAKwCAgkAAwEFAmFjAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuAwkAAAIFAmNhBQJjYQMFAmNhCQCUCgIFA25pbAYEAmNrBQJjcQMJAAECBQJjawIEVW5pdAQCYlYDBQJiVwkAzAgCCQELRGVsZXRlRW50cnkBBQFxCQDMCAIJAQtEZWxldGVFbnRyeQEFAXcJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcgUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFAXEJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQF5AQUCY2UGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF1BQFpCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF2BQJicwkAzAgCCQELRGVsZXRlRW50cnkBBQFyBQNuaWwEAmN0CQECYUIAAwkAAAIFAmN0BQJjdAkAlAoCBQJiVgYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQABAgUCY2sCBlN0cmluZwQCY3UFAmNrCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUBcgUCY3UFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yCQEBVAECFmZpbmFsaXphdGlvbiBpcyBicm9rZW4CYmMBD2ZpbmFsaXplV3JhcHBlcgECY3YEAmN3CQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQFtBAJjeAoAAmFjCQD8BwQFBHRoaXMCDmZpbmFsaXplSGVscGVyBQNuaWwFA25pbAMJAAECBQJhYwIHQm9vbGVhbgUCYWMJAAIBCQCsAgIJAAMBBQJhYwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQJjeAUCY3gDCQEBIQEFAmN4AwkAAAIFAmN2AAAJAQFUAQIeQ3VycmVudCB2b3RpbmcgaXMgbm90IG92ZXIgeWV0BAJjeQkA/AcEBQJjdwIIZmluYWxpemUFA25pbAUDbmlsAwkAAAIFAmN5BQJjeQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmN6CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWsFAWMDCQBmAgUCY3oFAmN2BAJjeQkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgkAZAIFAmN2AAEFA25pbAUDbmlsAwkAAAIFAmN5BQJjeQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQhmaW5hbGl6ZQAEAmN5CQD8BwQFBHRoaXMCD2ZpbmFsaXplV3JhcHBlcgkAzAgCAAAFA25pbAUDbmlsAwkAAAIFAmN5BQJjeQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBFGNvbnRhaW5zTm9kZVJFQURPTkxZAgJhSAJhTAkAlAoCBQNuaWwJAQJhTgIFAmFIBQJhTAJiYwEKaW5zZXJ0Tm9kZQICYUgCYUwEAmJJCQECYmUBBQJiYwMJAAACBQJiSQUCYkkJAJQKAgkBAmFSAgUCYUgFAmFMBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQpkZWxldGVOb2RlAgJhSAJhTAQCYkkJAQJiZQEFAmJjAwkAAAIFAmJJBQJiSQkAlAoCCQECYVUCBQJhSAUCYUwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBGGlzRmluYWxpemF0aW9uSW5Qcm9ncmVzcwAEAmJ1CQCaCAIFBHRoaXMFAXEEAmNBCQECIT0CBQJidQUEdW5pdAkAlAoCBQNuaWwFAmNBAQJjQgECY0MABAJjRAQBWQkBAmFaAAMJAAECBQFZAgpCeXRlVmVjdG9yBAJiZAUBWQUCYmQDCQABAgUBWQIEVW5pdAgFAmNCD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJjQglib2R5Qnl0ZXMJAJEDAggFAmNCBnByb29mcwAABQJjRKAiTk8=", "height": 2601938, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fs8EQGC68ygA1Mc2a5Bcn3tJcoUq2SmE9cDxeMQBfKui Next: C8QbvqM2bqEtXVbgXCk8xRuegV9skWBdDD3fSkNuoV2a Diff:
OldNewDifferences
2424
2525 let l = makeString(["%s", "votingEmissionCandidateContract"], a)
2626
27-let m = makeString(["%s", "factoryContract"], a)
27+let m = makeString(["%s", "votingEmissionRateContract"], a)
2828
29-let n = makeString(["%s", "boostingContract"], a)
29+let n = makeString(["%s", "factoryContract"], a)
3030
31-let o = makeString(["%s", "stakingContract"], a)
31+let o = makeString(["%s", "boostingContract"], a)
3232
33-let p = makeString(["%s", "finalizationStage"], a)
33+let p = makeString(["%s", "stakingContract"], a)
3434
35-let q = makeString(["%s", "nextPool"], a)
35+let q = makeString(["%s", "finalizationStage"], a)
3636
37-let r = makeString(["%s", "nextUser"], a)
37+let r = makeString(["%s", "nextPool"], a)
3838
39-let s = makeString(["%s", "startHeight"], a)
39+let s = makeString(["%s", "nextUser"], a)
4040
41-let t = makeString(["%s", "currentEpochUi"], a)
41+let t = makeString(["%s", "startHeight"], a)
4242
43-let u = makeString(["%s", "startHeightUi"], a)
43+let u = makeString(["%s", "currentEpochUi"], a)
4444
45-let v = makeString(["%s", "force"], a)
45+let v = makeString(["%s", "startHeightUi"], a)
4646
47-func w (i) = makeString(["%s%d", "startHeight", toString(i)], a)
47+let w = makeString(["%s", "force"], a)
48+
49+func x (i) = makeString(["%s%d", "startHeight", toString(i)], a)
4850
4951
50-func x (i) = makeString(["%s%d", "finalized", toString(i)], a)
52+func y (i) = makeString(["%s%d", "finalized", toString(i)], a)
5153
5254
53-func y (z) = {
54- let A = z
55- let B = A._1
56- let C = A._2
57- makeString(["%s%s%s", "inList", B, C], a)
55+func z (A) = {
56+ let B = A
57+ let C = B._1
58+ let D = B._2
59+ makeString(["%s%s%s", "inList", C, D], a)
5860 }
5961
6062
61-func D (E,i) = makeString(["%s%s%d", "used", toString(E), toString(i)], a)
63+func E (F,i) = makeString(["%s%s%d", "used", toString(F), toString(i)], a)
6264
6365
64-func F (z,E,i) = {
65- let G = z
66- let B = G._1
67- let C = G._2
68- makeString(["%s%s%s%s%d", "vote", B, C, toString(E), toString(i)], a)
66+func G (A,F,i) = {
67+ let H = A
68+ let C = H._1
69+ let D = H._2
70+ makeString(["%s%s%s%s%d", "vote", C, D, toString(F), toString(i)], a)
6971 }
7072
7173
72-func H (z,i) = {
73- let I = z
74- let B = I._1
75- let C = I._2
76- makeString(["%s%s%s%d", "votingResult", B, C, toString(i)], a)
74+func I (A,i) = {
75+ let J = A
76+ let C = J._1
77+ let D = J._2
78+ makeString(["%s%s%s%d", "votingResult", C, D, toString(i)], a)
7779 }
7880
7981
80-func J (K,i) = makeString(["%s%s%d", "votingResultStaked", K, toString(i)], a)
82+func K (L,i) = makeString(["%s%s%d", "votingResultStaked", L, toString(i)], a)
8183
8284
83-func L (z,i) = {
84- let M = z
85- let B = M._1
86- let C = M._2
87- makeString(["%s%s%s%d", "poolShare", B, C, toString(i)], a)
85+func M (A,i) = {
86+ let N = A
87+ let C = N._1
88+ let D = N._2
89+ makeString(["%s%s%s%d", "poolShare", C, D, toString(i)], a)
8890 }
8991
9092
91-func N (i) = makeString(["%s%d", "totalVotes", toString(i)], a)
93+func O (i) = makeString(["%s%d", "totalVotes", toString(i)], a)
9294
9395
94-func O (K,P) = makeString(["%s%s%s", "staked", P, K], a)
96+func P (L,Q) = makeString(["%s%s%s", "staked", Q, L], a)
9597
9698
97-func Q (R) = makeString(["voting_emission.ride:", R], " ")
99+func R (S) = makeString(["voting_emission.ride:", S], " ")
98100
99101
100-func S (R) = throw(Q(R))
102+func T (S) = throw(R(S))
101103
102104
103-func T (E,U,V) = {
104- let W = Q(makeString(["mandatory ", toString(E), ".", U, " is not defined"], ""))
105+func U (F,V,W) = {
106+ let X = R(makeString(["mandatory ", toString(F), ".", V, " is not defined"], ""))
105107 valueOrErrorMessage({
106- let X = V
107- if ($isInstanceOf(X, "String"))
108+ let Y = W
109+ if ($isInstanceOf(Y, "String"))
108110 then {
109- let Y = X
110- getString(E, U)
111+ let Z = Y
112+ getString(F, V)
111113 }
112- else if ($isInstanceOf(X, "Int"))
114+ else if ($isInstanceOf(Y, "Int"))
113115 then {
114- let Z = X
115- getInteger(E, U)
116+ let aa = Y
117+ getInteger(F, V)
116118 }
117- else S("invalid entry type")
118- }, W)
119+ else T("invalid entry type")
120+ }, X)
119121 }
120122
121123
122-func aa (E,U) = {
123- let ab = T(E, U, "")
124- if ($isInstanceOf(ab, "String"))
125- then ab
126- else throw(($getType(ab) + " couldn't be cast to String"))
124+func ab (F,V) = {
125+ let ac = U(F, V, "")
126+ if ($isInstanceOf(ac, "String"))
127+ then ac
128+ else throw(($getType(ac) + " couldn't be cast to String"))
127129 }
128130
129131
130-func ac (E,U) = {
131- let ab = T(E, U, 0)
132- if ($isInstanceOf(ab, "Int"))
133- then ab
134- else throw(($getType(ab) + " couldn't be cast to Int"))
132+func ad (F,V) = {
133+ let ac = U(F, V, 0)
134+ if ($isInstanceOf(ac, "Int"))
135+ then ac
136+ else throw(($getType(ac) + " couldn't be cast to Int"))
135137 }
136138
137139
138-func ad (z) = ((z._1 + a) + z._2)
140+func ae (A) = ((A._1 + a) + A._2)
139141
140142
141-func ae (Y) = {
142- let af = split(Y, a)
143- if ((size(af) == 2))
144- then $Tuple2(af[0], af[1])
145- else S("invalid pool string")
143+func af (Z) = {
144+ let ag = split(Z, a)
145+ if ((size(ag) == 2))
146+ then $Tuple2(ag[0], ag[1])
147+ else T("invalid pool string")
146148 }
147149
148150
149-func ag (B,C) = {
150- func ah (ai) = ("%s%s%s__mappings__baseAsset2internalId__" + ai)
151+let ah = addressFromStringValue(ab(this, n))
151152
152- func aj (ak,al) = (((("%d%d%s%s__" + toString(ak)) + "__") + toString(al)) + "__mappings__poolAssets2PoolContract")
153+let ai = 10
153154
154- func am (an) = (("%s%s%s__" + an) + "__mappings__poolContract2LpAsset")
155+func aj () = "%s__factoryConfig"
155156
156- let ao = addressFromStringValue(aa(this, m))
157- let ap = ac(ao, ah(B))
158- let aq = ac(ao, ah(C))
159- let an = aa(ao, aj(ap, aq))
160- let ar = aa(ao, am(an))
161- ar
157+
158+func ak (al) = split(ab(al, aj()), a)
159+
160+
161+func am (an) = addressFromStringValue(an[ai])
162+
163+
164+func ao (C,D) = {
165+ func ap (aq) = ("%s%s%s__mappings__baseAsset2internalId__" + aq)
166+
167+ func ar (as,at) = (((("%d%d%s%s__" + toString(as)) + "__") + toString(at)) + "__mappings__poolAssets2PoolContract")
168+
169+ func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
170+
171+ let aw = ad(ah, ap(C))
172+ let ax = ad(ah, ap(D))
173+ let av = ab(ah, ar(aw, ax))
174+ let ay = ab(ah, au(av))
175+ ay
162176 }
163177
164178
165-func as (z) = {
166- let at = z
167- let B = at._1
168- let C = at._2
169- let ao = addressFromStringValue(aa(this, m))
170- let ab = invoke(ao, "checkWxEmissionPoolLabel", [B, C], nil)
171- if ($isInstanceOf(ab, "Boolean"))
172- then ab
173- else throw(($getType(ab) + " couldn't be cast to Boolean"))
179+func az (A) = {
180+ let aA = A
181+ let C = aA._1
182+ let D = aA._2
183+ let ac = invoke(ah, "checkWxEmissionPoolLabel", [C, D], nil)
184+ if ($isInstanceOf(ac, "Boolean"))
185+ then ac
186+ else throw(($getType(ac) + " couldn't be cast to Boolean"))
174187 }
175188
176189
177-let au = "pools"
178-
179-func av (z) = {
180- let aw = z
181- let B = aw._1
182- let C = aw._2
183- makeString(["votes", B, C], a)
190+func aB () = {
191+ let an = ak(ah)
192+ let aC = am(an)
193+ invoke(aC, "deposit", nil, nil)
184194 }
185195
186196
187-func ax (ay) = {
188- let az = if ((ay == au))
189- then "%s%s"
190- else "%s%s%s%s"
191- makeString([az, ay, "head"], a)
197+let aD = "pools"
198+
199+func aE (A) = {
200+ let aF = A
201+ let C = aF._1
202+ let D = aF._2
203+ makeString(["votes", C, D], a)
192204 }
193205
194206
195-func aA (ay) = {
196- let az = if ((ay == au))
207+func aG (aH) = {
208+ let aI = if ((aH == aD))
197209 then "%s%s"
198210 else "%s%s%s%s"
199- makeString([az, ay, "size"], a)
211+ makeString([aI, aH, "head"], a)
200212 }
201213
202214
203-func aB (ay,aC) = {
204- let az = if ((ay == au))
205- then "%s%s%s%s"
206- else "%s%s%s%s%s"
207- makeString([az, ay, aC, "prev"], a)
215+func aJ (aH) = {
216+ let aI = if ((aH == aD))
217+ then "%s%s"
218+ else "%s%s%s%s"
219+ makeString([aI, aH, "size"], a)
208220 }
209221
210222
211-func aD (ay,aC) = {
212- let az = if ((ay == au))
223+func aK (aH,aL) = {
224+ let aI = if ((aH == aD))
213225 then "%s%s%s%s"
214226 else "%s%s%s%s%s"
215- makeString([az, ay, aC, "next"], a)
227+ makeString([aI, aH, aL, "prev"], a)
216228 }
217229
218230
219-func aE (ay,aC) = {
220- let aF = getString(this, ax(ay))
221- let aG = getString(this, aB(ay, aC))
222- let aH = getString(this, aD(ay, aC))
223- if (if ((aC == valueOrElse(aF, "")))
224- then true
225- else (aG != unit))
226- then true
227- else (aH != unit)
231+func aM (aH,aL) = {
232+ let aI = if ((aH == aD))
233+ then "%s%s%s%s"
234+ else "%s%s%s%s%s"
235+ makeString([aI, aH, aL, "next"], a)
228236 }
229237
230238
231-func aI (ay,aC) = {
232- let aF = getString(this, ax(ay))
233- let aJ = valueOrElse(getInteger(this, aA(ay)), 0)
234- let aK = if (!(aE(ay, aC)))
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, "")))
235244 then true
236- else S("Node exists")
237- if ((aK == aK))
238- then (([IntegerEntry(aA(ay), (aJ + 1))] ++ (if ((aF != unit))
239- then [StringEntry(aD(ay, aC), value(aF)), StringEntry(aB(ay, value(aF)), aC)]
240- else nil)) ++ [StringEntry(ax(ay), aC)])
245+ else (aP != unit))
246+ then true
247+ else (aQ != unit)
248+ }
249+
250+
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)))
255+ then true
256+ else T("Node exists")
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)])
241261 else throw("Strict value is not equal to itself.")
242262 }
243263
244264
245-func aL (ay,aC) = {
246- let aF = getString(this, ax(ay))
247- let aJ = valueOrElse(getInteger(this, aA(ay)), 0)
248- let aG = getString(this, aB(ay, aC))
249- let aH = getString(this, aD(ay, aC))
250- ([IntegerEntry(aA(ay), (aJ - 1))] ++ (if (if ((aG != unit))
251- then (aH != 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)
252272 else false)
253- then [StringEntry(aD(ay, value(aG)), value(aH)), StringEntry(aB(ay, value(aH)), value(aG)), DeleteEntry(aB(ay, aC)), DeleteEntry(aD(ay, aC))]
254- else if ((aH != unit))
255- then [StringEntry(ax(ay), value(aH)), DeleteEntry(aD(ay, aC)), DeleteEntry(aB(ay, value(aH)))]
256- else if ((aG != unit))
257- then [DeleteEntry(aB(ay, aC)), DeleteEntry(aD(ay, value(aG)))]
258- else if ((aC == valueOrElse(aF, "")))
259- then [DeleteEntry(ax(ay))]
260- else S(((("invalid node: " + ay) + ".") + aC))))
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))))
261281 }
262282
263283
264-func aM () = "%s__managerVaultAddress"
284+func aV () = "%s__managerVaultAddress"
265285
266286
267-func aN () = "%s__managerPublicKey"
287+func aW () = "%s__managerPublicKey"
268288
269289
270-func aO () = {
271- let X = getString(aM())
272- if ($isInstanceOf(X, "String"))
290+func aX () = {
291+ let Y = getString(aV())
292+ if ($isInstanceOf(Y, "String"))
273293 then {
274- let aP = X
275- addressFromStringValue(aP)
294+ let aY = Y
295+ addressFromStringValue(aY)
276296 }
277297 else this
278298 }
279299
280300
281-func aQ () = {
282- let aR = aO()
283- let X = getString(aR, aN())
284- if ($isInstanceOf(X, "String"))
301+func aZ () = {
302+ let ba = aX()
303+ let Y = getString(ba, aW())
304+ if ($isInstanceOf(Y, "String"))
285305 then {
286- let aP = X
287- fromBase58String(aP)
306+ let aY = Y
307+ fromBase58String(aY)
288308 }
289- else if ($isInstanceOf(X, "Unit"))
309+ else if ($isInstanceOf(Y, "Unit"))
290310 then unit
291311 else throw("Match error")
292312 }
293313
294314
295-func aS (aT) = {
296- let X = aQ()
297- if ($isInstanceOf(X, "ByteVector"))
315+func bb (bc) = {
316+ let Y = aZ()
317+ if ($isInstanceOf(Y, "ByteVector"))
298318 then {
299- let aU = X
300- (aT.callerPublicKey == aU)
319+ let bd = Y
320+ (bc.callerPublicKey == bd)
301321 }
302- else if ($isInstanceOf(X, "Unit"))
303- then (aT.caller == this)
322+ else if ($isInstanceOf(Y, "Unit"))
323+ then (bc.caller == this)
304324 else throw("Match error")
305325 }
306326
307327
308-func aV (aT) = if (aS(aT))
328+func be (bc) = if (bb(bc))
309329 then true
310330 else throw("permission denied")
311331
312332
313-func aW (aT) = if ((aT.caller == this))
333+func bf (bc) = if ((bc.caller == this))
314334 then true
315335 else throw("permission denied")
316336
317337
318-@Callable(aT)
319-func getUserGwxAmountAtHeight (aX,aY) = {
320- let aZ = valueOrErrorMessage(addressFromString(aa(this, n)), Q("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"))
321341 $Tuple2(nil, {
322- let ab = invoke(aZ, "getUserGwxAmountAtHeightREADONLY", [aX, aY], nil)
323- if ($isInstanceOf(ab, "Int"))
324- then ab
325- else throw(($getType(ab) + " couldn't be cast to Int"))
342+ let ac = invoke(bi, "getUserGwxAmountAtHeightREADONLY", [bg, bh], nil)
343+ if ($isInstanceOf(ac, "Int"))
344+ then ac
345+ else throw(($getType(ac) + " couldn't be cast to Int"))
326346 })
327347 }
328348
329349
330350
331-@Callable(aT)
332-func constructor (ao,ba,bb,bc,bd) = {
333- let be = [aV(aT), if ((addressFromString(ao) != unit))
351+@Callable(bc)
352+func constructor (ah,bj,bk,bl,bm) = {
353+ let bn = [be(bc), if ((addressFromString(ah) != unit))
334354 then true
335- else "invalid factory contract address", if ((addressFromString(ba) != unit))
355+ else "invalid factory contract address", if ((addressFromString(bj) != unit))
336356 then true
337- else "invalid voting emission candidate contract address", if ((addressFromString(bb) != unit))
357+ else "invalid voting emission candidate contract address", if ((addressFromString(bk) != unit))
338358 then true
339- else "invalid boosting contract address", if ((addressFromString(bc) != unit))
359+ else "invalid boosting contract address", if ((addressFromString(bl) != unit))
340360 then true
341- else "invalid staking contract address", if ((bd > 0))
361+ else "invalid staking contract address", if ((bm > 0))
342362 then true
343- else S("invalid epoch length")]
344- if ((be == be))
345- then $Tuple2([StringEntry(m, ao), StringEntry(l, ba), StringEntry(n, bb), StringEntry(o, bc), IntegerEntry(f, bd)], unit)
363+ else T("invalid epoch length")]
364+ if ((bn == bn))
365+ then $Tuple2([StringEntry(n, ah), StringEntry(l, bj), StringEntry(o, bk), StringEntry(p, bl), IntegerEntry(f, bm)], unit)
346366 else throw("Strict value is not equal to itself.")
347367 }
348368
349369
350370
351-@Callable(aT)
352-func create (B,C) = {
353- let be = [if ((toBase58String(aT.caller.bytes) == valueOrElse(getString(this, l), "")))
371+@Callable(bc)
372+func create (C,D) = {
373+ let bn = [if ((toBase58String(bc.caller.bytes) == valueOrElse(getString(this, l), "")))
354374 then true
355- else aV(aT)]
356- if ((be == be))
375+ else be(bc)]
376+ if ((bn == bn))
357377 then {
358- let z = $Tuple2(B, C)
359- let bf = ([BooleanEntry(y(z), true)] ++ aI(au, ad(z)))
360- let bg = (getInteger(this, j) == unit)
361- let bh = if (bg)
378+ let A = $Tuple2(C, D)
379+ let bo = ([BooleanEntry(z(A), true)] ++ aR(aD, ae(A)))
380+ let bp = (getInteger(this, j) == unit)
381+ let bq = if (bp)
362382 then {
363383 let i = 0
364-[IntegerEntry(j, i), IntegerEntry(w(i), height), IntegerEntry(s, height), IntegerEntry(t, i), IntegerEntry(u, height)]
384+[IntegerEntry(j, i), IntegerEntry(x(i), height), IntegerEntry(t, height), IntegerEntry(u, i), IntegerEntry(v, height)]
365385 }
366386 else nil
367- $Tuple2((bf ++ bh), unit)
387+ $Tuple2((bo ++ bq), unit)
368388 }
369389 else throw("Strict value is not equal to itself.")
370390 }
371391
372392
373393
374-@Callable(aT)
375-func vote (B,C,bi) = {
376- let z = $Tuple2(B, C)
394+@Callable(bc)
395+func vote (C,D,br) = {
396+ let A = $Tuple2(C, D)
377397 let i = valueOrElse(getInteger(this, j), 0)
378- let bj = ac(this, w(i))
379- let bd = ac(this, f)
380- let bk = (bj + bd)
381- let bl = getInteger(this, p)
382- let bm = valueOrElse(getInteger(this, D(aT.caller, i)), 0)
383- let bn = valueOrElse(getInteger(this, F(z, aT.caller, i)), 0)
384- let bo = valueOrElse(getInteger(this, H(z, i)), 0)
385- let bp = valueOrElse(getInteger(this, N(i)), 0)
386- let bq = {
387- let ab = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aT.caller.bytes), bk], nil)
388- if ($isInstanceOf(ab, "Int"))
389- then ab
390- else throw(($getType(ab) + " couldn't be cast to Int"))
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)
408+ if ($isInstanceOf(ac, "Int"))
409+ then ac
410+ else throw(($getType(ac) + " couldn't be cast to Int"))
391411 }
392- let br = (bq - bm)
393- let bs = (bn + bi)
394- let bt = as(z)
395- let be = [if ((getBoolean(y(z)) != unit))
412+ let bA = (bz - bv)
413+ let bB = (bw + br)
414+ let bC = az(A)
415+ let bn = [if ((getBoolean(z(A)) != unit))
396416 then true
397- else S("invalid assets"), if ((bk > height))
417+ else T("invalid assets"), if ((bt > height))
398418 then true
399- else S("invalid height"), if ((bl == unit))
419+ else T("invalid height"), if ((bu == unit))
400420 then true
401- else S("finalization in progress"), if ((bq > 0))
421+ else T("finalization in progress"), if ((bz > 0))
402422 then true
403- else S("you do not have gWX"), if (if ((bi > 0))
404- then (br >= bi)
423+ else T("you do not have gWX"), if (if ((br > 0))
424+ then (bA >= br)
405425 else false)
406426 then true
407- else S("invalid amount"), if (bt)
427+ else T("invalid amount"), if (bC)
408428 then true
409- else S("pool hasn't WX_EMISSION label")]
410- if ((be == be))
429+ else T("pool hasn't WX_EMISSION label")]
430+ if ((bn == bn))
411431 then {
412- let bu = av(z)
413- let P = toString(aT.caller)
414- let bv = if (aE(bu, P))
432+ let bD = aE(A)
433+ let Q = toString(bc.caller)
434+ let bE = if (aN(bD, Q))
415435 then nil
416- else aI(bu, P)
417- $Tuple2(([IntegerEntry(D(aT.caller, i), (bm + bi)), IntegerEntry(F(z, aT.caller, i), bs), IntegerEntry(H(z, i), (bo + bi)), IntegerEntry(N(i), (bp + bi))] ++ bv), 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)
418438 }
419439 else throw("Strict value is not equal to itself.")
420440 }
421441
422442
423443
424-@Callable(aT)
425-func cancelVote (B,C) = {
426- let z = $Tuple2(B, C)
444+@Callable(bc)
445+func cancelVote (C,D) = {
446+ let A = $Tuple2(C, D)
427447 let i = valueOrElse(getInteger(this, j), 0)
428- let bj = ac(this, w(i))
429- let bd = ac(this, f)
430- let bk = (bj + bd)
431- let bl = getInteger(this, p)
432- let bm = valueOrElse(getInteger(this, D(aT.caller, i)), 0)
433- let bn = valueOrElse(getInteger(this, F(z, aT.caller, i)), 0)
434- let bo = valueOrElse(getInteger(this, H(z, i)), 0)
435- let bp = valueOrElse(getInteger(this, N(i)), 0)
436- let be = [if ((getBoolean(y(z)) != 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))
437457 then true
438- else S("invalid assets"), if ((bk > height))
458+ else T("invalid assets"), if ((bt > height))
439459 then true
440- else S("invalid height"), if ((bl == unit))
460+ else T("invalid height"), if ((bu == unit))
441461 then true
442- else S("finalization in progress"), if ((bn > 0))
462+ else T("finalization in progress"), if ((bw > 0))
443463 then true
444- else S("no vote")]
445- if ((be == be))
464+ else T("no vote")]
465+ if ((bn == bn))
446466 then {
447- let bu = av(z)
448- let P = toString(aT.caller)
449- $Tuple2(([IntegerEntry(D(aT.caller, i), max([(bm - bn), 0])), DeleteEntry(F(z, aT.caller, i)), IntegerEntry(H(z, i), (bo - bn)), IntegerEntry(N(i), (bp - bn))] ++ aL(bu, P)), 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)
450470 }
451471 else throw("Strict value is not equal to itself.")
452472 }
453473
454474
455475
456-@Callable(aT)
457-func setEpochLength (bw) = {
458- let be = [aV(aT), if ((bw > 0))
476+@Callable(bc)
477+func setEpochLength (bF) = {
478+ let bn = [be(bc), if ((bF > 0))
459479 then true
460- else S("invalid epoch length")]
461- if ((be == be))
462- then $Tuple2([IntegerEntry(g, bw)], unit)
480+ else T("invalid epoch length")]
481+ if ((bn == bn))
482+ then $Tuple2([IntegerEntry(g, bF)], unit)
463483 else throw("Strict value is not equal to itself.")
464484 }
465485
466486
467487
468-@Callable(aT)
469-func setMaxDepth (bx) = {
470- let be = [aV(aT), if ((bx > 0))
488+@Callable(bc)
489+func setMaxDepth (bG) = {
490+ let bn = [be(bc), if ((bG > 0))
471491 then true
472- else S("invalid max depth")]
473- if ((be == be))
474- then $Tuple2([IntegerEntry(k, bx)], unit)
492+ else T("invalid max depth")]
493+ if ((bn == bn))
494+ then $Tuple2([IntegerEntry(k, bG)], unit)
475495 else throw("Strict value is not equal to itself.")
476496 }
477497
478498
479499
480-@Callable(aT)
481-func processVoteINTERNAL (by,P) = {
482- let bz = aW(aT)
483- if ((bz == bz))
500+@Callable(bc)
501+func processVoteINTERNAL (bH,Q) = {
502+ let bI = bf(bc)
503+ if ((bI == bI))
484504 then {
485- let aX = valueOrErrorMessage(addressFromString(P), Q(("processVoteINTERNAL: invalid user address " + P)))
486- let i = ac(this, j)
487- let bA = (i - 1)
488- let bd = ac(this, f)
489- let bj = ac(this, w(i))
490- let bk = (bj + bd)
491- let bB = ac(this, w(bA))
492- let bC = ac(this, h(bA))
493- let bD = (bB + bC)
494- let bE = if ((bA >= 0))
505+ let bg = valueOrErrorMessage(addressFromString(Q), R(("processVoteINTERNAL: invalid user address " + Q)))
506+ let i = ad(this, j)
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))
495515 then true
496- else S("processVoteINTERNAL: invalid previous epoch")
497- if ((bE == bE))
516+ else T("processVoteINTERNAL: invalid previous epoch")
517+ if ((bN == bN))
498518 then {
499- let z = ae(by)
500- let bF = z
501- let B = bF._1
502- let C = bF._2
503- let bt = as(z)
504- let bq = {
505- let ab = invoke(this, "getUserGwxAmountAtHeight", [P, bk], nil)
506- if ($isInstanceOf(ab, "Int"))
507- then ab
508- else throw(($getType(ab) + " couldn't be cast to Int"))
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)
526+ if ($isInstanceOf(ac, "Int"))
527+ then ac
528+ else throw(($getType(ac) + " couldn't be cast to Int"))
509529 }
510- let bG = {
511- let ab = invoke(this, "getUserGwxAmountAtHeight", [P, bD], nil)
512- if ($isInstanceOf(ab, "Int"))
513- then ab
514- else throw(($getType(ab) + " couldn't be cast to Int"))
530+ let bP = {
531+ let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, bM], nil)
532+ if ($isInstanceOf(ac, "Int"))
533+ then ac
534+ else throw(($getType(ac) + " couldn't be cast to Int"))
515535 }
516- let bp = valueOrElse(getInteger(N(i)), 0)
517- let bH = valueOrElse(getInteger(H(z, i)), 0)
518- let bI = valueOrErrorMessage(getInteger(F(z, aX, bA)), Q((((("processVoteINTERNAL " + by) + " ") + P) + ": no previous vote")))
519- let bm = valueOrElse(getInteger(this, D(aX, i)), 0)
520- let K = ag(B, C)
521- let bJ = valueOrElse(getInteger(J(K, bA)), 0)
522- let bc = addressFromStringValue(aa(this, o))
523- let bK = valueOrElse(getInteger(bc, O(K, P)), 0)
524- let bL = if ((bK == 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)
540+ let L = ao(C, D)
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))
525545 then nil
526- else [IntegerEntry(J(K, bA), (bJ + bI))]
527- let bs = if ((bG > 0))
528- then fraction(bI, bq, bG)
546+ else [IntegerEntry(K(L, bJ), (bS + bR))]
547+ let bB = if ((bP > 0))
548+ then fraction(bR, bz, bP)
529549 else 0
530- let bM = if (if ((bs > 0))
531- then bt
550+ let bV = if (if ((bB > 0))
551+ then bC
532552 else false)
533- then [IntegerEntry(F(z, aX, i), bs), IntegerEntry(N(i), (bp + bs)), IntegerEntry(H(z, i), (bH + bs)), IntegerEntry(D(aX, i), (bm + bs))]
534- else aL(av(z), P)
535- $Tuple2((bM ++ bL), 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)
536556 }
537557 else throw("Strict value is not equal to itself.")
538558 }
541561
542562
543563
544-@Callable(aT)
545-func processPoolINTERNAL (by,bN) = {
546- let bz = aW(aT)
547- if ((bz == bz))
564+@Callable(bc)
565+func processPoolINTERNAL (bH,bW) = {
566+ let bI = bf(bc)
567+ if ((bI == bI))
548568 then {
549- let bO = {
550- let bP = ac(this, j)
551- if (bN)
552- then bP
553- else (bP - 1)
569+ let bX = {
570+ let bY = ad(this, j)
571+ if (bW)
572+ then bY
573+ else (bY - 1)
554574 }
555- let bE = if ((bO >= 0))
575+ let bN = if ((bX >= 0))
556576 then true
557- else S("processPoolINTERNAL: invalid target epoch")
558- if ((bE == bE))
577+ else T("processPoolINTERNAL: invalid target epoch")
578+ if ((bN == bN))
559579 then {
560- let z = ae(by)
561- let bQ = z
562- let B = bQ._1
563- let C = bQ._2
564- let bc = addressFromStringValue(aa(this, o))
565- let ao = addressFromStringValue(aa(this, m))
566- let ar = ag(B, C)
567- let bR = {
568- let ab = invoke(bc, "usersListTraversal", [ar], nil)
569- if ($isInstanceOf(ab, "Boolean"))
570- then ab
571- else throw(($getType(ab) + " couldn't be cast to Boolean"))
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))
585+ let ay = ao(C, D)
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"))
572591 }
573- if ((bR == bR))
574- then if (bR)
592+ if ((ca == ca))
593+ then if (ca)
575594 then $Tuple2(nil, true)
576595 else {
577- let bt = as(z)
578- let bp = valueOrElse(getInteger(this, N(bO)), 0)
579- let bH = valueOrElse(getInteger(this, H(z, bO)), 0)
580- let bS = if (if ((bp == 0))
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))
581600 then true
582- else !(bt))
601+ else !(bC))
583602 then 0
584- else fraction(bH, b, bp)
585- let bT = invoke(ao, "modifyWeight", [ar, bS], nil)
586- if ((bT == bT))
603+ else fraction(bQ, b, by)
604+ let cc = invoke(ah, "modifyWeight", [ay, cb], nil)
605+ if ((cc == cc))
587606 then {
588- let bU = if (if (bt)
607+ let cd = if (if (bC)
589608 then true
590- else bN)
609+ else bW)
591610 then nil
592- else ([DeleteEntry(y(z))] ++ aL(au, by))
593- $Tuple2(([IntegerEntry(L(z, bO), bS)] ++ bU), false)
611+ else ([DeleteEntry(z(A))] ++ aU(aD, bH))
612+ $Tuple2(([IntegerEntry(M(A, bX), cb)] ++ cd), false)
594613 }
595614 else throw("Strict value is not equal to itself.")
596615 }
603622
604623
605624
606-@Callable(aT)
625+@Callable(bc)
607626 func finalizeHelper () = {
608- let bN = valueOrElse(getBoolean(v), false)
627+ let bW = valueOrElse(getBoolean(w), false)
609628 let i = valueOrElse(getInteger(this, j), 0)
610- let bV = (i - 1)
611- let bj = ac(this, w(i))
612- let bd = ac(this, f)
613- let bk = (bj + bd)
614- let bl = getInteger(this, p)
615- if (if (if ((height >= bk))
616- then (bl == 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 !(bN)
637+ then !(bW)
619638 else false)
620639 then {
621- let bW = (i + 1)
622- let bX = getInteger(this, g)
623- let bY = {
624- let X = bX
625- if ($isInstanceOf(X, "Int"))
640+ let cf = (i + 1)
641+ let cg = getInteger(this, g)
642+ let ch = {
643+ let Y = cg
644+ if ($isInstanceOf(Y, "Int"))
626645 then {
627- let bw = X
628-[IntegerEntry(f, bw), DeleteEntry(g)]
646+ let bF = Y
647+[IntegerEntry(f, bF), DeleteEntry(g)]
629648 }
630- else if ($isInstanceOf(X, "Unit"))
649+ else if ($isInstanceOf(Y, "Unit"))
631650 then nil
632651 else throw("Match error")
633652 }
634- $Tuple2(([IntegerEntry(w(bW), height), IntegerEntry(s, height), IntegerEntry(j, bW), IntegerEntry(p, d), IntegerEntry(h(i), bd)] ++ bY), 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 (bN)
637- then (bl == unit)
655+ else if (if (bW)
656+ then (bu == unit)
638657 else false)
639- then $Tuple2([IntegerEntry(p, e)], true)
640- else if ((bl == unit))
658+ then $Tuple2([IntegerEntry(q, e)], true)
659+ else if ((bu == unit))
641660 then $Tuple2(nil, false)
642- else if ((bl == d))
661+ else if ((bu == d))
643662 then {
644- let bZ = getString(q)
645- let ca = getString(r)
646- let X = bZ
647- if ($isInstanceOf(X, "Unit"))
663+ let ci = getString(r)
664+ let cj = getString(s)
665+ let Y = ci
666+ if ($isInstanceOf(Y, "Unit"))
648667 then {
649- let cb = getString(ax(au))
650- if ($isInstanceOf(cb, "Unit"))
651- then $Tuple2([IntegerEntry(p, e), DeleteEntry(q), DeleteEntry(r)], true)
652- else if ($isInstanceOf(cb, "String"))
668+ let ck = getString(aG(aD))
669+ if ($isInstanceOf(ck, "Unit"))
670+ then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
671+ else if ($isInstanceOf(ck, "String"))
653672 then {
654- let cc = cb
655- $Tuple2([StringEntry(q, cc)], true)
673+ let cl = ck
674+ $Tuple2([StringEntry(r, cl)], true)
656675 }
657676 else throw("Match error")
658677 }
659- else if ($isInstanceOf(X, "String"))
678+ else if ($isInstanceOf(Y, "String"))
660679 then {
661- let by = X
662- let z = ae(by)
663- let cd = {
664- let cb = ca
665- if ($isInstanceOf(cb, "Unit"))
666- then getString(ax(av(z)))
667- else if ($isInstanceOf(cb, "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 ce = cb
670- let cf = getString(aD(av(z), ce))
671- if ((cf == cf))
688+ let cn = ck
689+ let co = getString(aM(aE(A), cn))
690+ if ((co == co))
672691 then {
673- let cg = invoke(this, "processVoteINTERNAL", [by, ce], nil)
674- if ((cg == cg))
675- then cf
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 cb = cd
683- if ($isInstanceOf(cb, "Unit"))
701+ let ck = cm
702+ if ($isInstanceOf(ck, "Unit"))
684703 then {
685- let ch = getString(aD(au, by))
686- let ci = ch
687- if ($isInstanceOf(ci, "Unit"))
688- then $Tuple2([IntegerEntry(p, e), DeleteEntry(q), DeleteEntry(r)], true)
689- else if ($isInstanceOf(ci, "String"))
704+ let cq = getString(aM(aD, bH))
705+ let cr = cq
706+ if ($isInstanceOf(cr, "Unit"))
707+ then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
708+ else if ($isInstanceOf(cr, "String"))
690709 then {
691- let aP = ci
692- $Tuple2([StringEntry(q, aP), DeleteEntry(r)], true)
710+ let aY = cr
711+ $Tuple2([StringEntry(r, aY), DeleteEntry(s)], true)
693712 }
694713 else throw("Match error")
695714 }
696- else if ($isInstanceOf(cb, "String"))
715+ else if ($isInstanceOf(ck, "String"))
697716 then {
698- let cj = cb
699- $Tuple2([StringEntry(r, cj)], 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 ((bl == e))
724+ else if ((bu == e))
706725 then {
707- let bZ = getString(q)
708- let X = bZ
709- if ($isInstanceOf(X, "Unit"))
726+ let ci = getString(r)
727+ let Y = ci
728+ if ($isInstanceOf(Y, "Unit"))
710729 then {
711- let cb = getString(ax(au))
712- if ($isInstanceOf(cb, "Unit"))
730+ let ck = getString(aG(aD))
731+ if ($isInstanceOf(ck, "Unit"))
713732 then {
714- let bM = if (bN)
715- then [DeleteEntry(p), DeleteEntry(v)]
716- else [DeleteEntry(p), BooleanEntry(x(bV), true), IntegerEntry(t, i), IntegerEntry(u, bj)]
717- $Tuple2(bM, true)
733+ let bV = if (bW)
734+ then [DeleteEntry(q), DeleteEntry(w)]
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(cb, "String"))
741+ else if ($isInstanceOf(ck, "String"))
720742 then {
721- let ck = cb
722- $Tuple2([StringEntry(q, ck)], true)
743+ let cu = ck
744+ $Tuple2([StringEntry(r, cu)], true)
723745 }
724746 else throw("Match error")
725747 }
726- else if ($isInstanceOf(X, "String"))
748+ else if ($isInstanceOf(Y, "String"))
727749 then {
728- let by = X
729- let ch = getString(aD(au, by))
730- if ((ch == ch))
750+ let bH = Y
751+ let cq = getString(aM(aD, bH))
752+ if ((cq == cq))
731753 then {
732- let bR = {
733- let ab = invoke(this, "processPoolINTERNAL", [by, bN], nil)
734- if ($isInstanceOf(ab, "Boolean"))
735- then ab
736- else throw(($getType(ab) + " couldn't be cast to Boolean"))
754+ let ca = {
755+ let ac = invoke(this, "processPoolINTERNAL", [bH, bW], nil)
756+ if ($isInstanceOf(ac, "Boolean"))
757+ then ac
758+ else throw(($getType(ac) + " couldn't be cast to Boolean"))
737759 }
738- if ((bR == bR))
739- then if (bR)
760+ if ((ca == ca))
761+ then if (ca)
740762 then $Tuple2(nil, true)
741763 else {
742- let cb = ch
743- if ($isInstanceOf(cb, "Unit"))
764+ let ck = cq
765+ if ($isInstanceOf(ck, "Unit"))
744766 then {
745- let bM = if (bN)
746- then [DeleteEntry(p), DeleteEntry(v), DeleteEntry(q)]
747- else [DeleteEntry(p), BooleanEntry(x(bV), true), IntegerEntry(t, i), IntegerEntry(u, bj), DeleteEntry(q)]
748- $Tuple2(bM, true)
767+ let bV = if (bW)
768+ then [DeleteEntry(q), DeleteEntry(w), DeleteEntry(r)]
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(cb, "String"))
775+ else if ($isInstanceOf(ck, "String"))
751776 then {
752- let ck = cb
753- $Tuple2([StringEntry(q, ck)], true)
777+ let cu = ck
778+ $Tuple2([StringEntry(r, cu)], true)
754779 }
755780 else throw("Match error")
756781 }
760785 }
761786 else throw("Match error")
762787 }
763- else S("finalization is broken")
788+ else T("finalization is broken")
764789 }
765790
766791
767792
768-@Callable(aT)
769-func finalizeWrapper (cl) = {
770- let cm = {
771- let ab = invoke(this, "finalizeHelper", nil, nil)
772- if ($isInstanceOf(ab, "Boolean"))
773- then ab
774- else throw(($getType(ab) + " couldn't be cast to Boolean"))
793+@Callable(bc)
794+func finalizeWrapper (cv) = {
795+ let cw = addressFromStringValue(getStringValue(this, m))
796+ let cx = {
797+ let ac = invoke(this, "finalizeHelper", nil, nil)
798+ if ($isInstanceOf(ac, "Boolean"))
799+ then ac
800+ else throw(($getType(ac) + " couldn't be cast to Boolean"))
775801 }
776- if ((cm == cm))
777- then if (!(cm))
778- then if ((cl == 0))
779- then S("Current voting is not over yet")
780- else $Tuple2(nil, unit)
802+ if ((cx == cx))
803+ then if (!(cx))
804+ then if ((cv == 0))
805+ then T("Current voting is not over yet")
806+ else {
807+ let cy = invoke(cw, "finalize", nil, nil)
808+ if ((cy == cy))
809+ then $Tuple2(nil, unit)
810+ else throw("Strict value is not equal to itself.")
811+ }
781812 else {
782- let cn = valueOrElse(getInteger(this, k), c)
783- if ((cn > cl))
813+ let cz = valueOrElse(getInteger(this, k), c)
814+ if ((cz > cv))
784815 then {
785- let co = invoke(this, "finalizeWrapper", [(cl + 1)], nil)
786- if ((co == co))
816+ let cy = invoke(this, "finalizeWrapper", [(cv + 1)], nil)
817+ if ((cy == cy))
787818 then $Tuple2(nil, unit)
788819 else throw("Strict value is not equal to itself.")
789820 }
794825
795826
796827
797-@Callable(aT)
828+@Callable(bc)
798829 func finalize () = {
799- let co = invoke(this, "finalizeWrapper", [0], nil)
800- if ((co == co))
830+ let cy = invoke(this, "finalizeWrapper", [0], nil)
831+ if ((cy == cy))
801832 then $Tuple2(nil, unit)
802833 else throw("Strict value is not equal to itself.")
803834 }
804835
805836
806837
807-@Callable(aT)
808-func containsNodeREADONLY (ay,aC) = $Tuple2(nil, aE(ay, aC))
838+@Callable(bc)
839+func containsNodeREADONLY (aH,aL) = $Tuple2(nil, aN(aH, aL))
809840
810841
811842
812-@Callable(aT)
813-func insertNode (ay,aC) = {
814- let bz = aV(aT)
815- if ((bz == bz))
816- then $Tuple2(aI(ay, aC), 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)
817848 else throw("Strict value is not equal to itself.")
818849 }
819850
820851
821852
822-@Callable(aT)
823-func deleteNode (ay,aC) = {
824- let bz = aV(aT)
825- if ((bz == bz))
826- then $Tuple2(aL(ay, aC), 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)
827858 else throw("Strict value is not equal to itself.")
828859 }
829860
830861
831862
832-@Callable(aT)
863+@Callable(bc)
833864 func isFinalizationInProgress () = {
834- let bl = getInteger(this, p)
835- let cp = (bl != unit)
836- $Tuple2(nil, cp)
865+ let bu = getInteger(this, q)
866+ let cA = (bu != unit)
867+ $Tuple2(nil, cA)
837868 }
838869
839870
840-@Verifier(cq)
841-func cr () = {
842- let cs = {
843- let X = aQ()
844- if ($isInstanceOf(X, "ByteVector"))
871+@Verifier(cB)
872+func cC () = {
873+ let cD = {
874+ let Y = aZ()
875+ if ($isInstanceOf(Y, "ByteVector"))
845876 then {
846- let aU = X
847- aU
877+ let bd = Y
878+ bd
848879 }
849- else if ($isInstanceOf(X, "Unit"))
850- then cq.senderPublicKey
880+ else if ($isInstanceOf(Y, "Unit"))
881+ then cB.senderPublicKey
851882 else throw("Match error")
852883 }
853- sigVerify(cq.bodyBytes, cq.proofs[0], cs)
884+ sigVerify(cB.bodyBytes, cB.proofs[0], cD)
854885 }
855886
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
27-let m = makeString(["%s", "factoryContract"], a)
27+let m = makeString(["%s", "votingEmissionRateContract"], a)
2828
29-let n = makeString(["%s", "boostingContract"], a)
29+let n = makeString(["%s", "factoryContract"], a)
3030
31-let o = makeString(["%s", "stakingContract"], a)
31+let o = makeString(["%s", "boostingContract"], a)
3232
33-let p = makeString(["%s", "finalizationStage"], a)
33+let p = makeString(["%s", "stakingContract"], a)
3434
35-let q = makeString(["%s", "nextPool"], a)
35+let q = makeString(["%s", "finalizationStage"], a)
3636
37-let r = makeString(["%s", "nextUser"], a)
37+let r = makeString(["%s", "nextPool"], a)
3838
39-let s = makeString(["%s", "startHeight"], a)
39+let s = makeString(["%s", "nextUser"], a)
4040
41-let t = makeString(["%s", "currentEpochUi"], a)
41+let t = makeString(["%s", "startHeight"], a)
4242
43-let u = makeString(["%s", "startHeightUi"], a)
43+let u = makeString(["%s", "currentEpochUi"], a)
4444
45-let v = makeString(["%s", "force"], a)
45+let v = makeString(["%s", "startHeightUi"], a)
4646
47-func w (i) = makeString(["%s%d", "startHeight", toString(i)], a)
47+let w = makeString(["%s", "force"], a)
48+
49+func x (i) = makeString(["%s%d", "startHeight", toString(i)], a)
4850
4951
50-func x (i) = makeString(["%s%d", "finalized", toString(i)], a)
52+func y (i) = makeString(["%s%d", "finalized", toString(i)], a)
5153
5254
53-func y (z) = {
54- let A = z
55- let B = A._1
56- let C = A._2
57- makeString(["%s%s%s", "inList", B, C], a)
55+func z (A) = {
56+ let B = A
57+ let C = B._1
58+ let D = B._2
59+ makeString(["%s%s%s", "inList", C, D], a)
5860 }
5961
6062
61-func D (E,i) = makeString(["%s%s%d", "used", toString(E), toString(i)], a)
63+func E (F,i) = makeString(["%s%s%d", "used", toString(F), toString(i)], a)
6264
6365
64-func F (z,E,i) = {
65- let G = z
66- let B = G._1
67- let C = G._2
68- makeString(["%s%s%s%s%d", "vote", B, C, toString(E), toString(i)], a)
66+func G (A,F,i) = {
67+ let H = A
68+ let C = H._1
69+ let D = H._2
70+ makeString(["%s%s%s%s%d", "vote", C, D, toString(F), toString(i)], a)
6971 }
7072
7173
72-func H (z,i) = {
73- let I = z
74- let B = I._1
75- let C = I._2
76- makeString(["%s%s%s%d", "votingResult", B, C, toString(i)], a)
74+func I (A,i) = {
75+ let J = A
76+ let C = J._1
77+ let D = J._2
78+ makeString(["%s%s%s%d", "votingResult", C, D, toString(i)], a)
7779 }
7880
7981
80-func J (K,i) = makeString(["%s%s%d", "votingResultStaked", K, toString(i)], a)
82+func K (L,i) = makeString(["%s%s%d", "votingResultStaked", L, toString(i)], a)
8183
8284
83-func L (z,i) = {
84- let M = z
85- let B = M._1
86- let C = M._2
87- makeString(["%s%s%s%d", "poolShare", B, C, toString(i)], a)
85+func M (A,i) = {
86+ let N = A
87+ let C = N._1
88+ let D = N._2
89+ makeString(["%s%s%s%d", "poolShare", C, D, toString(i)], a)
8890 }
8991
9092
91-func N (i) = makeString(["%s%d", "totalVotes", toString(i)], a)
93+func O (i) = makeString(["%s%d", "totalVotes", toString(i)], a)
9294
9395
94-func O (K,P) = makeString(["%s%s%s", "staked", P, K], a)
96+func P (L,Q) = makeString(["%s%s%s", "staked", Q, L], a)
9597
9698
97-func Q (R) = makeString(["voting_emission.ride:", R], " ")
99+func R (S) = makeString(["voting_emission.ride:", S], " ")
98100
99101
100-func S (R) = throw(Q(R))
102+func T (S) = throw(R(S))
101103
102104
103-func T (E,U,V) = {
104- let W = Q(makeString(["mandatory ", toString(E), ".", U, " is not defined"], ""))
105+func U (F,V,W) = {
106+ let X = R(makeString(["mandatory ", toString(F), ".", V, " is not defined"], ""))
105107 valueOrErrorMessage({
106- let X = V
107- if ($isInstanceOf(X, "String"))
108+ let Y = W
109+ if ($isInstanceOf(Y, "String"))
108110 then {
109- let Y = X
110- getString(E, U)
111+ let Z = Y
112+ getString(F, V)
111113 }
112- else if ($isInstanceOf(X, "Int"))
114+ else if ($isInstanceOf(Y, "Int"))
113115 then {
114- let Z = X
115- getInteger(E, U)
116+ let aa = Y
117+ getInteger(F, V)
116118 }
117- else S("invalid entry type")
118- }, W)
119+ else T("invalid entry type")
120+ }, X)
119121 }
120122
121123
122-func aa (E,U) = {
123- let ab = T(E, U, "")
124- if ($isInstanceOf(ab, "String"))
125- then ab
126- else throw(($getType(ab) + " couldn't be cast to String"))
124+func ab (F,V) = {
125+ let ac = U(F, V, "")
126+ if ($isInstanceOf(ac, "String"))
127+ then ac
128+ else throw(($getType(ac) + " couldn't be cast to String"))
127129 }
128130
129131
130-func ac (E,U) = {
131- let ab = T(E, U, 0)
132- if ($isInstanceOf(ab, "Int"))
133- then ab
134- else throw(($getType(ab) + " couldn't be cast to Int"))
132+func ad (F,V) = {
133+ let ac = U(F, V, 0)
134+ if ($isInstanceOf(ac, "Int"))
135+ then ac
136+ else throw(($getType(ac) + " couldn't be cast to Int"))
135137 }
136138
137139
138-func ad (z) = ((z._1 + a) + z._2)
140+func ae (A) = ((A._1 + a) + A._2)
139141
140142
141-func ae (Y) = {
142- let af = split(Y, a)
143- if ((size(af) == 2))
144- then $Tuple2(af[0], af[1])
145- else S("invalid pool string")
143+func af (Z) = {
144+ let ag = split(Z, a)
145+ if ((size(ag) == 2))
146+ then $Tuple2(ag[0], ag[1])
147+ else T("invalid pool string")
146148 }
147149
148150
149-func ag (B,C) = {
150- func ah (ai) = ("%s%s%s__mappings__baseAsset2internalId__" + ai)
151+let ah = addressFromStringValue(ab(this, n))
151152
152- func aj (ak,al) = (((("%d%d%s%s__" + toString(ak)) + "__") + toString(al)) + "__mappings__poolAssets2PoolContract")
153+let ai = 10
153154
154- func am (an) = (("%s%s%s__" + an) + "__mappings__poolContract2LpAsset")
155+func aj () = "%s__factoryConfig"
155156
156- let ao = addressFromStringValue(aa(this, m))
157- let ap = ac(ao, ah(B))
158- let aq = ac(ao, ah(C))
159- let an = aa(ao, aj(ap, aq))
160- let ar = aa(ao, am(an))
161- ar
157+
158+func ak (al) = split(ab(al, aj()), a)
159+
160+
161+func am (an) = addressFromStringValue(an[ai])
162+
163+
164+func ao (C,D) = {
165+ func ap (aq) = ("%s%s%s__mappings__baseAsset2internalId__" + aq)
166+
167+ func ar (as,at) = (((("%d%d%s%s__" + toString(as)) + "__") + toString(at)) + "__mappings__poolAssets2PoolContract")
168+
169+ func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
170+
171+ let aw = ad(ah, ap(C))
172+ let ax = ad(ah, ap(D))
173+ let av = ab(ah, ar(aw, ax))
174+ let ay = ab(ah, au(av))
175+ ay
162176 }
163177
164178
165-func as (z) = {
166- let at = z
167- let B = at._1
168- let C = at._2
169- let ao = addressFromStringValue(aa(this, m))
170- let ab = invoke(ao, "checkWxEmissionPoolLabel", [B, C], nil)
171- if ($isInstanceOf(ab, "Boolean"))
172- then ab
173- else throw(($getType(ab) + " couldn't be cast to Boolean"))
179+func az (A) = {
180+ let aA = A
181+ let C = aA._1
182+ let D = aA._2
183+ let ac = invoke(ah, "checkWxEmissionPoolLabel", [C, D], nil)
184+ if ($isInstanceOf(ac, "Boolean"))
185+ then ac
186+ else throw(($getType(ac) + " couldn't be cast to Boolean"))
174187 }
175188
176189
177-let au = "pools"
178-
179-func av (z) = {
180- let aw = z
181- let B = aw._1
182- let C = aw._2
183- makeString(["votes", B, C], a)
190+func aB () = {
191+ let an = ak(ah)
192+ let aC = am(an)
193+ invoke(aC, "deposit", nil, nil)
184194 }
185195
186196
187-func ax (ay) = {
188- let az = if ((ay == au))
189- then "%s%s"
190- else "%s%s%s%s"
191- makeString([az, ay, "head"], a)
197+let aD = "pools"
198+
199+func aE (A) = {
200+ let aF = A
201+ let C = aF._1
202+ let D = aF._2
203+ makeString(["votes", C, D], a)
192204 }
193205
194206
195-func aA (ay) = {
196- let az = if ((ay == au))
207+func aG (aH) = {
208+ let aI = if ((aH == aD))
197209 then "%s%s"
198210 else "%s%s%s%s"
199- makeString([az, ay, "size"], a)
211+ makeString([aI, aH, "head"], a)
200212 }
201213
202214
203-func aB (ay,aC) = {
204- let az = if ((ay == au))
205- then "%s%s%s%s"
206- else "%s%s%s%s%s"
207- makeString([az, ay, aC, "prev"], a)
215+func aJ (aH) = {
216+ let aI = if ((aH == aD))
217+ then "%s%s"
218+ else "%s%s%s%s"
219+ makeString([aI, aH, "size"], a)
208220 }
209221
210222
211-func aD (ay,aC) = {
212- let az = if ((ay == au))
223+func aK (aH,aL) = {
224+ let aI = if ((aH == aD))
213225 then "%s%s%s%s"
214226 else "%s%s%s%s%s"
215- makeString([az, ay, aC, "next"], a)
227+ makeString([aI, aH, aL, "prev"], a)
216228 }
217229
218230
219-func aE (ay,aC) = {
220- let aF = getString(this, ax(ay))
221- let aG = getString(this, aB(ay, aC))
222- let aH = getString(this, aD(ay, aC))
223- if (if ((aC == valueOrElse(aF, "")))
224- then true
225- else (aG != unit))
226- then true
227- else (aH != unit)
231+func aM (aH,aL) = {
232+ let aI = if ((aH == aD))
233+ then "%s%s%s%s"
234+ else "%s%s%s%s%s"
235+ makeString([aI, aH, aL, "next"], a)
228236 }
229237
230238
231-func aI (ay,aC) = {
232- let aF = getString(this, ax(ay))
233- let aJ = valueOrElse(getInteger(this, aA(ay)), 0)
234- let aK = if (!(aE(ay, aC)))
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, "")))
235244 then true
236- else S("Node exists")
237- if ((aK == aK))
238- then (([IntegerEntry(aA(ay), (aJ + 1))] ++ (if ((aF != unit))
239- then [StringEntry(aD(ay, aC), value(aF)), StringEntry(aB(ay, value(aF)), aC)]
240- else nil)) ++ [StringEntry(ax(ay), aC)])
245+ else (aP != unit))
246+ then true
247+ else (aQ != unit)
248+ }
249+
250+
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)))
255+ then true
256+ else T("Node exists")
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)])
241261 else throw("Strict value is not equal to itself.")
242262 }
243263
244264
245-func aL (ay,aC) = {
246- let aF = getString(this, ax(ay))
247- let aJ = valueOrElse(getInteger(this, aA(ay)), 0)
248- let aG = getString(this, aB(ay, aC))
249- let aH = getString(this, aD(ay, aC))
250- ([IntegerEntry(aA(ay), (aJ - 1))] ++ (if (if ((aG != unit))
251- then (aH != 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)
252272 else false)
253- then [StringEntry(aD(ay, value(aG)), value(aH)), StringEntry(aB(ay, value(aH)), value(aG)), DeleteEntry(aB(ay, aC)), DeleteEntry(aD(ay, aC))]
254- else if ((aH != unit))
255- then [StringEntry(ax(ay), value(aH)), DeleteEntry(aD(ay, aC)), DeleteEntry(aB(ay, value(aH)))]
256- else if ((aG != unit))
257- then [DeleteEntry(aB(ay, aC)), DeleteEntry(aD(ay, value(aG)))]
258- else if ((aC == valueOrElse(aF, "")))
259- then [DeleteEntry(ax(ay))]
260- else S(((("invalid node: " + ay) + ".") + aC))))
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))))
261281 }
262282
263283
264-func aM () = "%s__managerVaultAddress"
284+func aV () = "%s__managerVaultAddress"
265285
266286
267-func aN () = "%s__managerPublicKey"
287+func aW () = "%s__managerPublicKey"
268288
269289
270-func aO () = {
271- let X = getString(aM())
272- if ($isInstanceOf(X, "String"))
290+func aX () = {
291+ let Y = getString(aV())
292+ if ($isInstanceOf(Y, "String"))
273293 then {
274- let aP = X
275- addressFromStringValue(aP)
294+ let aY = Y
295+ addressFromStringValue(aY)
276296 }
277297 else this
278298 }
279299
280300
281-func aQ () = {
282- let aR = aO()
283- let X = getString(aR, aN())
284- if ($isInstanceOf(X, "String"))
301+func aZ () = {
302+ let ba = aX()
303+ let Y = getString(ba, aW())
304+ if ($isInstanceOf(Y, "String"))
285305 then {
286- let aP = X
287- fromBase58String(aP)
306+ let aY = Y
307+ fromBase58String(aY)
288308 }
289- else if ($isInstanceOf(X, "Unit"))
309+ else if ($isInstanceOf(Y, "Unit"))
290310 then unit
291311 else throw("Match error")
292312 }
293313
294314
295-func aS (aT) = {
296- let X = aQ()
297- if ($isInstanceOf(X, "ByteVector"))
315+func bb (bc) = {
316+ let Y = aZ()
317+ if ($isInstanceOf(Y, "ByteVector"))
298318 then {
299- let aU = X
300- (aT.callerPublicKey == aU)
319+ let bd = Y
320+ (bc.callerPublicKey == bd)
301321 }
302- else if ($isInstanceOf(X, "Unit"))
303- then (aT.caller == this)
322+ else if ($isInstanceOf(Y, "Unit"))
323+ then (bc.caller == this)
304324 else throw("Match error")
305325 }
306326
307327
308-func aV (aT) = if (aS(aT))
328+func be (bc) = if (bb(bc))
309329 then true
310330 else throw("permission denied")
311331
312332
313-func aW (aT) = if ((aT.caller == this))
333+func bf (bc) = if ((bc.caller == this))
314334 then true
315335 else throw("permission denied")
316336
317337
318-@Callable(aT)
319-func getUserGwxAmountAtHeight (aX,aY) = {
320- let aZ = valueOrErrorMessage(addressFromString(aa(this, n)), Q("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"))
321341 $Tuple2(nil, {
322- let ab = invoke(aZ, "getUserGwxAmountAtHeightREADONLY", [aX, aY], nil)
323- if ($isInstanceOf(ab, "Int"))
324- then ab
325- else throw(($getType(ab) + " couldn't be cast to Int"))
342+ let ac = invoke(bi, "getUserGwxAmountAtHeightREADONLY", [bg, bh], nil)
343+ if ($isInstanceOf(ac, "Int"))
344+ then ac
345+ else throw(($getType(ac) + " couldn't be cast to Int"))
326346 })
327347 }
328348
329349
330350
331-@Callable(aT)
332-func constructor (ao,ba,bb,bc,bd) = {
333- let be = [aV(aT), if ((addressFromString(ao) != unit))
351+@Callable(bc)
352+func constructor (ah,bj,bk,bl,bm) = {
353+ let bn = [be(bc), if ((addressFromString(ah) != unit))
334354 then true
335- else "invalid factory contract address", if ((addressFromString(ba) != unit))
355+ else "invalid factory contract address", if ((addressFromString(bj) != unit))
336356 then true
337- else "invalid voting emission candidate contract address", if ((addressFromString(bb) != unit))
357+ else "invalid voting emission candidate contract address", if ((addressFromString(bk) != unit))
338358 then true
339- else "invalid boosting contract address", if ((addressFromString(bc) != unit))
359+ else "invalid boosting contract address", if ((addressFromString(bl) != unit))
340360 then true
341- else "invalid staking contract address", if ((bd > 0))
361+ else "invalid staking contract address", if ((bm > 0))
342362 then true
343- else S("invalid epoch length")]
344- if ((be == be))
345- then $Tuple2([StringEntry(m, ao), StringEntry(l, ba), StringEntry(n, bb), StringEntry(o, bc), IntegerEntry(f, bd)], unit)
363+ else T("invalid epoch length")]
364+ if ((bn == bn))
365+ then $Tuple2([StringEntry(n, ah), StringEntry(l, bj), StringEntry(o, bk), StringEntry(p, bl), IntegerEntry(f, bm)], unit)
346366 else throw("Strict value is not equal to itself.")
347367 }
348368
349369
350370
351-@Callable(aT)
352-func create (B,C) = {
353- let be = [if ((toBase58String(aT.caller.bytes) == valueOrElse(getString(this, l), "")))
371+@Callable(bc)
372+func create (C,D) = {
373+ let bn = [if ((toBase58String(bc.caller.bytes) == valueOrElse(getString(this, l), "")))
354374 then true
355- else aV(aT)]
356- if ((be == be))
375+ else be(bc)]
376+ if ((bn == bn))
357377 then {
358- let z = $Tuple2(B, C)
359- let bf = ([BooleanEntry(y(z), true)] ++ aI(au, ad(z)))
360- let bg = (getInteger(this, j) == unit)
361- let bh = if (bg)
378+ let A = $Tuple2(C, D)
379+ let bo = ([BooleanEntry(z(A), true)] ++ aR(aD, ae(A)))
380+ let bp = (getInteger(this, j) == unit)
381+ let bq = if (bp)
362382 then {
363383 let i = 0
364-[IntegerEntry(j, i), IntegerEntry(w(i), height), IntegerEntry(s, height), IntegerEntry(t, i), IntegerEntry(u, height)]
384+[IntegerEntry(j, i), IntegerEntry(x(i), height), IntegerEntry(t, height), IntegerEntry(u, i), IntegerEntry(v, height)]
365385 }
366386 else nil
367- $Tuple2((bf ++ bh), unit)
387+ $Tuple2((bo ++ bq), unit)
368388 }
369389 else throw("Strict value is not equal to itself.")
370390 }
371391
372392
373393
374-@Callable(aT)
375-func vote (B,C,bi) = {
376- let z = $Tuple2(B, C)
394+@Callable(bc)
395+func vote (C,D,br) = {
396+ let A = $Tuple2(C, D)
377397 let i = valueOrElse(getInteger(this, j), 0)
378- let bj = ac(this, w(i))
379- let bd = ac(this, f)
380- let bk = (bj + bd)
381- let bl = getInteger(this, p)
382- let bm = valueOrElse(getInteger(this, D(aT.caller, i)), 0)
383- let bn = valueOrElse(getInteger(this, F(z, aT.caller, i)), 0)
384- let bo = valueOrElse(getInteger(this, H(z, i)), 0)
385- let bp = valueOrElse(getInteger(this, N(i)), 0)
386- let bq = {
387- let ab = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(aT.caller.bytes), bk], nil)
388- if ($isInstanceOf(ab, "Int"))
389- then ab
390- else throw(($getType(ab) + " couldn't be cast to Int"))
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)
408+ if ($isInstanceOf(ac, "Int"))
409+ then ac
410+ else throw(($getType(ac) + " couldn't be cast to Int"))
391411 }
392- let br = (bq - bm)
393- let bs = (bn + bi)
394- let bt = as(z)
395- let be = [if ((getBoolean(y(z)) != unit))
412+ let bA = (bz - bv)
413+ let bB = (bw + br)
414+ let bC = az(A)
415+ let bn = [if ((getBoolean(z(A)) != unit))
396416 then true
397- else S("invalid assets"), if ((bk > height))
417+ else T("invalid assets"), if ((bt > height))
398418 then true
399- else S("invalid height"), if ((bl == unit))
419+ else T("invalid height"), if ((bu == unit))
400420 then true
401- else S("finalization in progress"), if ((bq > 0))
421+ else T("finalization in progress"), if ((bz > 0))
402422 then true
403- else S("you do not have gWX"), if (if ((bi > 0))
404- then (br >= bi)
423+ else T("you do not have gWX"), if (if ((br > 0))
424+ then (bA >= br)
405425 else false)
406426 then true
407- else S("invalid amount"), if (bt)
427+ else T("invalid amount"), if (bC)
408428 then true
409- else S("pool hasn't WX_EMISSION label")]
410- if ((be == be))
429+ else T("pool hasn't WX_EMISSION label")]
430+ if ((bn == bn))
411431 then {
412- let bu = av(z)
413- let P = toString(aT.caller)
414- let bv = if (aE(bu, P))
432+ let bD = aE(A)
433+ let Q = toString(bc.caller)
434+ let bE = if (aN(bD, Q))
415435 then nil
416- else aI(bu, P)
417- $Tuple2(([IntegerEntry(D(aT.caller, i), (bm + bi)), IntegerEntry(F(z, aT.caller, i), bs), IntegerEntry(H(z, i), (bo + bi)), IntegerEntry(N(i), (bp + bi))] ++ bv), 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)
418438 }
419439 else throw("Strict value is not equal to itself.")
420440 }
421441
422442
423443
424-@Callable(aT)
425-func cancelVote (B,C) = {
426- let z = $Tuple2(B, C)
444+@Callable(bc)
445+func cancelVote (C,D) = {
446+ let A = $Tuple2(C, D)
427447 let i = valueOrElse(getInteger(this, j), 0)
428- let bj = ac(this, w(i))
429- let bd = ac(this, f)
430- let bk = (bj + bd)
431- let bl = getInteger(this, p)
432- let bm = valueOrElse(getInteger(this, D(aT.caller, i)), 0)
433- let bn = valueOrElse(getInteger(this, F(z, aT.caller, i)), 0)
434- let bo = valueOrElse(getInteger(this, H(z, i)), 0)
435- let bp = valueOrElse(getInteger(this, N(i)), 0)
436- let be = [if ((getBoolean(y(z)) != 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))
437457 then true
438- else S("invalid assets"), if ((bk > height))
458+ else T("invalid assets"), if ((bt > height))
439459 then true
440- else S("invalid height"), if ((bl == unit))
460+ else T("invalid height"), if ((bu == unit))
441461 then true
442- else S("finalization in progress"), if ((bn > 0))
462+ else T("finalization in progress"), if ((bw > 0))
443463 then true
444- else S("no vote")]
445- if ((be == be))
464+ else T("no vote")]
465+ if ((bn == bn))
446466 then {
447- let bu = av(z)
448- let P = toString(aT.caller)
449- $Tuple2(([IntegerEntry(D(aT.caller, i), max([(bm - bn), 0])), DeleteEntry(F(z, aT.caller, i)), IntegerEntry(H(z, i), (bo - bn)), IntegerEntry(N(i), (bp - bn))] ++ aL(bu, P)), 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)
450470 }
451471 else throw("Strict value is not equal to itself.")
452472 }
453473
454474
455475
456-@Callable(aT)
457-func setEpochLength (bw) = {
458- let be = [aV(aT), if ((bw > 0))
476+@Callable(bc)
477+func setEpochLength (bF) = {
478+ let bn = [be(bc), if ((bF > 0))
459479 then true
460- else S("invalid epoch length")]
461- if ((be == be))
462- then $Tuple2([IntegerEntry(g, bw)], unit)
480+ else T("invalid epoch length")]
481+ if ((bn == bn))
482+ then $Tuple2([IntegerEntry(g, bF)], unit)
463483 else throw("Strict value is not equal to itself.")
464484 }
465485
466486
467487
468-@Callable(aT)
469-func setMaxDepth (bx) = {
470- let be = [aV(aT), if ((bx > 0))
488+@Callable(bc)
489+func setMaxDepth (bG) = {
490+ let bn = [be(bc), if ((bG > 0))
471491 then true
472- else S("invalid max depth")]
473- if ((be == be))
474- then $Tuple2([IntegerEntry(k, bx)], unit)
492+ else T("invalid max depth")]
493+ if ((bn == bn))
494+ then $Tuple2([IntegerEntry(k, bG)], unit)
475495 else throw("Strict value is not equal to itself.")
476496 }
477497
478498
479499
480-@Callable(aT)
481-func processVoteINTERNAL (by,P) = {
482- let bz = aW(aT)
483- if ((bz == bz))
500+@Callable(bc)
501+func processVoteINTERNAL (bH,Q) = {
502+ let bI = bf(bc)
503+ if ((bI == bI))
484504 then {
485- let aX = valueOrErrorMessage(addressFromString(P), Q(("processVoteINTERNAL: invalid user address " + P)))
486- let i = ac(this, j)
487- let bA = (i - 1)
488- let bd = ac(this, f)
489- let bj = ac(this, w(i))
490- let bk = (bj + bd)
491- let bB = ac(this, w(bA))
492- let bC = ac(this, h(bA))
493- let bD = (bB + bC)
494- let bE = if ((bA >= 0))
505+ let bg = valueOrErrorMessage(addressFromString(Q), R(("processVoteINTERNAL: invalid user address " + Q)))
506+ let i = ad(this, j)
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))
495515 then true
496- else S("processVoteINTERNAL: invalid previous epoch")
497- if ((bE == bE))
516+ else T("processVoteINTERNAL: invalid previous epoch")
517+ if ((bN == bN))
498518 then {
499- let z = ae(by)
500- let bF = z
501- let B = bF._1
502- let C = bF._2
503- let bt = as(z)
504- let bq = {
505- let ab = invoke(this, "getUserGwxAmountAtHeight", [P, bk], nil)
506- if ($isInstanceOf(ab, "Int"))
507- then ab
508- else throw(($getType(ab) + " couldn't be cast to Int"))
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)
526+ if ($isInstanceOf(ac, "Int"))
527+ then ac
528+ else throw(($getType(ac) + " couldn't be cast to Int"))
509529 }
510- let bG = {
511- let ab = invoke(this, "getUserGwxAmountAtHeight", [P, bD], nil)
512- if ($isInstanceOf(ab, "Int"))
513- then ab
514- else throw(($getType(ab) + " couldn't be cast to Int"))
530+ let bP = {
531+ let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, bM], nil)
532+ if ($isInstanceOf(ac, "Int"))
533+ then ac
534+ else throw(($getType(ac) + " couldn't be cast to Int"))
515535 }
516- let bp = valueOrElse(getInteger(N(i)), 0)
517- let bH = valueOrElse(getInteger(H(z, i)), 0)
518- let bI = valueOrErrorMessage(getInteger(F(z, aX, bA)), Q((((("processVoteINTERNAL " + by) + " ") + P) + ": no previous vote")))
519- let bm = valueOrElse(getInteger(this, D(aX, i)), 0)
520- let K = ag(B, C)
521- let bJ = valueOrElse(getInteger(J(K, bA)), 0)
522- let bc = addressFromStringValue(aa(this, o))
523- let bK = valueOrElse(getInteger(bc, O(K, P)), 0)
524- let bL = if ((bK == 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)
540+ let L = ao(C, D)
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))
525545 then nil
526- else [IntegerEntry(J(K, bA), (bJ + bI))]
527- let bs = if ((bG > 0))
528- then fraction(bI, bq, bG)
546+ else [IntegerEntry(K(L, bJ), (bS + bR))]
547+ let bB = if ((bP > 0))
548+ then fraction(bR, bz, bP)
529549 else 0
530- let bM = if (if ((bs > 0))
531- then bt
550+ let bV = if (if ((bB > 0))
551+ then bC
532552 else false)
533- then [IntegerEntry(F(z, aX, i), bs), IntegerEntry(N(i), (bp + bs)), IntegerEntry(H(z, i), (bH + bs)), IntegerEntry(D(aX, i), (bm + bs))]
534- else aL(av(z), P)
535- $Tuple2((bM ++ bL), 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)
536556 }
537557 else throw("Strict value is not equal to itself.")
538558 }
539559 else throw("Strict value is not equal to itself.")
540560 }
541561
542562
543563
544-@Callable(aT)
545-func processPoolINTERNAL (by,bN) = {
546- let bz = aW(aT)
547- if ((bz == bz))
564+@Callable(bc)
565+func processPoolINTERNAL (bH,bW) = {
566+ let bI = bf(bc)
567+ if ((bI == bI))
548568 then {
549- let bO = {
550- let bP = ac(this, j)
551- if (bN)
552- then bP
553- else (bP - 1)
569+ let bX = {
570+ let bY = ad(this, j)
571+ if (bW)
572+ then bY
573+ else (bY - 1)
554574 }
555- let bE = if ((bO >= 0))
575+ let bN = if ((bX >= 0))
556576 then true
557- else S("processPoolINTERNAL: invalid target epoch")
558- if ((bE == bE))
577+ else T("processPoolINTERNAL: invalid target epoch")
578+ if ((bN == bN))
559579 then {
560- let z = ae(by)
561- let bQ = z
562- let B = bQ._1
563- let C = bQ._2
564- let bc = addressFromStringValue(aa(this, o))
565- let ao = addressFromStringValue(aa(this, m))
566- let ar = ag(B, C)
567- let bR = {
568- let ab = invoke(bc, "usersListTraversal", [ar], nil)
569- if ($isInstanceOf(ab, "Boolean"))
570- then ab
571- else throw(($getType(ab) + " couldn't be cast to Boolean"))
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))
585+ let ay = ao(C, D)
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"))
572591 }
573- if ((bR == bR))
574- then if (bR)
592+ if ((ca == ca))
593+ then if (ca)
575594 then $Tuple2(nil, true)
576595 else {
577- let bt = as(z)
578- let bp = valueOrElse(getInteger(this, N(bO)), 0)
579- let bH = valueOrElse(getInteger(this, H(z, bO)), 0)
580- let bS = if (if ((bp == 0))
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))
581600 then true
582- else !(bt))
601+ else !(bC))
583602 then 0
584- else fraction(bH, b, bp)
585- let bT = invoke(ao, "modifyWeight", [ar, bS], nil)
586- if ((bT == bT))
603+ else fraction(bQ, b, by)
604+ let cc = invoke(ah, "modifyWeight", [ay, cb], nil)
605+ if ((cc == cc))
587606 then {
588- let bU = if (if (bt)
607+ let cd = if (if (bC)
589608 then true
590- else bN)
609+ else bW)
591610 then nil
592- else ([DeleteEntry(y(z))] ++ aL(au, by))
593- $Tuple2(([IntegerEntry(L(z, bO), bS)] ++ bU), false)
611+ else ([DeleteEntry(z(A))] ++ aU(aD, bH))
612+ $Tuple2(([IntegerEntry(M(A, bX), cb)] ++ cd), false)
594613 }
595614 else throw("Strict value is not equal to itself.")
596615 }
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(aT)
625+@Callable(bc)
607626 func finalizeHelper () = {
608- let bN = valueOrElse(getBoolean(v), false)
627+ let bW = valueOrElse(getBoolean(w), false)
609628 let i = valueOrElse(getInteger(this, j), 0)
610- let bV = (i - 1)
611- let bj = ac(this, w(i))
612- let bd = ac(this, f)
613- let bk = (bj + bd)
614- let bl = getInteger(this, p)
615- if (if (if ((height >= bk))
616- then (bl == 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 !(bN)
637+ then !(bW)
619638 else false)
620639 then {
621- let bW = (i + 1)
622- let bX = getInteger(this, g)
623- let bY = {
624- let X = bX
625- if ($isInstanceOf(X, "Int"))
640+ let cf = (i + 1)
641+ let cg = getInteger(this, g)
642+ let ch = {
643+ let Y = cg
644+ if ($isInstanceOf(Y, "Int"))
626645 then {
627- let bw = X
628-[IntegerEntry(f, bw), DeleteEntry(g)]
646+ let bF = Y
647+[IntegerEntry(f, bF), DeleteEntry(g)]
629648 }
630- else if ($isInstanceOf(X, "Unit"))
649+ else if ($isInstanceOf(Y, "Unit"))
631650 then nil
632651 else throw("Match error")
633652 }
634- $Tuple2(([IntegerEntry(w(bW), height), IntegerEntry(s, height), IntegerEntry(j, bW), IntegerEntry(p, d), IntegerEntry(h(i), bd)] ++ bY), 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 (bN)
637- then (bl == unit)
655+ else if (if (bW)
656+ then (bu == unit)
638657 else false)
639- then $Tuple2([IntegerEntry(p, e)], true)
640- else if ((bl == unit))
658+ then $Tuple2([IntegerEntry(q, e)], true)
659+ else if ((bu == unit))
641660 then $Tuple2(nil, false)
642- else if ((bl == d))
661+ else if ((bu == d))
643662 then {
644- let bZ = getString(q)
645- let ca = getString(r)
646- let X = bZ
647- if ($isInstanceOf(X, "Unit"))
663+ let ci = getString(r)
664+ let cj = getString(s)
665+ let Y = ci
666+ if ($isInstanceOf(Y, "Unit"))
648667 then {
649- let cb = getString(ax(au))
650- if ($isInstanceOf(cb, "Unit"))
651- then $Tuple2([IntegerEntry(p, e), DeleteEntry(q), DeleteEntry(r)], true)
652- else if ($isInstanceOf(cb, "String"))
668+ let ck = getString(aG(aD))
669+ if ($isInstanceOf(ck, "Unit"))
670+ then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
671+ else if ($isInstanceOf(ck, "String"))
653672 then {
654- let cc = cb
655- $Tuple2([StringEntry(q, cc)], true)
673+ let cl = ck
674+ $Tuple2([StringEntry(r, cl)], true)
656675 }
657676 else throw("Match error")
658677 }
659- else if ($isInstanceOf(X, "String"))
678+ else if ($isInstanceOf(Y, "String"))
660679 then {
661- let by = X
662- let z = ae(by)
663- let cd = {
664- let cb = ca
665- if ($isInstanceOf(cb, "Unit"))
666- then getString(ax(av(z)))
667- else if ($isInstanceOf(cb, "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 ce = cb
670- let cf = getString(aD(av(z), ce))
671- if ((cf == cf))
688+ let cn = ck
689+ let co = getString(aM(aE(A), cn))
690+ if ((co == co))
672691 then {
673- let cg = invoke(this, "processVoteINTERNAL", [by, ce], nil)
674- if ((cg == cg))
675- then cf
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 cb = cd
683- if ($isInstanceOf(cb, "Unit"))
701+ let ck = cm
702+ if ($isInstanceOf(ck, "Unit"))
684703 then {
685- let ch = getString(aD(au, by))
686- let ci = ch
687- if ($isInstanceOf(ci, "Unit"))
688- then $Tuple2([IntegerEntry(p, e), DeleteEntry(q), DeleteEntry(r)], true)
689- else if ($isInstanceOf(ci, "String"))
704+ let cq = getString(aM(aD, bH))
705+ let cr = cq
706+ if ($isInstanceOf(cr, "Unit"))
707+ then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
708+ else if ($isInstanceOf(cr, "String"))
690709 then {
691- let aP = ci
692- $Tuple2([StringEntry(q, aP), DeleteEntry(r)], true)
710+ let aY = cr
711+ $Tuple2([StringEntry(r, aY), DeleteEntry(s)], true)
693712 }
694713 else throw("Match error")
695714 }
696- else if ($isInstanceOf(cb, "String"))
715+ else if ($isInstanceOf(ck, "String"))
697716 then {
698- let cj = cb
699- $Tuple2([StringEntry(r, cj)], 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 ((bl == e))
724+ else if ((bu == e))
706725 then {
707- let bZ = getString(q)
708- let X = bZ
709- if ($isInstanceOf(X, "Unit"))
726+ let ci = getString(r)
727+ let Y = ci
728+ if ($isInstanceOf(Y, "Unit"))
710729 then {
711- let cb = getString(ax(au))
712- if ($isInstanceOf(cb, "Unit"))
730+ let ck = getString(aG(aD))
731+ if ($isInstanceOf(ck, "Unit"))
713732 then {
714- let bM = if (bN)
715- then [DeleteEntry(p), DeleteEntry(v)]
716- else [DeleteEntry(p), BooleanEntry(x(bV), true), IntegerEntry(t, i), IntegerEntry(u, bj)]
717- $Tuple2(bM, true)
733+ let bV = if (bW)
734+ then [DeleteEntry(q), DeleteEntry(w)]
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(cb, "String"))
741+ else if ($isInstanceOf(ck, "String"))
720742 then {
721- let ck = cb
722- $Tuple2([StringEntry(q, ck)], true)
743+ let cu = ck
744+ $Tuple2([StringEntry(r, cu)], true)
723745 }
724746 else throw("Match error")
725747 }
726- else if ($isInstanceOf(X, "String"))
748+ else if ($isInstanceOf(Y, "String"))
727749 then {
728- let by = X
729- let ch = getString(aD(au, by))
730- if ((ch == ch))
750+ let bH = Y
751+ let cq = getString(aM(aD, bH))
752+ if ((cq == cq))
731753 then {
732- let bR = {
733- let ab = invoke(this, "processPoolINTERNAL", [by, bN], nil)
734- if ($isInstanceOf(ab, "Boolean"))
735- then ab
736- else throw(($getType(ab) + " couldn't be cast to Boolean"))
754+ let ca = {
755+ let ac = invoke(this, "processPoolINTERNAL", [bH, bW], nil)
756+ if ($isInstanceOf(ac, "Boolean"))
757+ then ac
758+ else throw(($getType(ac) + " couldn't be cast to Boolean"))
737759 }
738- if ((bR == bR))
739- then if (bR)
760+ if ((ca == ca))
761+ then if (ca)
740762 then $Tuple2(nil, true)
741763 else {
742- let cb = ch
743- if ($isInstanceOf(cb, "Unit"))
764+ let ck = cq
765+ if ($isInstanceOf(ck, "Unit"))
744766 then {
745- let bM = if (bN)
746- then [DeleteEntry(p), DeleteEntry(v), DeleteEntry(q)]
747- else [DeleteEntry(p), BooleanEntry(x(bV), true), IntegerEntry(t, i), IntegerEntry(u, bj), DeleteEntry(q)]
748- $Tuple2(bM, true)
767+ let bV = if (bW)
768+ then [DeleteEntry(q), DeleteEntry(w), DeleteEntry(r)]
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(cb, "String"))
775+ else if ($isInstanceOf(ck, "String"))
751776 then {
752- let ck = cb
753- $Tuple2([StringEntry(q, ck)], 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 }
763- else S("finalization is broken")
788+ else T("finalization is broken")
764789 }
765790
766791
767792
768-@Callable(aT)
769-func finalizeWrapper (cl) = {
770- let cm = {
771- let ab = invoke(this, "finalizeHelper", nil, nil)
772- if ($isInstanceOf(ab, "Boolean"))
773- then ab
774- else throw(($getType(ab) + " couldn't be cast to Boolean"))
793+@Callable(bc)
794+func finalizeWrapper (cv) = {
795+ let cw = addressFromStringValue(getStringValue(this, m))
796+ let cx = {
797+ let ac = invoke(this, "finalizeHelper", nil, nil)
798+ if ($isInstanceOf(ac, "Boolean"))
799+ then ac
800+ else throw(($getType(ac) + " couldn't be cast to Boolean"))
775801 }
776- if ((cm == cm))
777- then if (!(cm))
778- then if ((cl == 0))
779- then S("Current voting is not over yet")
780- else $Tuple2(nil, unit)
802+ if ((cx == cx))
803+ then if (!(cx))
804+ then if ((cv == 0))
805+ then T("Current voting is not over yet")
806+ else {
807+ let cy = invoke(cw, "finalize", nil, nil)
808+ if ((cy == cy))
809+ then $Tuple2(nil, unit)
810+ else throw("Strict value is not equal to itself.")
811+ }
781812 else {
782- let cn = valueOrElse(getInteger(this, k), c)
783- if ((cn > cl))
813+ let cz = valueOrElse(getInteger(this, k), c)
814+ if ((cz > cv))
784815 then {
785- let co = invoke(this, "finalizeWrapper", [(cl + 1)], nil)
786- if ((co == co))
816+ let cy = invoke(this, "finalizeWrapper", [(cv + 1)], nil)
817+ if ((cy == cy))
787818 then $Tuple2(nil, unit)
788819 else throw("Strict value is not equal to itself.")
789820 }
790821 else $Tuple2(nil, unit)
791822 }
792823 else throw("Strict value is not equal to itself.")
793824 }
794825
795826
796827
797-@Callable(aT)
828+@Callable(bc)
798829 func finalize () = {
799- let co = invoke(this, "finalizeWrapper", [0], nil)
800- if ((co == co))
830+ let cy = invoke(this, "finalizeWrapper", [0], nil)
831+ if ((cy == cy))
801832 then $Tuple2(nil, unit)
802833 else throw("Strict value is not equal to itself.")
803834 }
804835
805836
806837
807-@Callable(aT)
808-func containsNodeREADONLY (ay,aC) = $Tuple2(nil, aE(ay, aC))
838+@Callable(bc)
839+func containsNodeREADONLY (aH,aL) = $Tuple2(nil, aN(aH, aL))
809840
810841
811842
812-@Callable(aT)
813-func insertNode (ay,aC) = {
814- let bz = aV(aT)
815- if ((bz == bz))
816- then $Tuple2(aI(ay, aC), 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)
817848 else throw("Strict value is not equal to itself.")
818849 }
819850
820851
821852
822-@Callable(aT)
823-func deleteNode (ay,aC) = {
824- let bz = aV(aT)
825- if ((bz == bz))
826- then $Tuple2(aL(ay, aC), 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)
827858 else throw("Strict value is not equal to itself.")
828859 }
829860
830861
831862
832-@Callable(aT)
863+@Callable(bc)
833864 func isFinalizationInProgress () = {
834- let bl = getInteger(this, p)
835- let cp = (bl != unit)
836- $Tuple2(nil, cp)
865+ let bu = getInteger(this, q)
866+ let cA = (bu != unit)
867+ $Tuple2(nil, cA)
837868 }
838869
839870
840-@Verifier(cq)
841-func cr () = {
842- let cs = {
843- let X = aQ()
844- if ($isInstanceOf(X, "ByteVector"))
871+@Verifier(cB)
872+func cC () = {
873+ let cD = {
874+ let Y = aZ()
875+ if ($isInstanceOf(Y, "ByteVector"))
845876 then {
846- let aU = X
847- aU
877+ let bd = Y
878+ bd
848879 }
849- else if ($isInstanceOf(X, "Unit"))
850- then cq.senderPublicKey
880+ else if ($isInstanceOf(Y, "Unit"))
881+ then cB.senderPublicKey
851882 else throw("Match error")
852883 }
853- sigVerify(cq.bodyBytes, cq.proofs[0], cs)
884+ sigVerify(cB.bodyBytes, cB.proofs[0], cD)
854885 }
855886

github/deemru/w8io/169f3d6 
295.65 ms