tx · 6v1FCkzPnZA5bNR5vN2tLTX7g879PyaZtgbtgmzbFqHh

3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz:  -0.02200000 Waves

2023.01.17 13:50 [2408829] smart account 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz > SELF 0.00000000 Waves

{ "type": 13, "id": "6v1FCkzPnZA5bNR5vN2tLTX7g879PyaZtgbtgmzbFqHh", "fee": 2200000, "feeAssetId": null, "timestamp": 1673952641379, "version": 1, "sender": "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz", "senderPublicKey": "D28XoueZWsMfm8Y5pa6C5ZFuYoWgre2Wm8tzJANJgMnq", "proofs": [ "4T9QSxqCV7EsuQLskyPaE6HMju12925BNJw5EwfkoaJ4ywkftpUQfjqWWTpUnB4dbQeXjPEoTbco4AFnCMny7iKZ" ], "script": "base64:BgL1HggCEgMKAQgSAwoBCBIDCgEIEgASABIECgIIARIDCgEIEgQKAggIEgYKBAEYCBgSBAoCGAgSBAoCCAgSAwoBCBIECgIICCIGU0NBTEU4IgVNVUxUOCIHU0NBTEUxOCIGTVVMVDE4IgNTRVAiDlBPT0xXRUlHSFRNVUxUIgp6ZXJvQmlnSW50IglvbmVCaWdJbnQiCWFzQW55TGlzdCIDdmFsIgckbWF0Y2gwIgp2YWxBbnlMeXN0IgVhc0ludCIGdmFsSW50Ighhc1N0cmluZyIGdmFsU3RyIgxhc0J5dGVWZWN0b3IiBnZhbEJpbiIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbCIMZ2V0SW50T3JaZXJvIg9nZXRJbnRPckRlZmF1bHQiCmRlZmF1bHRWYWwiDGdldEludE9yRmFpbCIZZ2V0QmlnSW50RnJvbVN0cmluZ09yWmVybyIcZ2V0QmlnSW50RnJvbVN0cmluZ09yRGVmYXVsdCIBcyIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiD3Jlc3VsdFNjYWxlTXVsdCIRa2V5RmFjdG9yeUFkZHJlc3MiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcCIZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcCIUSWR4RmFjdG9yeUNmZ0lkb0RhcHAiFUlkeEZhY3RvcnlDZmdUZWFtRGFwcCIZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcCIVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwIhlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwIg1rZXlGYWN0b3J5Q2ZnIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIWa2V5U3RhYmxlUG9vbEFkZG9uQWRkciIMa2V5QWRkb25BZGRyIhprZXlGYWN0b3J5THAyQXNzZXRzTWFwcGluZyIKbHBBc3NldFN0ciIQa2V5RmFjdG9yeUxwTGlzdCIma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiFGtleUZhY3RvcnlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiCnJlYWRMcExpc3QiB2ZhY3RvcnkiFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsIhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiCmZhY3RvcnlDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudCIha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50IhVrZXlFbWlzc2lvblN0YXJ0QmxvY2siG2tleUVtaXNzaW9uRHVyYXRpb25JbkJsb2NrcyITa2V5RW1pc3Npb25FbmRCbG9jayIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIMbHBBc3NldElkU3RyIg5rZXlTdGFrZWRUb3RhbCIQa2V5Q2xhaW1lZEJ5VXNlciIZa2V5Q2xhaW1lZEJ5VXNlck1pblJld2FyZCIba2V5Q2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkIg9rZXlDbGFpbWVkVG90YWwiCnJlYWRTdGFrZWQiFWtleUxhc3RUb3RhbExwQmFsYW5jZSIJbHBBc3NldElkIhRrZXlMYXN0VXNlckxwQmFsYW5jZSILdXNlckFkZHJlc3MiGWtleVRvdGFsTHBCYWxhbmNlSW50ZWdyYWwiGGtleVVzZXJMcEJhbGFuY2VJbnRlZ3JhbCIma2V5VG90YWxMcEJhbGFuY2VJbnRlZ3JhbExhc3RVcGRIZWlnaHQiJWtleVVzZXJMcEJhbGFuY2VJbnRlZ3JhbExhc3RVcGRIZWlnaHQiEmtleVd4UGVyTHBJbnRlZ3JhbCIfa2V5V3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodCIQa2V5V3hUb0NsYWltVXNlciIja2V5V3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHQiCmtleVd4UGVyTHAiDWtleVd4UGVyTHBYMTgiGmtleVd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0IhlrZXlPcGVyYXRpb25IaXN0b3J5UmVjb3JkIgR0eXBlIgZ0eElkNTgiE2Zvcm1hdEhpc3RvcnlSZWNvcmQiBmFtb3VudCIVT3BlcmF0aW9uSGlzdG9yeUVudHJ5IgR0eElkIg5mYWN0b3J5QWRkcmVzcyIPZmFjdG9yeUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IgtrZXlOZXh0VXNlciIQZ2V0VXNlcnNMaXN0TmFtZSILa2V5TGlzdEhlYWQiCGxpc3ROYW1lIgtrZXlMaXN0U2l6ZSILa2V5TGlzdFByZXYiAmlkIgtrZXlMaXN0TmV4dCIMY29udGFpbnNOb2RlIgpoZWFkT3JVbml0IgpwcmV2T3JVbml0IgpuZXh0T3JVbml0IhFpbnNlcnROb2RlQWN0aW9ucyIIbGlzdFNpemUiCWNoZWNrTm9kZSIRZGVsZXRlTm9kZUFjdGlvbnMiG2NhbGNXeFBlckxwSW50ZWdyYWxVc2VyTGFzdCIMc3Rha2VkQnlVc2VyIiZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybyISd3hQZXJMcEludGVncmFsTmV3Ihp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdEtFWSIUcmVmcmVzaFBvb2xJTlRFR1JBTFMiDnBvb2xBZGRyZXNzU3RyIg1scERlbHRhQW1vdW50Ig5zdGFrZWRUb3RhbEtFWSILc3Rha2VkVG90YWwiEm5vblplcm9TdGFrZWRUb3RhbCIKcG9vbFdlaWdodCISZW1pc3Npb25TdGFydEJsb2NrIgVNVUxUMyIUd3hFbWlzc2lvblBlckJsb2NrWDMiGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMyISd3hQZXJMcEludGVncmFsS0VZIh93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0S0VZIgp3eFBlckxwS0VZIhx3eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0Ig93eFBlckxwSW50ZWdyYWwiD3d4UGVyTHBPclplcm9YMyICZGgiCXd4UGVyTHBYMyIOc3Rha2VkVG90YWxOZXciFW5vblplcm9TdGFrZWRUb3RhbE5ldyIMd3hQZXJMcFgzTmV3Ih93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0TmV3IgVkZWJ1ZyIQcmVmcmVzaElOVEVHUkFMUyINJHQwMTQyNzQxNDM5NiIRcG9vbEludGVncmFsU1RBVEUiCXBvb2xERUJVRyIPc3Rha2VkQnlVc2VyS0VZIhB3eFRvQ2xhaW1Vc2VyS0VZIiN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWSINd3hUb0NsYWltVXNlciIXd3hQZXJMcEludGVncmFsVXNlckxhc3QiBk1VTFQxMSIQd3hUb0NsYWltVXNlck5ldyIad3hQZXJMcEludGVncmFsVXNlckxhc3ROZXciI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0TmV3IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0Ih1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIVcGVybWlzc2lvbkRlbmllZEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhFmYWN0b3J5QWRkcmVzc1N0ciILY2hlY2tDYWxsZXIiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiBWNoZWtzIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iA3BtdCIJY2FsbGVyU3RyIg0kdDAxODgzMjE4OTQ5Ig1pbnRlZ3JhbFNUQVRFIgtsaXN0QWN0aW9ucyIJcG9vbEFkZG9uIg1jbGFpbWVkQnlVc2VyIgtwb29sQWRkcmVzcyIQYXZhaWxhYmxlVG9DbGFpbSIBciIGcmVzdWx0IhBjbGFpbWVkQnlVc2VyS0VZIg9jbGFpbWVkVG90YWxLRVkiGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkiG2NsYWltZWRCeVVzZXJCb29zdFJld2FyZEtFWSIWY2xhaW1lZEJ5VXNlck1pblJld2FyZCIYY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkIgxjbGFpbWVkVG90YWwiDSR0MDIyNzg3MjI4OTkiEnd4QW1vdW50Qm9vc3RUb3RhbCINbWluUmV3YXJkUGFydCIPYm9vc3RSZXdhcmRQYXJ0Igl3eEFzc2V0SWQiCWVtaXRCb29zdCISY2xhaW1lZEJ5VXNlclZhbHVlIh5jbGFpbWVkQnlVc2VyTWluUmV3YXJkUGx1c1BhcnQiK2NsYWltZWRCeVVzZXJCb29zdFJld2FyZFBsdXNCb29zdFJld2FyZFBhcnQiIGNsYWltZWRUb3RhbFBsdXNBdmFpbGFibGVUb0NsYWltIgtjdXJyZW50SXRlciIKbHBBc3NldElkcyIGcmVzQWNjIgRpbmZvIgFAIgl1bmNsYWltZWQiB2NsYWltZWQiA3JlcyIDaW52IhJ3eEVtaXNzaW9uUGVyQmxvY2siDHBhc3NlZEJsb2NrcyIOcG9vbFd4RW1pc3Npb24iDHVzZXJXeFJld2FyZCINJHQwMjYzNTcyNjQ2OSIOYm9vc3RJbnZSZXN1bHQiCmJvb3N0RGVidWciC3RvdGFsUmV3YXJkIgp1c2VyT3JVbml0IgckbWF0Y2gxIgRoZWFkIg5uZXh0VXNlck9yVW5pdCIIbmV4dFVzZXIiDSR0MDI4NzY5Mjg4NzkiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleV4AAWEACAABYgCAwtcvAAFjABIAAWQJALYCAQCAgJC7utat8A0AAWUCAl9fAAFmBQFiAAFnCQC2AgEAAAABaAkAtgIBAAEBAWkBAWoEAWsFAWoDCQABAgUBawIJTGlzdFtBbnldBAFsBQFrBQFsCQACAQIbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQFtAQFqBAFrBQFqAwkAAQIFAWsCA0ludAQBbgUBawUBbgkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEBbwEBagQBawUBagMJAAECBQFrAgZTdHJpbmcEAXAFAWsFAXAJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBAXEBAWoEAWsFAWoDCQABAgUBawIKQnl0ZVZlY3RvcgQBcgUBawUBcgkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEBcwIBdAF1CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUBdAUBdQkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBdQIPIGlzIG5vdCBkZWZpbmVkAQF2AgF0AXUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQF0BQF1CQCsAgIJAKwCAgkArAICCQCsAgICCm1hbmRhdG9yeSAJAKUIAQUBdAIBLgUBdQIPIGlzIG5vdCBkZWZpbmVkAQF3AgF0AXUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUBdAUBdQAAAQF4AwF0AXUBeQkBC3ZhbHVlT3JFbHNlAgkAmggCBQF0BQF1BQF5AQF6AgF0AXUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQF0BQF1CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQF1Ag8gaXMgbm90IGRlZmluZWQBAUECAXQBdQkBBXZhbHVlAQkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFAXQFAXUCATABAUIDAXQBdQF5BAFrCQCdCAIFAXQFAXUDCQABAgUBawIGU3RyaW5nBAFDBQFrCQEFdmFsdWUBCQCoAwEFAUMDCQABAgUBawIEVW5pdAUBeQkAAgECC01hdGNoIGVycm9yAQFEAgFFAUYJALwCAwkAtgIBBQFFBQFkCQC2AgEFAUYBAUcCAWoBSAkAoAMBCQC8AgMFAWoJALYCAQUBSAUBZAEBSQACHCVzJXNfX2NvbmZpZ19fZmFjdG9yeUFkZHJlc3MBAUoAAholc19fdm90aW5nRW1pc3Npb25Db250cmFjdAABSwABAAFMAAIAAU0AAwABTgAEAAFPAAUAAVAABgABUQAHAQFSAAIRJXNfX2ZhY3RvcnlDb25maWcBAVMAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVAACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBVQACFyVzX19zdGFibGVQb29sQWRkb25BZGRyAQFWAAINJXNfX2FkZG9uQWRkcgEBVwEBWAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFYCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFlAQFZAAIQJXNfX2xwVG9rZW5zTGlzdAEBWgEBWAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFYCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFlAQJhYQECYWIJALkJAgkAzAgCAgQlcyVzCQDMCAICCnBvb2xXZWlnaHQJAMwIAgUCYWIFA25pbAUBZQECYWMBAmFkCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUCYWQJAQFZAAIABQFlAQJhZQECYWQJALUJAgkBAXYCBQJhZAkBAVIABQFlAQJhZgECYWcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWcFAUwBAmFoAQJhZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhZwUBTwECYWkBAmFnCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFnBQFLAQJhagACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAECYWsAAh4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAmFsAAIaJXMlc19fZW1pc3Npb25fX3N0YXJ0QmxvY2sBAmFtAAIYJXMlc19fZW1pc3Npb25fX2R1cmF0aW9uAQJhbgACGCVzJXNfX2VtaXNzaW9uX19lbmRCbG9jawECYW8CAmFwAmFxCQC5CQIJAMwIAgIOJXMlcyVzX19zdGFrZWQJAMwIAgUCYXAJAMwIAgUCYXEFA25pbAUBZQECYXIBAmFxCQCsAgICFyVzJXMlc19fc3Rha2VkX190b3RhbF9fBQJhcQECYXMCAmFxAmFwCQC5CQIJAMwIAgIPJXMlcyVzX19jbGFpbWVkCQDMCAIFAmFwCQDMCAIFAmFxBQNuaWwFAWUBAmF0AgJhcQJhcAkAuQkCCQDMCAICGCVzJXMlc19fY2xhaW1lZE1pblJld2FyZAkAzAgCBQJhcAkAzAgCBQJhcQUDbmlsBQFlAQJhdQICYXECYXAJALkJAgkAzAgCAholcyVzJXNfX2NsYWltZWRCb29zdFJld2FyZAkAzAgCBQJhcAkAzAgCBQJhcQUDbmlsBQFlAQJhdgECYXEJALkJAgkAzAgCAhYlcyVzJXNfX2NsYWltZWRfX3RvdGFsCQDMCAIFAmFxBQNuaWwFAWUBAmF3AQF1CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAXUAAAECYXgBAmF5CQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmF5CQDMCAICBXRvdGFsCQDMCAICA2JhbAUDbmlsBQFlAQJhegICYXkCYUEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYXkJAMwIAgUCYUEJAMwIAgIDYmFsBQNuaWwFAWUBAmFCAQJheQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQJheQkAzAgCAgV0b3RhbAkAzAgCAgZiYWxJTlQFA25pbAUBZQECYUMCAmF5AmFBCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmF5CQDMCAIFAmFBCQDMCAICBmJhbElOVAUDbmlsBQFlAQJhRAECYXkJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYXkJAMwIAgIFdG90YWwJAMwIAgIHbGFzdFVwZAUDbmlsBQFlAQJhRQICYXkCYUEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYXkJAMwIAgUCYUEJAMwIAgIHbGFzdFVwZAUDbmlsBQFlAQJhRgECYXkJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJheQkAzAgCAgZjb21tb24JAMwIAgIFbHBJbnQFA25pbAUBZQECYUcBAmF5CQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgUCYXkJAMwIAgIGY29tbW9uCQDMCAICBmxwSW50SAUDbmlsBQFlAQJhSAICYXkCYUEJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJheQkAzAgCBQJhQQkAzAgCAgVscEludAUDbmlsBQFlAQJhSQICYXkCYUEJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJheQkAzAgCBQJhQQkAzAgCAgZscEludEgFA25pbAUBZQECYUoBAmF5CQC5CQIJAMwIAgICJXMJAMwIAgUCYXkJAMwIAgIHd3hQZXJMcAUDbmlsBQFlAQJhSwECYXkJALkJAgkAzAgCAgIlcwkAzAgCBQJheQkAzAgCAgp3eFBlckxwWDE4BQNuaWwFAWUBAmFMAgJheQJhQQkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmF5CQDMCAIFAmFBCQDMCAICBXVJbnRMBQNuaWwFAWUBAmFNAwJhTgJhQQJhTwkAuQkCCQDMCAICESVzJXMlcyVzX19oaXN0b3J5CQDMCAIFAmFOCQDMCAIFAmFBCQDMCAIFAmFPBQNuaWwFAWUBAmFQBAJhQQJheQJhTgJhUQkAuQkCCQDMCAICDCVzJXMlcyVkJWQlZAkAzAgCBQJhQQkAzAgCBQJheQkAzAgCBQJhTgkAzAgCCQCkAwEFBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQUCYVEFA25pbAUBZQECYVIFAmFOAmFBAmF5AmFRAmFTCQELU3RyaW5nRW50cnkCCQECYU0DBQJhTgUCYUEJANgEAQUCYVMJAQJhUAQFAmFBBQJheQUCYU4FAmFRAAJhVAkBAXMCBQR0aGlzCQEBSQAAAmFVCQERQGV4dHJOYXRpdmUoMTA2MikBBQJhVAACYWcJAQJhZQEFAmFVAAJhVgkBAmFoAQUCYWcAAmFXCQECYWYBBQJhZwECYVgBAmF5CQC5CQIJAMwIAgIEJXMlcwkAzAgCBQJheQkAzAgCAghuZXh0VXNlcgUDbmlsBQFlAQJhWQECYXkJALkJAgkAzAgCAgV1c2VycwkAzAgCBQJheQUDbmlsBQFlAQJhWgECYmEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYmEJAMwIAgIEaGVhZAUDbmlsBQFlAQJiYgECYmEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYmEJAMwIAgIEc2l6ZQUDbmlsBQFlAQJiYwICYmECYmQJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJiYQkAzAgCBQJiZAkAzAgCAgRwcmV2BQNuaWwFAWUBAmJlAgJiYQJiZAkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmJhCQDMCAIFAmJkCQDMCAICBG5leHQFA25pbAUBZQECYmYCAmJhAmJkBAJiZwkAnQgCBQR0aGlzCQECYVoBBQJiYQQCYmgJAJ0IAgUEdGhpcwkBAmJjAgUCYmEFAmJkBAJiaQkAnQgCBQR0aGlzCQECYmUCBQJiYQUCYmQDAwkAAAIFAmJkCQELdmFsdWVPckVsc2UCBQJiZwIABgkBAiE9AgUCYmgFBHVuaXQGCQECIT0CBQJiaQUEdW5pdAECYmoCAmJhAmJkBAJiZwkAnQgCBQR0aGlzCQECYVoBBQJiYQQCYmsJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJiAQUCYmEAAAQCYmwDCQEBIQEJAQJiZgIFAmJhBQJiZAYJAAIBAgtOb2RlIGV4aXN0cwMJAAACBQJibAUCYmwJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYmIBBQJiYQkAZAIFAmJrAAEFA25pbAMJAQIhPQIFAmJnBQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZQIFAmJhBQJiZAkBBXZhbHVlAQUCYmcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJjAgUCYmEJAQV2YWx1ZQEFAmJnBQJiZAUDbmlsBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFaAQUCYmEFAmJkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmJtAgJiYQJiZAQCYmcJAJ0IAgUEdGhpcwkBAmFaAQUCYmEEAmJrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiYgEFAmJhAAAEAmJoCQCdCAIFBHRoaXMJAQJiYwIFAmJhBQJiZAQCYmkJAJ0IAgUEdGhpcwkBAmJlAgUCYmEFAmJkCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiYgEFAmJhCQBlAgUCYmsAAQUDbmlsAwMJAQIhPQIFAmJoBQR1bml0CQECIT0CBQJiaQUEdW5pdAcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJlAgUCYmEJAQV2YWx1ZQEFAmJoCQEFdmFsdWUBBQJiaQkAzAgCCQELU3RyaW5nRW50cnkCCQECYmMCBQJiYQkBBXZhbHVlAQUCYmkJAQV2YWx1ZQEFAmJoCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJiYwIFAmJhBQJiZAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmUCBQJiYQUCYmQFA25pbAMJAQIhPQIFAmJpBQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhWgEFAmJhCQEFdmFsdWUBBQJiaQkAzAgCCQELRGVsZXRlRW50cnkBCQECYmUCBQJiYQUCYmQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJjAgUCYmEJAQV2YWx1ZQEFAmJpBQNuaWwDCQECIT0CBQJiaAUEdW5pdAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmMCBQJiYQUCYmQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJlAgUCYmEJAQV2YWx1ZQEFAmJoBQNuaWwDCQAAAgUCYmQJAQt2YWx1ZU9yRWxzZQIFAmJnAgAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFaAQUCYmEFA25pbAkAAgEJAKwCAgkArAICCQCsAgICDmludmFsaWQgbm9kZTogBQJiYQIBLgUCYmQBAmJuBAJibwJicAJicQJicgMDCQAAAgUCYnAFAWcJAL8CAgUCYm8FAWcHBQFnAwkAAAIFAmJvBQFnBQJicQMDCQC/AgIFAmJwBQFnCQC/AgIFAmJvBQFnBwkBBXZhbHVlAQkAqAMBCQEBcwIFBHRoaXMFAmJyCQACAQItY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0OiB1bmV4cGVjdGVkIHN0YXRlAQJicwMCYXECYnQCYnUEAmJ2CQECYXIBBQJhcQQCYncJALYCAQkBAmF3AQUCYnYEAmJ4AwkAAAIFAmJ3BQFnBQFoBQJidwQCYnkJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmFVCQECYWEBBQJidAQCYnoJAQF6AgUCYVYJAQJhbAAEAmJBAOgHBAJiQgkAaAIJAQF6AgUCYVYJAQJhagAFAmJBBAJiQwkAawMFAmJCBQJieQkAaAIFAWYAAwQCYkQJAQJhRgEFAmFxBAJiRQkBAmFHAQUCYXEEAmJGCQECYUoBBQJhcQQCYkcJAQF4AwUEdGhpcwUCYkUFAmJ6BAJiSAkBAUECBQR0aGlzBQJiRAQCYkkAAAQCYkoJAJYDAQkAzAgCCQBlAgUGaGVpZ2h0BQJiRwkAzAgCAAAFA25pbAQCYksDCQECIT0CBQJiSQAACQC2AgEFAmJJCQC8AgMJALYCAQUCYkMJALYCAQUBYgUCYngEAmJMCQC3AgIFAmJ3CQC2AgEFAmJ1BAJiTQMJAAACBQJiTAUBZwUBaAUCYkwEAmJxCQC3AgIFAmJICQC5AgIFAmJLCQC2AgEFAmJKBAJiTgkAugICCQC2AgEFAmJDBQJiTQQCYk8FBmhlaWdodAQCYlAJALkJAgkAzAgCCQCmAwEFAmJxCQDMCAIJAKQDAQUCYkoJAMwIAgkApgMBBQJiSwkAzAgCCQCmAwEFAmJ3CQDMCAIJAKQDAQUCYkMJAMwIAgkApAMBBQJiQgkAzAgCCQCkAwEFAmJ5BQNuaWwCAjo6CQCVCgMFAmJxCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJECQCmAwEFAmJxCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiRQUCYk8JAMwIAgkBC1N0cmluZ0VudHJ5AgUCYkYJAKYDAQUCYk4FA25pbAUCYlABAmJRBAJhcQJhcAJidAJidQQCYlIJAQJicwMFAmFxBQJidAUCYnUEAmJxCAUCYlICXzEEAmJTCAUCYlICXzIEAmJUCAUCYlICXzMEAmJBAOgHBAJiVQkBAmFvAgUCYXAFAmFxBAJibwkBAmF3AQUCYlUEAmJWCQECYUgCBQJhcQUCYXAEAmJXCQECYUkCBQJhcQUCYXAEAmJyCQECYUwCBQJhcQUCYXAEAmJYCQEBQQIFBHRoaXMFAmJWBAJicAkBAXcCBQR0aGlzBQJiVwQCYlkJAQJibgQJALYCAQUCYm8JALYCAQUCYnAFAmJxBQJicgQCYloJAGgCBQFiBQJiQQQCY2EJAJgDAQkAzAgCCQC3AgIFAmJYCQC8AgMJALgCAgUCYnEFAmJZCQC2AgEFAmJvCQC2AgEFAmJaCQDMCAIFAWcFA25pbAQCY2IFAmJxBAJjYwUGaGVpZ2h0BAJiUAkAuQkCCQDMCAIJAKYDAQUCYlgJAMwIAgkApgMBBQJiWQkAzAgCCQCkAwEFAmJvCQDMCAIFAmJUCQDMCAIJAKQDAQUGaGVpZ2h0BQNuaWwCAjo6CQCVCgMFAmNhCQDOCAIFAmJTCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJWCQCmAwEFAmNhCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiVwUCY2MJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYnIJAKYDAQUCY2IFA25pbAUCYlABAmNkAAQBawkAoggBCQEBUwADCQABAgUBawIGU3RyaW5nBAFDBQFrCQDZBAEFAUMDCQABAgUBawIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJjZQAEAWsJAKIIAQkBAVQAAwkAAQIFAWsCBlN0cmluZwQBQwUBawkA2QQBBQFDAwkAAQIFAWsCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACY2YJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAECY2cBAmNoAwkAAAIIBQJjaAZjYWxsZXIFBHRoaXMGBQJjZgECY2kBAmNoBAFrCQECY2QAAwkAAQIFAWsCCkJ5dGVWZWN0b3IEAmNqBQFrAwkAAAIIBQJjaA9jYWxsZXJQdWJsaWNLZXkFAmNqBgUCY2YDCQABAgUBawIEVW5pdAMJAAACCAUCY2gGY2FsbGVyBQR0aGlzBgUCY2YJAAIBAgtNYXRjaCBlcnJvcg0CY2gBC2NvbnN0cnVjdG9yAQJjawQCY2wJAQJjaQEFAmNoAwkAAAIFAmNsBQJjbAkAzAgCCQELU3RyaW5nRW50cnkCCQEBSQAFAmNrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY2gBDWNvbnN0cnVjdG9yVjIBAmNtBAJjbgkAzAgCCQECY2kBBQJjaAkAzAgCAwkBAiE9AgkApggBBQJjbQUEdW5pdAYCKGludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MFA25pbAMJAAACBQJjbgUCY24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUoABQJjbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoAQpzZXRNYW5hZ2VyAQJjbwQCY2wJAQJjaQEFAmNoAwkAAAIFAmNsBQJjbAQCY3AJANkEAQUCY28DCQAAAgUCY3AFAmNwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAUCY28FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjaAEOY29uZmlybU1hbmFnZXIABAJjcQkBAmNlAAQCY3IDCQEJaXNEZWZpbmVkAQUCY3EGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNyBQJjcgQCY3MDCQAAAggFAmNoD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCY3EGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNzBQJjcwkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwAJANgEAQkBBXZhbHVlAQUCY3EJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVQABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY2gBBXN0YWtlAAMJAQIhPQIJAJADAQgFAmNoCHBheW1lbnRzAAEJAAIBAjRpbnZhbGlkIHBheW1lbnQgLSBleGFjdCBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBAJjdAkAkQMCCAUCY2gIcGF5bWVudHMAAAQCYXkJAQV2YWx1ZQEIBQJjdAdhc3NldElkBAJhcQkA2AQBBQJheQQCYVEIBQJjdAZhbW91bnQEAmJ0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVUJAQFXAQUCYXEJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJhcQQCY3UJAKUIAQgFAmNoBmNhbGxlcgQCYXADCQAAAgUCY3UFAmJ0CQClCAEIBQJjaAxvcmlnaW5DYWxsZXIFAmN1BAJiVQkBAmFvAgUCYXAFAmFxBAJidgkBAmFyAQUCYXEEAmJvCQECYXcBBQJiVQQCYncJAQJhdwEFAmJ2BAJjdgkBAmJRBAUCYXEFAmFwBQJidAUCYVEEAmNhCAUCY3YCXzEEAmN3CAUCY3YCXzIEAmJQCAUCY3YCXzMEAmJhCQECYVkBBQJhcQQCY3gDCQECYmYCBQJiYQUCYXAFA25pbAkBAmJqAgUCYmEFAmFwCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYlUJAGQCBQJibwUCYVEJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJ2CQBkAgUCYncFAmFRCQDMCAIJAQJhUgUCBXN0YWtlBQJhcAUCYXEFAmFRCAUCY2gNdHJhbnNhY3Rpb25JZAUDbmlsBQJjdwUCY3gCY2gBB3Vuc3Rha2UCAmFxAmFRBAJheQkA2QQBBQJhcQQCYnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhVQkBAVcBBQJhcQkArAICAhV1bnN1cHBvcnRlZCBscCBhc3NldCAFAmFxBAJjeQkBC3ZhbHVlT3JFbHNlAgkAnQgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQJidAkBAVYABQJidAQCY3UJAKUIAQgFAmNoBmNhbGxlcgQCYXADAwkAAAIFAmN1BQJidAYJAAACBQJjdQUCY3kJAKUIAQgFAmNoDG9yaWdpbkNhbGxlcgUCY3UEAmJVCQECYW8CBQJhcAUCYXEEAmJ2CQECYXIBBQJhcQQCYm8JAQJhdwEFAmJVBAJidwkBAmF3AQUCYnYEAmN3CAkBAmJRBAUCYXEFAmFwBQJidAkBAS0BBQJhUQJfMgQCYmEJAQJhWQEFAmFxBAJjeAMDCQECYmYCBQJiYQUCYXAJAAACBQJhUQUCYm8HCQECYm0CBQJiYQUCYXAFA25pbAQCY3oJAQFBAgUEdGhpcwkBAmFzAgUCYXEFAmFwBAJjQQkBAXYCBQJhVQkBAVoBBQJhcQQCY2EICQECYlEEBQJhcQUCYXAFAmNBAAACXzEEAmNCCQC4AgIFAmNhBQJjegQCY0MDCQC/AgIFAmNCBQFnCQD8BwQFBHRoaXMCD2NsYWltV3hJTlRFUk5BTAkAzAgCBQJhcQkAzAgCBQJhcAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCY0MFAmNDAwkAZgIFAmFRBQJibwkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIOcGFzc2VkIGFtb3VudD0JAKQDAQUCYVECGyBpcyBncmVhdGVyIHRoYW4gYXZhaWxhYmxlPQkApAMBBQJibwIMLiBscEFzc2V0SWQ9BQJhcQISLiBzdGFrZWRCeVVzZXJLRVk9BQJiVQkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJVCQBlAgUCYm8FAmFRCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJidgkAZQIFAmJ3BQJhUQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCY2gGY2FsbGVyBQJhUQUCYXkJAMwIAgkBAmFSBQIHdW5zdGFrZQUCYXAFAmFxBQJhUQgFAmNoDXRyYW5zYWN0aW9uSWQFA25pbAUCY3cFAmN4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoAQdjbGFpbVd4AQJhcQQCYXAJAKUIAQgFAmNoBmNhbGxlcgQCY0QJAPwHBAUEdGhpcwIPY2xhaW1XeElOVEVSTkFMCQDMCAIFAmFxCQDMCAIFAmFwBQNuaWwFA25pbAkAlAoCBQNuaWwFAmNEAmNoAQ9jbGFpbVd4SU5URVJOQUwCAmFxAmFwBAJjbAkBAmNnAQUCY2gDCQAAAgUCY2wFAmNsBAJhQQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFAmFwAiVjbGFpbVd4SU5URVJOQUw6IGludmFsaWQgdXNlciBhZGRyZXNzBAJidAkBAXYCBQJhVQkBAVoBBQJhcQQCY0UJAQJhcwIFAmFxBQJhcAQCY0YJAQJhdgEFAmFxBAJjRwkBAmF0AgUCYXEFAmFwBAJjSAkBAmF1AgUCYXEFAmFwBAJjegkBAUECBQR0aGlzBQJjRQQCY0kJAQFBAgUEdGhpcwUCY0cEAmNKCQEBQQIFBHRoaXMFAmNIBAJjSwkBAUECBQR0aGlzBQJjRgQCY0wJAQJiUQQFAmFxBQJhcAUCYnQAAAQCY2EIBQJjTAJfMQQCY3cIBQJjTAJfMgQCYlAIBQJjTAJfMwQCY0IJAJgDAQkAzAgCCQC4AgIFAmNhBQJjegkAzAgCBQFnBQNuaWwDCQDAAgIFAWcFAmNCCQACAQIQbm90aGluZyB0byBjbGFpbQQCY00JAJYDAQkAzAgCCQEBbQEJAJEDAgkBAWkBCQD8BwQFAmFXAgxjbGFpbVd4Qm9vc3QJAMwIAgUCYXEJAMwIAgUCYXAFA25pbAUDbmlsAAAJAMwIAgAABQNuaWwEAmNOBQJjQgQCY08JAJkDAQkAzAgCCQC5AgIFAmNOCQC2AgEAAgkAzAgCCQC2AgEFAmNNBQNuaWwEAmNQCQEBcQEJAJEDAgkBAWkBCQD8BwQFAmFWAgRlbWl0CQDMCAIJAKADAQUCY04FA25pbAUDbmlsAAAEAmNRCQEBaQEJAPwHBAUCYVYCBGVtaXQJAMwIAgkAoAMBBQJjTwUDbmlsBQNuaWwDCQAAAgUCY1EFAmNRBAJjUgkAtwICBQJjegUCY0IEAmNTCQC3AgIFAmNJBQJjTgQCY1QJALcCAgUCY0kFAmNOBAJjVQkAtwICBQJjSQUCY04JAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0UJAKYDAQUCY1IJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0cJAKYDAQUCY1MJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0gJAKYDAQUCY1QJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0YJAKYDAQUCY1UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUEJAKADAQUCY04FAmNQCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFBCQCgAwEFAmNPBQJjUAkAzAgCCQECYVIFAgVjbGFpbQUCYXAFAmFxCQCgAwEFAmNCCAUCY2gNdHJhbnNhY3Rpb25JZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoARtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkEAmNWAmNXAmFwAmNYAwkAAAIFAmNWCQCQAwEFAmNXCQCUCgIFA25pbAUCY1gEAmF5CQCRAwIFAmNXBQJjVgQCY1kJALUJAgoAAmNaCQD8BwQFBHRoaXMCD2NsYWltV3hSRUFET05MWQkAzAgCBQJheQkAzAgCBQJhcAUDbmlsBQNuaWwDCQABAgUCY1oCBlN0cmluZwUCY1oJAAIBCQCsAgIJAAMBBQJjWgIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBQFlBAJkYQkAkQMCBQJjWQADBAJkYgkAkQMCBQJjWQAEBAJkYwkAzQgCBQJjWAkAuQkCCQDMCAICBCVkJWQJAMwIAgUCZGEJAMwIAgUCZGIFA25pbAUBZQQCZGQKAAJjWgkA/AcEBQR0aGlzAhtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkJAMwIAgkAZAIFAmNWAAEJAMwIAgUCY1cJAMwIAgUCYXAJAMwIAgUCZGMFA25pbAUDbmlsAwkAAQIFAmNaAglMaXN0W0FueV0FAmNaCQACAQkArAICCQADAQUCY1oCHiBjb3VsZG4ndCBiZSBjYXN0IHRvIExpc3RbQW55XQMJAAACBQJkZAUCZGQJAJQKAgUDbmlsBQJkZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjaAETY2xhaW1XeEJ1bGtSRUFET05MWQICY1cCYXAEAmRjCQD8BwQFBHRoaXMCG2NsYWltV3hCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUCY1cJAMwIAgUCYXAJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmRjAmNoAQ9jbGFpbVd4UkVBRE9OTFkCAmFxAmFwBAJiVQkBAmFvAgUCYXAFAmFxBAJidgkBAmFyAQUCYXEEAmNFCQECYXMCBQJhcQUCYXAEAmJvCQECYXcBBQJiVQQCYncJAQJhdwEFAmJ2BAJjegkBAUECBQR0aGlzBQJjRQQCYnQJAQF2AgUCYVUJAQFaAQUCYXEEAmJ5CQERQGV4dHJOYXRpdmUoMTA1MCkCBQJhVQkBAmFhAQUCYnQEAmRlCQEBegIFAmFWCQECYWoABAJiegkBAXoCBQJhVgkBAmFsAAQCZGYDCQBmAgUCYnoFBmhlaWdodAAACQBlAgUGaGVpZ2h0BQJiegQCZGcJAGsDCQBoAgUCZGUFAmRmBQJieQUBZgQCZGgJAGsDBQJkZwUCYm8FAmJ3BAJkaQkBAmJRBAUCYXEFAmFwBQJidAAABAJjYQgFAmRpAl8xBAJjdwgFAmRpAl8yBAJiUAgFAmRpAl8zBAJjQgkAmAMBCQDMCAIJALgCAgUCY2EFAmN6CQDMCAIFAWcFA25pbAQCZGoJAQFpAQkA/AcEBQJhVwIUY2xhaW1XeEJvb3N0UkVBRE9OTFkJAMwIAgUCYXEJAMwIAgUCYXAFA25pbAUDbmlsBAJjTQkAlgMBCQDMCAIJAQFtAQkAkQMCBQJkagAACQDMCAIAAAUDbmlsBAJkawkBAW8BCQCRAwIFAmRqAAEEAmNOBQJjQgQCY08JAJkDAQkAzAgCCQC5AgIFAmNOCQC2AgEAAgkAzAgCCQC2AgEFAmNNBQNuaWwEAmRsCQC3AgIFAmNOBQJjTwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lcyVzJWQlZCVkJWQlcwkAzAgCBQJhcQkAzAgCBQJhcAkAzAgCCQCmAwEFAmRsCQDMCAIJAKYDAQUCY3oJAMwIAgkApgMBBQJjTgkAzAgCCQCmAwEFAmNPCQDMCAICBHNvb24FA25pbAUBZQJjaAESdXNlcnNMaXN0VHJhdmVyc2FsAQJheQQCY2wDCQAAAgkA2AQBCAgFAmNoBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBSgACAAYJAQJjaQEFAmNoAwkAAAIFAmNsBQJjbAQCYmEJAQJhWQEFAmF5BAJkbQkAoggBCQECYVgBBQJheQQCYmcJAKIIAQkBAmFaAQUCYmEEAWsFAmRtAwkAAQIFAWsCBFVuaXQEAmRuBQJiZwMJAAECBQJkbgIEVW5pdAkAlAoCBQNuaWwHAwkAAQIFAmRuAgZTdHJpbmcEAmRvBQJkbgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhWAEFAmF5BQJkbwUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFAWsCBlN0cmluZwQCYUEFAWsEAmN6CQEBQQIFBHRoaXMJAQJhcwIFAmF5BQJhQQQCY0EJAQF2AgUCYVUJAQFaAQUCYXkEAmNhCAkBAmJRBAUCYXkFAmFBBQJjQQAAAl8xBAJjQgkAuAICBQJjYQUCY3oEAmNDAwkAvwICBQJjQgUBZwkA/AcEBQR0aGlzAg9jbGFpbVd4SU5URVJOQUwJAMwIAgUCYXkJAMwIAgUCYUEFA25pbAUDbmlsBQR1bml0AwkAAAIFAmNDBQJjQwQCZHAJAKIIAQkBAmJlAgUCYmEFAmFBBAJkbgUCZHADCQABAgUCZG4CBFVuaXQJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQECYVgBBQJheQUDbmlsBwMJAAECBQJkbgIGU3RyaW5nBAJkcQUCZG4JAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYVgBBQJheQUCZHEFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoAQ5vbk1vZGlmeVdlaWdodAICYXECYnQDCQECIT0CCAUCY2gGY2FsbGVyBQJhVQkAAgECEnBlcm1pc3Npb25zIGRlbmllZAQCZHIJAQJicwMFAmFxBQJidAAABAJicQgFAmRyAl8xBAJiUwgFAmRyAl8yBAJiVAgFAmRyAl8zBQJiUwECZHMBAmR0AAQCZHUEAWsJAQJjZAADCQABAgUBawIKQnl0ZVZlY3RvcgQCY2oFAWsFAmNqAwkAAQIFAWsCBFVuaXQIBQJkcw9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZHMJYm9keUJ5dGVzCQCRAwIIBQJkcwZwcm9vZnMAAAUCZHUKmMew", "chainId": 84, "height": 2408829, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3ci8vhJ7Ka25hGXxocPCTygMu4fhUtmvUvP9kJH5ixqs Next: 44nMXp2TPnuEFeFBcC9GN2T4vLg2MwkUiQPp1hGVJfX2 Diff:
OldNewDifferences
1717
1818 let h = toBigInt(1)
1919
20-func i (j) = makeString(["staking.ride:", toString(this), j], " ")
21-
22-
23-func k (j) = throw(i(j))
24-
25-
26-func l (m) = {
27- let n = m
28- if ($isInstanceOf(n, "List[Any]"))
20+func i (j) = {
21+ let k = j
22+ if ($isInstanceOf(k, "List[Any]"))
2923 then {
30- let o = n
31- o
24+ let l = k
25+ l
3226 }
3327 else throw("fail to cast into List[Any]")
3428 }
3529
3630
37-func p (m) = {
38- let n = m
39- if ($isInstanceOf(n, "Int"))
31+func m (j) = {
32+ let k = j
33+ if ($isInstanceOf(k, "Int"))
4034 then {
41- let q = n
42- q
35+ let n = k
36+ n
4337 }
4438 else throw("fail to cast into Int")
4539 }
4640
4741
48-func r (m) = {
49- let n = m
50- if ($isInstanceOf(n, "String"))
42+func o (j) = {
43+ let k = j
44+ if ($isInstanceOf(k, "String"))
5145 then {
52- let s = n
53- s
46+ let p = k
47+ p
5448 }
5549 else throw("fail to cast into Int")
5650 }
5751
5852
59-func t (m) = {
60- let n = m
61- if ($isInstanceOf(n, "ByteVector"))
53+func q (j) = {
54+ let k = j
55+ if ($isInstanceOf(k, "ByteVector"))
6256 then {
63- let u = n
64- u
57+ let r = k
58+ r
6559 }
6660 else throw("fail to cast into Int")
6761 }
6862
6963
70-func v (w,x) = valueOrErrorMessage(getString(w, x), (("mandatory this." + x) + " is not defined"))
64+func s (t,u) = valueOrErrorMessage(getString(t, u), (("mandatory this." + u) + " is not defined"))
7165
7266
73-func y (w,x) = valueOrErrorMessage(getString(w, x), (((("mandatory " + toString(w)) + ".") + x) + " is not defined"))
67+func v (t,u) = valueOrErrorMessage(getString(t, u), (((("mandatory " + toString(t)) + ".") + u) + " is not defined"))
7468
7569
76-func z (w,x) = valueOrElse(getInteger(w, x), 0)
70+func w (t,u) = valueOrElse(getInteger(t, u), 0)
7771
7872
79-func A (w,x,B) = valueOrElse(getInteger(w, x), B)
73+func x (t,u,y) = valueOrElse(getInteger(t, u), y)
8074
8175
82-func C (w,x) = valueOrErrorMessage(getInteger(w, x), (("mandatory this." + x) + " is not defined"))
76+func z (t,u) = valueOrErrorMessage(getInteger(t, u), (("mandatory this." + u) + " is not defined"))
8377
8478
85-func D (w,x) = value(parseBigInt(valueOrElse(getString(w, x), "0")))
79+func A (t,u) = value(parseBigInt(valueOrElse(getString(t, u), "0")))
8680
8781
88-func E (w,x,B) = {
89- let n = getString(w, x)
90- if ($isInstanceOf(n, "String"))
82+func B (t,u,y) = {
83+ let k = getString(t, u)
84+ if ($isInstanceOf(k, "String"))
9185 then {
92- let F = n
93- value(parseBigInt(F))
86+ let C = k
87+ value(parseBigInt(C))
9488 }
95- else if ($isInstanceOf(n, "Unit"))
96- then B
89+ else if ($isInstanceOf(k, "Unit"))
90+ then y
9791 else throw("Match error")
9892 }
9993
10094
101-func G (H,I) = fraction(toBigInt(H), d, toBigInt(I))
95+func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
10296
10397
104-func J (m,K) = toInt(fraction(m, toBigInt(K), d))
98+func G (j,H) = toInt(fraction(j, toBigInt(H), d))
10599
106100
107-func L () = "%s%s__config__factoryAddress"
101+func I () = "%s%s__config__factoryAddress"
108102
109103
110-func M () = "%s__votingEmissionContract"
104+func J () = "%s__votingEmissionContract"
111105
112106
113-let N = 1
107+let K = 1
114108
115-let O = 2
109+let L = 2
116110
117-let P = 3
111+let M = 3
118112
119-let Q = 4
113+let N = 4
120114
121-let R = 5
115+let O = 5
122116
123-let S = 6
117+let P = 6
124118
125-let T = 7
119+let Q = 7
126120
127-func U () = "%s__factoryConfig"
121+func R () = "%s__factoryConfig"
128122
129123
130-func V () = "%s__managerPublicKey"
124+func S () = "%s__managerPublicKey"
131125
132126
133-func W () = "%s__pendingManagerPublicKey"
127+func T () = "%s__pendingManagerPublicKey"
134128
135129
136-func X () = "%s__stablePoolAddonAddr"
130+func U () = "%s__stablePoolAddonAddr"
137131
138132
139-func Y () = "%s__addonAddr"
133+func V () = "%s__addonAddr"
140134
141135
142-func Z (aa) = makeString(["%s%s%s", aa, "mappings__lpAsset2PoolContract"], e)
136+func W (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
143137
144138
145-func ab () = "%s__lpTokensList"
139+func Y () = "%s__lpTokensList"
146140
147141
148-func ac (aa) = makeString(["%s%s%s", aa, "mappings__lpAsset2PoolContract"], e)
142+func Z (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
149143
150144
151-func ad (ae) = makeString(["%s%s", "poolWeight", ae], e)
145+func aa (ab) = makeString(["%s%s", "poolWeight", ab], e)
152146
153147
154-func af (ag) = split(valueOrElse(getString(ag, ab()), ""), e)
148+func ac (ad) = split(valueOrElse(getString(ad, Y()), ""), e)
155149
156150
157-func ah (ag) = split(y(ag, U()), e)
151+func ae (ad) = split(v(ad, R()), e)
158152
159153
160-func ai (aj) = addressFromStringValue(aj[O])
154+func af (ag) = addressFromStringValue(ag[L])
161155
162156
163-func ak (aj) = addressFromStringValue(aj[R])
157+func ah (ag) = addressFromStringValue(ag[O])
164158
165159
166-func al (aj) = addressFromStringValue(aj[N])
160+func ai (ag) = addressFromStringValue(ag[K])
167161
168162
169-func am () = "%s%s__ratePerBlock__current"
163+func aj () = "%s%s__ratePerBlock__current"
170164
171165
172-func an () = "%s%s__ratePerBlockMax__current"
166+func ak () = "%s%s__ratePerBlockMax__current"
173167
174168
175-func ao () = "%s%s__emission__startBlock"
169+func al () = "%s%s__emission__startBlock"
176170
177171
178-func ap () = "%s%s__emission__duration"
172+func am () = "%s%s__emission__duration"
179173
180174
181-func aq () = "%s%s__emission__endBlock"
175+func an () = "%s%s__emission__endBlock"
182176
183177
184-func ar (as,at) = makeString(["%s%s%s__staked", as, at], e)
178+func ao (ap,aq) = makeString(["%s%s%s__staked", ap, aq], e)
185179
186180
187-func au (at) = ("%s%s%s__staked__total__" + at)
181+func ar (aq) = ("%s%s%s__staked__total__" + aq)
188182
189183
190-func av (at,as) = makeString(["%s%s%s__claimed", as, at], e)
184+func as (aq,ap) = makeString(["%s%s%s__claimed", ap, aq], e)
191185
192186
193-func aw (at,as) = makeString(["%s%s%s__claimedMinReward", as, at], e)
187+func at (aq,ap) = makeString(["%s%s%s__claimedMinReward", ap, aq], e)
194188
195189
196-func ax (at,as) = makeString(["%s%s%s__claimedBoostReward", as, at], e)
190+func au (aq,ap) = makeString(["%s%s%s__claimedBoostReward", ap, aq], e)
197191
198192
199-func ay (at) = makeString(["%s%s%s__claimed__total", at], e)
193+func av (aq) = makeString(["%s%s%s__claimed__total", aq], e)
200194
201195
202-func az (x) = valueOrElse(getInteger(this, x), 0)
196+func aw (u) = valueOrElse(getInteger(this, u), 0)
203197
204198
205-func aA (aB) = makeString(["%s%s%s", aB, "total", "bal"], e)
199+func ax (ay) = makeString(["%s%s%s", ay, "total", "bal"], e)
206200
207201
208-func aC (aB,aD) = makeString(["%s%s%s", aB, aD, "bal"], e)
202+func az (ay,aA) = makeString(["%s%s%s", ay, aA, "bal"], e)
209203
210204
211-func aE (aB) = makeString(["%s%s%s", aB, "total", "balINT"], e)
205+func aB (ay) = makeString(["%s%s%s", ay, "total", "balINT"], e)
212206
213207
214-func aF (aB,aD) = makeString(["%s%s%s", aB, aD, "balINT"], e)
208+func aC (ay,aA) = makeString(["%s%s%s", ay, aA, "balINT"], e)
215209
216210
217-func aG (aB) = makeString(["%s%s%s", aB, "total", "lastUpd"], e)
211+func aD (ay) = makeString(["%s%s%s", ay, "total", "lastUpd"], e)
218212
219213
220-func aH (aB,aD) = makeString(["%s%s%s", aB, aD, "lastUpd"], e)
214+func aE (ay,aA) = makeString(["%s%s%s", ay, aA, "lastUpd"], e)
221215
222216
223-func aI (aB) = makeString(["%s%s%s%s", aB, "common", "lpInt"], e)
217+func aF (ay) = makeString(["%s%s%s%s", ay, "common", "lpInt"], e)
224218
225219
226-func aJ (aB) = makeString(["%s%s%s%s", aB, "common", "lpIntH"], e)
220+func aG (ay) = makeString(["%s%s%s%s", ay, "common", "lpIntH"], e)
227221
228222
229-func aK (aB,aD) = makeString(["%s%s%s%s", aB, aD, "lpInt"], e)
223+func aH (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpInt"], e)
230224
231225
232-func aL (aB,aD) = makeString(["%s%s%s%s", aB, aD, "lpIntH"], e)
226+func aI (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpIntH"], e)
233227
234228
235-func aM (aB) = makeString(["%s", aB, "wxPerLp"], e)
229+func aJ (ay) = makeString(["%s", ay, "wxPerLp"], e)
236230
237231
238-func aN (aB) = makeString(["%s", aB, "wxPerLpX18"], e)
232+func aK (ay) = makeString(["%s", ay, "wxPerLpX18"], e)
239233
240234
241-func aO (aB,aD) = makeString(["%s%s%s%s", aB, aD, "uIntL"], e)
235+func aL (ay,aA) = makeString(["%s%s%s%s", ay, aA, "uIntL"], e)
242236
243237
244-func aP (aQ,aD,aR) = makeString(["%s%s%s%s__history", aQ, aD, aR], e)
238+func aM (aN,aA,aO) = makeString(["%s%s%s%s__history", aN, aA, aO], e)
245239
246240
247-func aS (aD,aB,aQ,aT) = makeString(["%s%s%s%d%d%d", aD, aB, aQ, toString(height), toString(lastBlock.timestamp), toString(aT)], e)
241+func aP (aA,ay,aN,aQ) = makeString(["%s%s%s%d%d%d", aA, ay, aN, toString(height), toString(lastBlock.timestamp), toString(aQ)], e)
248242
249243
250-func aU (aQ,aD,aB,aT,aV) = StringEntry(aP(aQ, aD, toBase58String(aV)), aS(aD, aB, aQ, aT))
244+func aR (aN,aA,ay,aQ,aS) = StringEntry(aM(aN, aA, toBase58String(aS)), aP(aA, ay, aN, aQ))
251245
252246
253-let aW = v(this, L())
247+let aT = s(this, I())
254248
255-let aX = addressFromStringValue(aW)
249+let aU = addressFromStringValue(aT)
256250
257-let aj = ah(aX)
251+let ag = ae(aU)
258252
259-let aY = ak(aj)
253+let aV = ah(ag)
260254
261-let aZ = ai(aj)
255+let aW = af(ag)
262256
263-let ba = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], e)), i("lp_staking_pools contract address is undefined"))), i("invalid lp_staking_pools contract address"))
264-
265-func bb (aB) = makeString(["%s%s", aB, "nextUser"], e)
257+func aX (ay) = makeString(["%s%s", ay, "nextUser"], e)
266258
267259
268-func bc (aB) = makeString(["users", aB], e)
260+func aY (ay) = makeString(["users", ay], e)
269261
270262
271-func bd (be) = makeString(["%s%s%s", be, "head"], e)
263+func aZ (ba) = makeString(["%s%s%s", ba, "head"], e)
272264
273265
274-func bf (be) = makeString(["%s%s%s", be, "size"], e)
266+func bb (ba) = makeString(["%s%s%s", ba, "size"], e)
275267
276268
277-func bg (be,bh) = makeString(["%s%s%s%s", be, bh, "prev"], e)
269+func bc (ba,bd) = makeString(["%s%s%s%s", ba, bd, "prev"], e)
278270
279271
280-func bi (be,bh) = makeString(["%s%s%s%s", be, bh, "next"], e)
272+func be (ba,bd) = makeString(["%s%s%s%s", ba, bd, "next"], e)
281273
282274
283-func bj (be,bh) = {
284- let bk = getString(this, bd(be))
285- let bl = getString(this, bg(be, bh))
286- let bm = getString(this, bi(be, bh))
287- if (if ((bh == valueOrElse(bk, "")))
275+func bf (ba,bd) = {
276+ let bg = getString(this, aZ(ba))
277+ let bh = getString(this, bc(ba, bd))
278+ let bi = getString(this, be(ba, bd))
279+ if (if ((bd == valueOrElse(bg, "")))
288280 then true
289- else (bl != unit))
281+ else (bh != unit))
290282 then true
291- else (bm != unit)
283+ else (bi != unit)
292284 }
293285
294286
295-func bn (be,bh) = {
296- let bk = getString(this, bd(be))
297- let bo = valueOrElse(getInteger(this, bf(be)), 0)
298- let bp = if (!(bj(be, bh)))
287+func bj (ba,bd) = {
288+ let bg = getString(this, aZ(ba))
289+ let bk = valueOrElse(getInteger(this, bb(ba)), 0)
290+ let bl = if (!(bf(ba, bd)))
299291 then true
300292 else throw("Node exists")
301- if ((bp == bp))
302- then (([IntegerEntry(bf(be), (bo + 1))] ++ (if ((bk != unit))
303- then [StringEntry(bi(be, bh), value(bk)), StringEntry(bg(be, value(bk)), bh)]
304- else nil)) ++ [StringEntry(bd(be), bh)])
293+ if ((bl == bl))
294+ then (([IntegerEntry(bb(ba), (bk + 1))] ++ (if ((bg != unit))
295+ then [StringEntry(be(ba, bd), value(bg)), StringEntry(bc(ba, value(bg)), bd)]
296+ else nil)) ++ [StringEntry(aZ(ba), bd)])
305297 else throw("Strict value is not equal to itself.")
306298 }
307299
308300
309-func bq (be,bh) = {
310- let bk = getString(this, bd(be))
311- let bo = valueOrElse(getInteger(this, bf(be)), 0)
312- let bl = getString(this, bg(be, bh))
313- let bm = getString(this, bi(be, bh))
314- ([IntegerEntry(bf(be), (bo - 1))] ++ (if (if ((bl != unit))
315- then (bm != unit)
301+func bm (ba,bd) = {
302+ let bg = getString(this, aZ(ba))
303+ let bk = valueOrElse(getInteger(this, bb(ba)), 0)
304+ let bh = getString(this, bc(ba, bd))
305+ let bi = getString(this, be(ba, bd))
306+ ([IntegerEntry(bb(ba), (bk - 1))] ++ (if (if ((bh != unit))
307+ then (bi != unit)
316308 else false)
317- then [StringEntry(bi(be, value(bl)), value(bm)), StringEntry(bg(be, value(bm)), value(bl)), DeleteEntry(bg(be, bh)), DeleteEntry(bi(be, bh))]
318- else if ((bm != unit))
319- then [StringEntry(bd(be), value(bm)), DeleteEntry(bi(be, bh)), DeleteEntry(bg(be, value(bm)))]
320- else if ((bl != unit))
321- then [DeleteEntry(bg(be, bh)), DeleteEntry(bi(be, value(bl)))]
322- else if ((bh == valueOrElse(bk, "")))
323- then [DeleteEntry(bd(be))]
324- else throw(((("invalid node: " + be) + ".") + bh))))
309+ then [StringEntry(be(ba, value(bh)), value(bi)), StringEntry(bc(ba, value(bi)), value(bh)), DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, bd))]
310+ else if ((bi != unit))
311+ then [StringEntry(aZ(ba), value(bi)), DeleteEntry(be(ba, bd)), DeleteEntry(bc(ba, value(bi)))]
312+ else if ((bh != unit))
313+ then [DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, value(bh)))]
314+ else if ((bd == valueOrElse(bg, "")))
315+ then [DeleteEntry(aZ(ba))]
316+ else throw(((("invalid node: " + ba) + ".") + bd))))
325317 }
326318
327319
328-func br (bs,bt,bu,bv) = if (if ((bt == g))
329- then (bs > g)
320+func bn (bo,bp,bq,br) = if (if ((bp == g))
321+ then (bo > g)
330322 else false)
331323 then g
332- else if ((bs == g))
333- then bu
334- else if (if ((bt > g))
335- then (bs > g)
324+ else if ((bo == g))
325+ then bq
326+ else if (if ((bp > g))
327+ then (bo > g)
336328 else false)
337- then value(parseBigInt(v(this, bv)))
329+ then value(parseBigInt(s(this, br)))
338330 else throw("calcWxPerLpIntegralUserLast: unexpected state")
339331
340332
341-func bw (at,bx,by) = {
342- let bz = au(at)
343- let bA = toBigInt(az(bz))
344- let bB = if ((bA == g))
333+func bs (aq,bt,bu) = {
334+ let bv = ar(aq)
335+ let bw = toBigInt(aw(bv))
336+ let bx = if ((bw == g))
345337 then h
346- else bA
347- let bC = getIntegerValue(aX, ad(bx))
348- let bD = C(aY, ao())
349- let bE = 1000
350- let bF = (C(aY, am()) * bE)
351- let bG = fraction(bF, bC, (f * 3))
352- let bH = aI(at)
353- let bI = aJ(at)
354- let bJ = aM(at)
355- let bK = A(this, bI, bD)
356- let bL = D(this, bH)
357- let bM = 0
358- let bN = max([(height - bK), 0])
359- let bO = if ((bM != 0))
360- then toBigInt(bM)
361- else fraction(toBigInt(bG), toBigInt(b), bB)
362- let bP = (bA + toBigInt(by))
363- let bQ = if ((bP == g))
338+ else bw
339+ let by = getIntegerValue(aU, aa(bt))
340+ let bz = z(aV, al())
341+ let bA = 1000
342+ let bB = (z(aV, aj()) * bA)
343+ let bC = fraction(bB, by, (f * 3))
344+ let bD = aF(aq)
345+ let bE = aG(aq)
346+ let bF = aJ(aq)
347+ let bG = x(this, bE, bz)
348+ let bH = A(this, bD)
349+ let bI = 0
350+ let bJ = max([(height - bG), 0])
351+ let bK = if ((bI != 0))
352+ then toBigInt(bI)
353+ else fraction(toBigInt(bC), toBigInt(b), bx)
354+ let bL = (bw + toBigInt(bu))
355+ let bM = if ((bL == g))
364356 then h
365- else bP
366- let bu = (bL + (bO * toBigInt(bN)))
367- let bR = (toBigInt(bG) / bQ)
368- let bS = height
369- let bT = makeString([toString(bu), toString(bN), toString(bO), toString(bA), toString(bG), toString(bF), toString(bC)], "::")
370- $Tuple3(bu, [StringEntry(bH, toString(bu)), IntegerEntry(bI, bS), StringEntry(bJ, toString(bR))], bT)
357+ else bL
358+ let bq = (bH + (bK * toBigInt(bJ)))
359+ let bN = (toBigInt(bC) / bM)
360+ let bO = height
361+ let bP = makeString([toString(bq), toString(bJ), toString(bK), toString(bw), toString(bC), toString(bB), toString(by)], "::")
362+ $Tuple3(bq, [StringEntry(bD, toString(bq)), IntegerEntry(bE, bO), StringEntry(bF, toString(bN))], bP)
371363 }
372364
373365
374-func bU (at,as,bx,by) = {
375- let bV = bw(at, bx, by)
376- let bu = bV._1
377- let bW = bV._2
378- let bX = bV._3
379- let bE = 1000
380- let bY = ar(as, at)
381- let bs = az(bY)
382- let bZ = aK(at, as)
383- let ca = aL(at, as)
384- let bv = aO(at, as)
385- let cb = D(this, bZ)
386- let bt = z(this, ca)
387- let cc = br(toBigInt(bs), toBigInt(bt), bu, bv)
388- let cd = (b * bE)
389- let ce = max([(cb + fraction((bu - cc), toBigInt(bs), toBigInt(cd))), g])
390- let cf = bu
391- let cg = height
392- let bT = makeString([toString(cb), toString(cc), toString(bs), bX, toString(height)], "::")
393- $Tuple3(ce, (bW ++ [StringEntry(bZ, toString(ce)), IntegerEntry(ca, cg), StringEntry(bv, toString(cf))]), bT)
366+func bQ (aq,ap,bt,bu) = {
367+ let bR = bs(aq, bt, bu)
368+ let bq = bR._1
369+ let bS = bR._2
370+ let bT = bR._3
371+ let bA = 1000
372+ let bU = ao(ap, aq)
373+ let bo = aw(bU)
374+ let bV = aH(aq, ap)
375+ let bW = aI(aq, ap)
376+ let br = aL(aq, ap)
377+ let bX = A(this, bV)
378+ let bp = w(this, bW)
379+ let bY = bn(toBigInt(bo), toBigInt(bp), bq, br)
380+ let bZ = (b * bA)
381+ let ca = max([(bX + fraction((bq - bY), toBigInt(bo), toBigInt(bZ))), g])
382+ let cb = bq
383+ let cc = height
384+ let bP = makeString([toString(bX), toString(bY), toString(bo), bT, toString(height)], "::")
385+ $Tuple3(ca, (bS ++ [StringEntry(bV, toString(ca)), IntegerEntry(bW, cc), StringEntry(br, toString(cb))]), bP)
394386 }
395387
396388
397-func ch () = {
398- let n = getString(V())
399- if ($isInstanceOf(n, "String"))
389+func cd () = {
390+ let k = getString(S())
391+ if ($isInstanceOf(k, "String"))
400392 then {
401- let F = n
402- fromBase58String(F)
393+ let C = k
394+ fromBase58String(C)
403395 }
404- else if ($isInstanceOf(n, "Unit"))
396+ else if ($isInstanceOf(k, "Unit"))
405397 then unit
406398 else throw("Match error")
407399 }
408400
409401
410-func ci () = {
411- let n = getString(W())
412- if ($isInstanceOf(n, "String"))
402+func ce () = {
403+ let k = getString(T())
404+ if ($isInstanceOf(k, "String"))
413405 then {
414- let F = n
415- fromBase58String(F)
406+ let C = k
407+ fromBase58String(C)
416408 }
417- else if ($isInstanceOf(n, "Unit"))
409+ else if ($isInstanceOf(k, "Unit"))
418410 then unit
419411 else throw("Match error")
420412 }
421413
422414
423-let cj = throw("Permission denied")
415+let cf = throw("Permission denied")
424416
425-func ck (cl) = if ((cl.caller == this))
417+func cg (ch) = if ((ch.caller == this))
426418 then true
427- else cj
419+ else cf
428420
429421
430-func cm (cl) = {
431- let n = ch()
432- if ($isInstanceOf(n, "ByteVector"))
422+func ci (ch) = {
423+ let k = cd()
424+ if ($isInstanceOf(k, "ByteVector"))
433425 then {
434- let cn = n
435- if ((cl.callerPublicKey == cn))
426+ let cj = k
427+ if ((ch.callerPublicKey == cj))
436428 then true
437- else cj
429+ else cf
438430 }
439- else if ($isInstanceOf(n, "Unit"))
440- then if ((cl.caller == this))
431+ else if ($isInstanceOf(k, "Unit"))
432+ then if ((ch.caller == this))
441433 then true
442- else cj
434+ else cf
443435 else throw("Match error")
444436 }
445437
446438
447-func co (cl,aB,cp,aD,cq,aT) = {
448- let as = toString(aD)
449- let at = toBase58String(aB)
450- let bx = toString(cp)
451- let bY = ar(as, at)
452- let bz = au(at)
453- let bs = az(bY)
454- let bA = az(bz)
455- let cr = bU(at, as, bx, -(aT))._2
456- let be = bc(at)
457- let cs = if (if (bj(be, as))
458- then (aT == bs)
459- else false)
460- then bq(be, as)
461- else nil
462- let ct = D(this, av(at, as))
463- let ce = bU(at, as, bx, 0)._1
464- let cu = (ce - ct)
465- let cv = true
466- let cw = if ((cu > g))
467- then invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
468- else unit
469- if ((cw == cw))
470- then if ((aT > bs))
471- then throw(((((((("passed amount=" + toString(aT)) + " is greater than available=") + toString(bs)) + ". lpAssetId=") + at) + ". stakedByUserKEY=") + bY))
472- else (([IntegerEntry(bY, (bs - aT)), IntegerEntry(bz, (bA - aT)), ScriptTransfer(cq, aT, aB), aU("unstake", as, at, aT, cl.transactionId)] ++ cr) ++ cs)
473- else throw("Strict value is not equal to itself.")
474- }
475-
476-
477-@Callable(cl)
478-func constructor (cx) = {
479- let cy = cm(cl)
480- if ((cy == cy))
481- then [StringEntry(L(), cx)]
439+@Callable(ch)
440+func constructor (ck) = {
441+ let cl = ci(ch)
442+ if ((cl == cl))
443+ then [StringEntry(I(), ck)]
482444 else throw("Strict value is not equal to itself.")
483445 }
484446
485447
486448
487-@Callable(cl)
488-func constructorV2 (cz) = {
489- let cA = [cm(cl), if ((addressFromString(cz) != unit))
449+@Callable(ch)
450+func constructorV2 (cm) = {
451+ let cn = [ci(ch), if ((addressFromString(cm) != unit))
490452 then true
491453 else "invalid voting emission contract address"]
492- if ((cA == cA))
493- then [StringEntry(M(), cz)]
454+ if ((cn == cn))
455+ then [StringEntry(J(), cm)]
494456 else throw("Strict value is not equal to itself.")
495457 }
496458
497459
498460
499-@Callable(cl)
500-func setManager (cB) = {
501- let cy = cm(cl)
502- if ((cy == cy))
461+@Callable(ch)
462+func setManager (co) = {
463+ let cl = ci(ch)
464+ if ((cl == cl))
503465 then {
504- let cC = fromBase58String(cB)
505- if ((cC == cC))
506- then [StringEntry(W(), cB)]
466+ let cp = fromBase58String(co)
467+ if ((cp == cp))
468+ then [StringEntry(T(), co)]
507469 else throw("Strict value is not equal to itself.")
508470 }
509471 else throw("Strict value is not equal to itself.")
511473
512474
513475
514-@Callable(cl)
476+@Callable(ch)
515477 func confirmManager () = {
516- let cD = ci()
517- let cE = if (isDefined(cD))
478+ let cq = ce()
479+ let cr = if (isDefined(cq))
518480 then true
519481 else throw("No pending manager")
520- if ((cE == cE))
482+ if ((cr == cr))
521483 then {
522- let cF = if ((cl.callerPublicKey == value(cD)))
484+ let cs = if ((ch.callerPublicKey == value(cq)))
523485 then true
524486 else throw("You are not pending manager")
525- if ((cF == cF))
526- then [StringEntry(V(), toBase58String(value(cD))), DeleteEntry(W())]
487+ if ((cs == cs))
488+ then [StringEntry(S(), toBase58String(value(cq))), DeleteEntry(T())]
527489 else throw("Strict value is not equal to itself.")
528490 }
529491 else throw("Strict value is not equal to itself.")
531493
532494
533495
534-@Callable(cl)
535-func stake () = if ((size(cl.payments) != 1))
496+@Callable(ch)
497+func stake () = if ((size(ch.payments) != 1))
536498 then throw("invalid payment - exact one payment must be attached")
537499 else {
538- let cG = cl.payments[0]
539- let aB = value(cG.assetId)
540- let at = toBase58String(aB)
541- let aT = cG.amount
542- let bx = valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at))
543- let cH = toString(cl.caller)
544- let as = if ((cH == bx))
545- then toString(cl.originCaller)
546- else cH
547- let bY = ar(as, at)
548- let bz = au(at)
549- let bs = az(bY)
550- let bA = az(bz)
551- let cI = bU(at, as, bx, aT)
552- let ce = cI._1
553- let cr = cI._2
554- let bT = cI._3
555- let be = bc(at)
556- let cs = if (bj(be, as))
500+ let ct = ch.payments[0]
501+ let ay = value(ct.assetId)
502+ let aq = toBase58String(ay)
503+ let aQ = ct.amount
504+ let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
505+ let cu = toString(ch.caller)
506+ let ap = if ((cu == bt))
507+ then toString(ch.originCaller)
508+ else cu
509+ let bU = ao(ap, aq)
510+ let bv = ar(aq)
511+ let bo = aw(bU)
512+ let bw = aw(bv)
513+ let cv = bQ(aq, ap, bt, aQ)
514+ let ca = cv._1
515+ let cw = cv._2
516+ let bP = cv._3
517+ let ba = aY(aq)
518+ let cx = if (bf(ba, ap))
557519 then nil
558- else bn(be, as)
559- (([IntegerEntry(bY, (bs + aT)), IntegerEntry(bz, (bA + aT)), aU("stake", as, at, aT, cl.transactionId)] ++ cr) ++ cs)
520+ else bj(ba, ap)
521+ (([IntegerEntry(bU, (bo + aQ)), IntegerEntry(bv, (bw + aQ)), aR("stake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
560522 }
561523
562524
563525
564-@Callable(cl)
565-func unstake (at,aT) = {
566- let aB = fromBase58String(at)
567- let bx = valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at))
568- let cp = addressFromStringValue(bx)
569- let cJ = valueOrElse(getString(cp, Y()), bx)
570- let cH = toString(cl.caller)
571- let aD = if (if ((cH == bx))
526+@Callable(ch)
527+func unstake (aq,aQ) = {
528+ let ay = fromBase58String(aq)
529+ let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
530+ let cy = valueOrElse(getString(addressFromStringValue(bt), V()), bt)
531+ let cu = toString(ch.caller)
532+ let ap = if (if ((cu == bt))
572533 then true
573- else (cH == cJ))
574- then cl.originCaller
575- else cl.caller
576- let cq = cl.caller
577- co(cl, aB, cp, aD, cq, aT)
578- }
579-
580-
581-
582-@Callable(cl)
583-func unstakeINTERNAL (aB,aT,aD,cq) = {
584- let at = toBase58String(aB)
585- let cp = addressFromStringValue(valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at)))
586- let cy = if ((cl.caller == cp))
587- then true
588- else cj
589- if ((cy == cy))
590- then co(cl, aB, cp, Address(aD), Address(cq), aT)
534+ else (cu == cy))
535+ then toString(ch.originCaller)
536+ else cu
537+ let bU = ao(ap, aq)
538+ let bv = ar(aq)
539+ let bo = aw(bU)
540+ let bw = aw(bv)
541+ let cw = bQ(aq, ap, bt, -(aQ))._2
542+ let ba = aY(aq)
543+ let cx = if (if (bf(ba, ap))
544+ then (aQ == bo)
545+ else false)
546+ then bm(ba, ap)
547+ else nil
548+ let cz = A(this, as(aq, ap))
549+ let cA = v(aU, Z(aq))
550+ let ca = bQ(aq, ap, cA, 0)._1
551+ let cB = (ca - cz)
552+ let cC = if ((cB > g))
553+ then invoke(this, "claimWxINTERNAL", [aq, ap], nil)
554+ else unit
555+ if ((cC == cC))
556+ then if ((aQ > bo))
557+ then throw(((((((("passed amount=" + toString(aQ)) + " is greater than available=") + toString(bo)) + ". lpAssetId=") + aq) + ". stakedByUserKEY=") + bU))
558+ else (([IntegerEntry(bU, (bo - aQ)), IntegerEntry(bv, (bw - aQ)), ScriptTransfer(ch.caller, aQ, ay), aR("unstake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
591559 else throw("Strict value is not equal to itself.")
592560 }
593561
594562
595563
596-@Callable(cl)
597-func claimWx (at) = {
598- let as = toString(cl.caller)
599- let cv = true
600- let cK = invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
601- $Tuple2(nil, cK)
564+@Callable(ch)
565+func claimWx (aq) = {
566+ let ap = toString(ch.caller)
567+ let cD = invoke(this, "claimWxINTERNAL", [aq, ap], nil)
568+ $Tuple2(nil, cD)
602569 }
603570
604571
605572
606-@Callable(cl)
607-func claimWxDoNotThrow (at) = {
608- let as = toString(cl.caller)
609- let cv = false
610- let cK = invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
611- $Tuple2(nil, cK)
612- }
613-
614-
615-
616-@Callable(cl)
617-func claimWxINTERNAL (at,as,cv) = {
618- let cy = ck(cl)
619- if ((cy == cy))
573+@Callable(ch)
574+func claimWxINTERNAL (aq,ap) = {
575+ let cl = cg(ch)
576+ if ((cl == cl))
620577 then {
621- let aD = valueOrErrorMessage(addressFromString(as), "claimWxINTERNAL: invalid user address")
622- let bx = y(aX, ac(at))
623- let cL = av(at, as)
624- let cM = ay(at)
625- let cN = aw(at, as)
626- let cO = ax(at, as)
627- let ct = D(this, cL)
628- let cP = D(this, cN)
629- let cQ = D(this, cO)
630- let cR = D(this, cM)
631- let cS = bU(at, as, bx, 0)
632- let ce = cS._1
633- let cr = cS._2
634- let bT = cS._3
635- let cu = max([(ce - ct), g])
636- if ((g >= cu))
637- then if (cv)
638- then throw("nothing to claim")
639- else $Tuple2(nil, 0)
578+ let aA = valueOrErrorMessage(addressFromString(ap), "claimWxINTERNAL: invalid user address")
579+ let bt = v(aU, Z(aq))
580+ let cE = as(aq, ap)
581+ let cF = av(aq)
582+ let cG = at(aq, ap)
583+ let cH = au(aq, ap)
584+ let cz = A(this, cE)
585+ let cI = A(this, cG)
586+ let cJ = A(this, cH)
587+ let cK = A(this, cF)
588+ let cL = bQ(aq, ap, bt, 0)
589+ let ca = cL._1
590+ let cw = cL._2
591+ let bP = cL._3
592+ let cB = max([(ca - cz), g])
593+ if ((g >= cB))
594+ then throw("nothing to claim")
640595 else {
641- let cT = max([p(l(invoke(aZ, "claimWxBoost", [at, as], nil))[0]), 0])
642- let cU = cu
643- let cV = min([(cU * toBigInt(2)), toBigInt(cT)])
644- let cW = (cU + cV)
645- let cX = t(l(invoke(aY, "emit", [toInt(cU)], nil))[0])
646- let cY = l(invoke(aY, "emit", [toInt(cV)], nil))
647- if ((cY == cY))
596+ let cM = max([m(i(invoke(aW, "claimWxBoost", [aq, ap], nil))[0]), 0])
597+ let cN = cB
598+ let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
599+ let cP = q(i(invoke(aV, "emit", [toInt(cN)], nil))[0])
600+ let cQ = i(invoke(aV, "emit", [toInt(cO)], nil))
601+ if ((cQ == cQ))
648602 then {
649- let cZ = (ct + cu)
650- let da = (cP + cU)
651- let db = (cP + cU)
652- let dc = (cP + cU)
653- $Tuple2([StringEntry(cL, toString(cZ)), StringEntry(cN, toString(da)), StringEntry(cO, toString(db)), StringEntry(cM, toString(dc)), ScriptTransfer(aD, toInt(cU), cX), ScriptTransfer(aD, toInt(cV), cX), aU("claim", as, at, toInt(cu), cl.transactionId)], toInt(cW))
603+ let cR = (cz + cB)
604+ let cS = (cI + cN)
605+ let cT = (cI + cN)
606+ let cU = (cI + cN)
607+[StringEntry(cE, toString(cR)), StringEntry(cG, toString(cS)), StringEntry(cH, toString(cT)), StringEntry(cF, toString(cU)), ScriptTransfer(aA, toInt(cN), cP), ScriptTransfer(aA, toInt(cO), cP), aR("claim", ap, aq, toInt(cB), ch.transactionId)]
654608 }
655609 else throw("Strict value is not equal to itself.")
656610 }
660614
661615
662616
663-@Callable(cl)
664-func claimWxBulkInternalREADONLY (dd,de,as,df) = if ((dd == size(de)))
665- then $Tuple2(nil, df)
617+@Callable(ch)
618+func claimWxBulkInternalREADONLY (cV,cW,ap,cX) = if ((cV == size(cW)))
619+ then $Tuple2(nil, cX)
666620 else {
667- let aB = de[dd]
668- let dg = split({
669- let dh = invoke(this, "claimWxREADONLY", [aB, as], nil)
670- if ($isInstanceOf(dh, "String"))
671- then dh
672- else throw(($getType(dh) + " couldn't be cast to String"))
621+ let ay = cW[cV]
622+ let cY = split({
623+ let cZ = invoke(this, "claimWxREADONLY", [ay, ap], nil)
624+ if ($isInstanceOf(cZ, "String"))
625+ then cZ
626+ else throw(($getType(cZ) + " couldn't be cast to String"))
673627 }, e)
674- let di = dg[3]
675- let dj = dg[4]
676- let dk = (df :+ makeString(["%d%d", di, dj], e))
677- let dl = {
678- let dh = invoke(this, "claimWxBulkInternalREADONLY", [(dd + 1), de, as, dk], nil)
679- if ($isInstanceOf(dh, "List[Any]"))
680- then dh
681- else throw(($getType(dh) + " couldn't be cast to List[Any]"))
628+ let da = cY[3]
629+ let db = cY[4]
630+ let dc = (cX :+ makeString(["%d%d", da, db], e))
631+ let dd = {
632+ let cZ = invoke(this, "claimWxBulkInternalREADONLY", [(cV + 1), cW, ap, dc], nil)
633+ if ($isInstanceOf(cZ, "List[Any]"))
634+ then cZ
635+ else throw(($getType(cZ) + " couldn't be cast to List[Any]"))
682636 }
683- if ((dl == dl))
684- then $Tuple2(nil, dl)
637+ if ((dd == dd))
638+ then $Tuple2(nil, dd)
685639 else throw("Strict value is not equal to itself.")
686640 }
687641
688642
689643
690-@Callable(cl)
691-func claimWxBulkREADONLY (de,as) = {
692- let dk = invoke(this, "claimWxBulkInternalREADONLY", [0, de, as, nil], nil)
693- $Tuple2(nil, dk)
644+@Callable(ch)
645+func claimWxBulkREADONLY (cW,ap) = {
646+ let dc = invoke(this, "claimWxBulkInternalREADONLY", [0, cW, ap, nil], nil)
647+ $Tuple2(nil, dc)
694648 }
695649
696650
697651
698-@Callable(cl)
699-func claimWxREADONLY (at,as) = {
700- let bY = ar(as, at)
701- let bz = au(at)
702- let cL = av(at, as)
703- let bs = az(bY)
704- let bA = az(bz)
705- let ct = D(this, cL)
706- let bx = y(aX, ac(at))
707- let bC = getIntegerValue(aX, ad(bx))
708- let dm = C(aY, am())
709- let bD = C(aY, ao())
710- let dn = if ((bD > height))
652+@Callable(ch)
653+func claimWxREADONLY (aq,ap) = {
654+ let bU = ao(ap, aq)
655+ let bv = ar(aq)
656+ let cE = as(aq, ap)
657+ let bo = aw(bU)
658+ let bw = aw(bv)
659+ let cz = A(this, cE)
660+ let bt = v(aU, Z(aq))
661+ let by = getIntegerValue(aU, aa(bt))
662+ let de = z(aV, aj())
663+ let bz = z(aV, al())
664+ let df = if ((bz > height))
711665 then 0
712- else (height - bD)
713- let do = fraction((dm * dn), bC, f)
714- let dp = fraction(do, bs, bA)
715- let dq = bU(at, as, bx, 0)
716- let ce = dq._1
717- let cr = dq._2
718- let bT = dq._3
719- let cu = max([(ce - ct), g])
720- let dr = l(invoke(aZ, "claimWxBoostREADONLY", [at, as], nil))
721- let cT = max([p(dr[0]), 0])
722- let ds = r(dr[1])
723- let cU = cu
724- let cV = min([(cU * toBigInt(2)), toBigInt(cT)])
725- let cW = (cU + cV)
726- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", at, as, toString(cW), toString(ct), toString(cU), toString(cV), "soon"], e))
666+ else (height - bz)
667+ let dg = fraction((de * df), by, f)
668+ let dh = fraction(dg, bo, bw)
669+ let di = bQ(aq, ap, bt, 0)
670+ let ca = di._1
671+ let cw = di._2
672+ let bP = di._3
673+ let cB = max([(ca - cz), g])
674+ let dj = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil))
675+ let cM = max([m(dj[0]), 0])
676+ let dk = o(dj[1])
677+ let cN = cB
678+ let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
679+ let dl = (cN + cO)
680+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(dl), toString(cz), toString(cN), toString(cO), "soon"], e))
727681 }
728682
729683
730684
731-@Callable(cl)
732-func stakedByUserREADONLY (at,as) = {
733- let bs = valueOrElse(getInteger(ar(as, at)), 0)
734- $Tuple2(nil, bs)
735- }
736-
737-
738-
739-@Callable(cl)
740-func usersListTraversal (aB) = {
741- let cy = if ((toBase58String(cl.caller.bytes) == valueOrElse(getString(this, M()), "")))
685+@Callable(ch)
686+func usersListTraversal (ay) = {
687+ let cl = if ((toBase58String(ch.caller.bytes) == valueOrElse(getString(this, J()), "")))
742688 then true
743- else cm(cl)
744- if ((cy == cy))
689+ else ci(ch)
690+ if ((cl == cl))
745691 then {
746- let be = bc(aB)
747- let dt = getString(bb(aB))
748- let bk = getString(bd(be))
749- let n = dt
750- if ($isInstanceOf(n, "Unit"))
692+ let ba = aY(ay)
693+ let dm = getString(aX(ay))
694+ let bg = getString(aZ(ba))
695+ let k = dm
696+ if ($isInstanceOf(k, "Unit"))
751697 then {
752- let du = bk
753- if ($isInstanceOf(du, "Unit"))
698+ let dn = bg
699+ if ($isInstanceOf(dn, "Unit"))
754700 then $Tuple2(nil, false)
755- else if ($isInstanceOf(du, "String"))
701+ else if ($isInstanceOf(dn, "String"))
756702 then {
757- let dv = du
758- $Tuple2([StringEntry(bb(aB), dv)], true)
703+ let do = dn
704+ $Tuple2([StringEntry(aX(ay), do)], true)
759705 }
760706 else throw("Match error")
761707 }
762- else if ($isInstanceOf(n, "String"))
708+ else if ($isInstanceOf(k, "String"))
763709 then {
764- let aD = n
765- let ct = D(this, av(aB, aD))
766- let cp = y(aX, ac(aB))
767- let ce = bU(aB, aD, cp, 0)._1
768- let cu = (ce - ct)
769- let cv = true
770- let cw = if ((cu > g))
771- then invoke(this, "claimWxINTERNAL", [aB, aD, cv], nil)
710+ let aA = k
711+ let cz = A(this, as(ay, aA))
712+ let cA = v(aU, Z(ay))
713+ let ca = bQ(ay, aA, cA, 0)._1
714+ let cB = (ca - cz)
715+ let cC = if ((cB > g))
716+ then invoke(this, "claimWxINTERNAL", [ay, aA], nil)
772717 else unit
773- if ((cw == cw))
718+ if ((cC == cC))
774719 then {
775- let dw = getString(bi(be, aD))
776- let du = dw
777- if ($isInstanceOf(du, "Unit"))
778- then $Tuple2([DeleteEntry(bb(aB))], false)
779- else if ($isInstanceOf(du, "String"))
720+ let dp = getString(be(ba, aA))
721+ let dn = dp
722+ if ($isInstanceOf(dn, "Unit"))
723+ then $Tuple2([DeleteEntry(aX(ay))], false)
724+ else if ($isInstanceOf(dn, "String"))
780725 then {
781- let dx = du
782- $Tuple2([StringEntry(bb(aB), dx)], true)
726+ let dq = dn
727+ $Tuple2([StringEntry(aX(ay), dq)], true)
783728 }
784729 else throw("Match error")
785730 }
792737
793738
794739
795-@Callable(cl)
796-func onModifyWeight (at,bx) = if ((cl.caller != aX))
740+@Callable(ch)
741+func onModifyWeight (aq,bt) = if ((ch.caller != aU))
797742 then throw("permissions denied")
798743 else {
799- let dy = bw(at, bx, 0)
800- let bu = dy._1
801- let bW = dy._2
802- let bX = dy._3
803- bW
744+ let dr = bs(aq, bt, 0)
745+ let bq = dr._1
746+ let bS = dr._2
747+ let bT = dr._3
748+ bS
804749 }
805750
806751
807-@Verifier(dz)
808-func dA () = {
809- let dB = {
810- let n = ch()
811- if ($isInstanceOf(n, "ByteVector"))
752+@Verifier(ds)
753+func dt () = {
754+ let du = {
755+ let k = cd()
756+ if ($isInstanceOf(k, "ByteVector"))
812757 then {
813- let cn = n
814- cn
758+ let cj = k
759+ cj
815760 }
816- else if ($isInstanceOf(n, "Unit"))
817- then dz.senderPublicKey
761+ else if ($isInstanceOf(k, "Unit"))
762+ then ds.senderPublicKey
818763 else throw("Match error")
819764 }
820- sigVerify(dz.bodyBytes, dz.proofs[0], dB)
765+ sigVerify(ds.bodyBytes, ds.proofs[0], du)
821766 }
822767
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = "__"
1313
1414 let f = b
1515
1616 let g = toBigInt(0)
1717
1818 let h = toBigInt(1)
1919
20-func i (j) = makeString(["staking.ride:", toString(this), j], " ")
21-
22-
23-func k (j) = throw(i(j))
24-
25-
26-func l (m) = {
27- let n = m
28- if ($isInstanceOf(n, "List[Any]"))
20+func i (j) = {
21+ let k = j
22+ if ($isInstanceOf(k, "List[Any]"))
2923 then {
30- let o = n
31- o
24+ let l = k
25+ l
3226 }
3327 else throw("fail to cast into List[Any]")
3428 }
3529
3630
37-func p (m) = {
38- let n = m
39- if ($isInstanceOf(n, "Int"))
31+func m (j) = {
32+ let k = j
33+ if ($isInstanceOf(k, "Int"))
4034 then {
41- let q = n
42- q
35+ let n = k
36+ n
4337 }
4438 else throw("fail to cast into Int")
4539 }
4640
4741
48-func r (m) = {
49- let n = m
50- if ($isInstanceOf(n, "String"))
42+func o (j) = {
43+ let k = j
44+ if ($isInstanceOf(k, "String"))
5145 then {
52- let s = n
53- s
46+ let p = k
47+ p
5448 }
5549 else throw("fail to cast into Int")
5650 }
5751
5852
59-func t (m) = {
60- let n = m
61- if ($isInstanceOf(n, "ByteVector"))
53+func q (j) = {
54+ let k = j
55+ if ($isInstanceOf(k, "ByteVector"))
6256 then {
63- let u = n
64- u
57+ let r = k
58+ r
6559 }
6660 else throw("fail to cast into Int")
6761 }
6862
6963
70-func v (w,x) = valueOrErrorMessage(getString(w, x), (("mandatory this." + x) + " is not defined"))
64+func s (t,u) = valueOrErrorMessage(getString(t, u), (("mandatory this." + u) + " is not defined"))
7165
7266
73-func y (w,x) = valueOrErrorMessage(getString(w, x), (((("mandatory " + toString(w)) + ".") + x) + " is not defined"))
67+func v (t,u) = valueOrErrorMessage(getString(t, u), (((("mandatory " + toString(t)) + ".") + u) + " is not defined"))
7468
7569
76-func z (w,x) = valueOrElse(getInteger(w, x), 0)
70+func w (t,u) = valueOrElse(getInteger(t, u), 0)
7771
7872
79-func A (w,x,B) = valueOrElse(getInteger(w, x), B)
73+func x (t,u,y) = valueOrElse(getInteger(t, u), y)
8074
8175
82-func C (w,x) = valueOrErrorMessage(getInteger(w, x), (("mandatory this." + x) + " is not defined"))
76+func z (t,u) = valueOrErrorMessage(getInteger(t, u), (("mandatory this." + u) + " is not defined"))
8377
8478
85-func D (w,x) = value(parseBigInt(valueOrElse(getString(w, x), "0")))
79+func A (t,u) = value(parseBigInt(valueOrElse(getString(t, u), "0")))
8680
8781
88-func E (w,x,B) = {
89- let n = getString(w, x)
90- if ($isInstanceOf(n, "String"))
82+func B (t,u,y) = {
83+ let k = getString(t, u)
84+ if ($isInstanceOf(k, "String"))
9185 then {
92- let F = n
93- value(parseBigInt(F))
86+ let C = k
87+ value(parseBigInt(C))
9488 }
95- else if ($isInstanceOf(n, "Unit"))
96- then B
89+ else if ($isInstanceOf(k, "Unit"))
90+ then y
9791 else throw("Match error")
9892 }
9993
10094
101-func G (H,I) = fraction(toBigInt(H), d, toBigInt(I))
95+func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
10296
10397
104-func J (m,K) = toInt(fraction(m, toBigInt(K), d))
98+func G (j,H) = toInt(fraction(j, toBigInt(H), d))
10599
106100
107-func L () = "%s%s__config__factoryAddress"
101+func I () = "%s%s__config__factoryAddress"
108102
109103
110-func M () = "%s__votingEmissionContract"
104+func J () = "%s__votingEmissionContract"
111105
112106
113-let N = 1
107+let K = 1
114108
115-let O = 2
109+let L = 2
116110
117-let P = 3
111+let M = 3
118112
119-let Q = 4
113+let N = 4
120114
121-let R = 5
115+let O = 5
122116
123-let S = 6
117+let P = 6
124118
125-let T = 7
119+let Q = 7
126120
127-func U () = "%s__factoryConfig"
121+func R () = "%s__factoryConfig"
128122
129123
130-func V () = "%s__managerPublicKey"
124+func S () = "%s__managerPublicKey"
131125
132126
133-func W () = "%s__pendingManagerPublicKey"
127+func T () = "%s__pendingManagerPublicKey"
134128
135129
136-func X () = "%s__stablePoolAddonAddr"
130+func U () = "%s__stablePoolAddonAddr"
137131
138132
139-func Y () = "%s__addonAddr"
133+func V () = "%s__addonAddr"
140134
141135
142-func Z (aa) = makeString(["%s%s%s", aa, "mappings__lpAsset2PoolContract"], e)
136+func W (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
143137
144138
145-func ab () = "%s__lpTokensList"
139+func Y () = "%s__lpTokensList"
146140
147141
148-func ac (aa) = makeString(["%s%s%s", aa, "mappings__lpAsset2PoolContract"], e)
142+func Z (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
149143
150144
151-func ad (ae) = makeString(["%s%s", "poolWeight", ae], e)
145+func aa (ab) = makeString(["%s%s", "poolWeight", ab], e)
152146
153147
154-func af (ag) = split(valueOrElse(getString(ag, ab()), ""), e)
148+func ac (ad) = split(valueOrElse(getString(ad, Y()), ""), e)
155149
156150
157-func ah (ag) = split(y(ag, U()), e)
151+func ae (ad) = split(v(ad, R()), e)
158152
159153
160-func ai (aj) = addressFromStringValue(aj[O])
154+func af (ag) = addressFromStringValue(ag[L])
161155
162156
163-func ak (aj) = addressFromStringValue(aj[R])
157+func ah (ag) = addressFromStringValue(ag[O])
164158
165159
166-func al (aj) = addressFromStringValue(aj[N])
160+func ai (ag) = addressFromStringValue(ag[K])
167161
168162
169-func am () = "%s%s__ratePerBlock__current"
163+func aj () = "%s%s__ratePerBlock__current"
170164
171165
172-func an () = "%s%s__ratePerBlockMax__current"
166+func ak () = "%s%s__ratePerBlockMax__current"
173167
174168
175-func ao () = "%s%s__emission__startBlock"
169+func al () = "%s%s__emission__startBlock"
176170
177171
178-func ap () = "%s%s__emission__duration"
172+func am () = "%s%s__emission__duration"
179173
180174
181-func aq () = "%s%s__emission__endBlock"
175+func an () = "%s%s__emission__endBlock"
182176
183177
184-func ar (as,at) = makeString(["%s%s%s__staked", as, at], e)
178+func ao (ap,aq) = makeString(["%s%s%s__staked", ap, aq], e)
185179
186180
187-func au (at) = ("%s%s%s__staked__total__" + at)
181+func ar (aq) = ("%s%s%s__staked__total__" + aq)
188182
189183
190-func av (at,as) = makeString(["%s%s%s__claimed", as, at], e)
184+func as (aq,ap) = makeString(["%s%s%s__claimed", ap, aq], e)
191185
192186
193-func aw (at,as) = makeString(["%s%s%s__claimedMinReward", as, at], e)
187+func at (aq,ap) = makeString(["%s%s%s__claimedMinReward", ap, aq], e)
194188
195189
196-func ax (at,as) = makeString(["%s%s%s__claimedBoostReward", as, at], e)
190+func au (aq,ap) = makeString(["%s%s%s__claimedBoostReward", ap, aq], e)
197191
198192
199-func ay (at) = makeString(["%s%s%s__claimed__total", at], e)
193+func av (aq) = makeString(["%s%s%s__claimed__total", aq], e)
200194
201195
202-func az (x) = valueOrElse(getInteger(this, x), 0)
196+func aw (u) = valueOrElse(getInteger(this, u), 0)
203197
204198
205-func aA (aB) = makeString(["%s%s%s", aB, "total", "bal"], e)
199+func ax (ay) = makeString(["%s%s%s", ay, "total", "bal"], e)
206200
207201
208-func aC (aB,aD) = makeString(["%s%s%s", aB, aD, "bal"], e)
202+func az (ay,aA) = makeString(["%s%s%s", ay, aA, "bal"], e)
209203
210204
211-func aE (aB) = makeString(["%s%s%s", aB, "total", "balINT"], e)
205+func aB (ay) = makeString(["%s%s%s", ay, "total", "balINT"], e)
212206
213207
214-func aF (aB,aD) = makeString(["%s%s%s", aB, aD, "balINT"], e)
208+func aC (ay,aA) = makeString(["%s%s%s", ay, aA, "balINT"], e)
215209
216210
217-func aG (aB) = makeString(["%s%s%s", aB, "total", "lastUpd"], e)
211+func aD (ay) = makeString(["%s%s%s", ay, "total", "lastUpd"], e)
218212
219213
220-func aH (aB,aD) = makeString(["%s%s%s", aB, aD, "lastUpd"], e)
214+func aE (ay,aA) = makeString(["%s%s%s", ay, aA, "lastUpd"], e)
221215
222216
223-func aI (aB) = makeString(["%s%s%s%s", aB, "common", "lpInt"], e)
217+func aF (ay) = makeString(["%s%s%s%s", ay, "common", "lpInt"], e)
224218
225219
226-func aJ (aB) = makeString(["%s%s%s%s", aB, "common", "lpIntH"], e)
220+func aG (ay) = makeString(["%s%s%s%s", ay, "common", "lpIntH"], e)
227221
228222
229-func aK (aB,aD) = makeString(["%s%s%s%s", aB, aD, "lpInt"], e)
223+func aH (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpInt"], e)
230224
231225
232-func aL (aB,aD) = makeString(["%s%s%s%s", aB, aD, "lpIntH"], e)
226+func aI (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpIntH"], e)
233227
234228
235-func aM (aB) = makeString(["%s", aB, "wxPerLp"], e)
229+func aJ (ay) = makeString(["%s", ay, "wxPerLp"], e)
236230
237231
238-func aN (aB) = makeString(["%s", aB, "wxPerLpX18"], e)
232+func aK (ay) = makeString(["%s", ay, "wxPerLpX18"], e)
239233
240234
241-func aO (aB,aD) = makeString(["%s%s%s%s", aB, aD, "uIntL"], e)
235+func aL (ay,aA) = makeString(["%s%s%s%s", ay, aA, "uIntL"], e)
242236
243237
244-func aP (aQ,aD,aR) = makeString(["%s%s%s%s__history", aQ, aD, aR], e)
238+func aM (aN,aA,aO) = makeString(["%s%s%s%s__history", aN, aA, aO], e)
245239
246240
247-func aS (aD,aB,aQ,aT) = makeString(["%s%s%s%d%d%d", aD, aB, aQ, toString(height), toString(lastBlock.timestamp), toString(aT)], e)
241+func aP (aA,ay,aN,aQ) = makeString(["%s%s%s%d%d%d", aA, ay, aN, toString(height), toString(lastBlock.timestamp), toString(aQ)], e)
248242
249243
250-func aU (aQ,aD,aB,aT,aV) = StringEntry(aP(aQ, aD, toBase58String(aV)), aS(aD, aB, aQ, aT))
244+func aR (aN,aA,ay,aQ,aS) = StringEntry(aM(aN, aA, toBase58String(aS)), aP(aA, ay, aN, aQ))
251245
252246
253-let aW = v(this, L())
247+let aT = s(this, I())
254248
255-let aX = addressFromStringValue(aW)
249+let aU = addressFromStringValue(aT)
256250
257-let aj = ah(aX)
251+let ag = ae(aU)
258252
259-let aY = ak(aj)
253+let aV = ah(ag)
260254
261-let aZ = ai(aj)
255+let aW = af(ag)
262256
263-let ba = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], e)), i("lp_staking_pools contract address is undefined"))), i("invalid lp_staking_pools contract address"))
264-
265-func bb (aB) = makeString(["%s%s", aB, "nextUser"], e)
257+func aX (ay) = makeString(["%s%s", ay, "nextUser"], e)
266258
267259
268-func bc (aB) = makeString(["users", aB], e)
260+func aY (ay) = makeString(["users", ay], e)
269261
270262
271-func bd (be) = makeString(["%s%s%s", be, "head"], e)
263+func aZ (ba) = makeString(["%s%s%s", ba, "head"], e)
272264
273265
274-func bf (be) = makeString(["%s%s%s", be, "size"], e)
266+func bb (ba) = makeString(["%s%s%s", ba, "size"], e)
275267
276268
277-func bg (be,bh) = makeString(["%s%s%s%s", be, bh, "prev"], e)
269+func bc (ba,bd) = makeString(["%s%s%s%s", ba, bd, "prev"], e)
278270
279271
280-func bi (be,bh) = makeString(["%s%s%s%s", be, bh, "next"], e)
272+func be (ba,bd) = makeString(["%s%s%s%s", ba, bd, "next"], e)
281273
282274
283-func bj (be,bh) = {
284- let bk = getString(this, bd(be))
285- let bl = getString(this, bg(be, bh))
286- let bm = getString(this, bi(be, bh))
287- if (if ((bh == valueOrElse(bk, "")))
275+func bf (ba,bd) = {
276+ let bg = getString(this, aZ(ba))
277+ let bh = getString(this, bc(ba, bd))
278+ let bi = getString(this, be(ba, bd))
279+ if (if ((bd == valueOrElse(bg, "")))
288280 then true
289- else (bl != unit))
281+ else (bh != unit))
290282 then true
291- else (bm != unit)
283+ else (bi != unit)
292284 }
293285
294286
295-func bn (be,bh) = {
296- let bk = getString(this, bd(be))
297- let bo = valueOrElse(getInteger(this, bf(be)), 0)
298- let bp = if (!(bj(be, bh)))
287+func bj (ba,bd) = {
288+ let bg = getString(this, aZ(ba))
289+ let bk = valueOrElse(getInteger(this, bb(ba)), 0)
290+ let bl = if (!(bf(ba, bd)))
299291 then true
300292 else throw("Node exists")
301- if ((bp == bp))
302- then (([IntegerEntry(bf(be), (bo + 1))] ++ (if ((bk != unit))
303- then [StringEntry(bi(be, bh), value(bk)), StringEntry(bg(be, value(bk)), bh)]
304- else nil)) ++ [StringEntry(bd(be), bh)])
293+ if ((bl == bl))
294+ then (([IntegerEntry(bb(ba), (bk + 1))] ++ (if ((bg != unit))
295+ then [StringEntry(be(ba, bd), value(bg)), StringEntry(bc(ba, value(bg)), bd)]
296+ else nil)) ++ [StringEntry(aZ(ba), bd)])
305297 else throw("Strict value is not equal to itself.")
306298 }
307299
308300
309-func bq (be,bh) = {
310- let bk = getString(this, bd(be))
311- let bo = valueOrElse(getInteger(this, bf(be)), 0)
312- let bl = getString(this, bg(be, bh))
313- let bm = getString(this, bi(be, bh))
314- ([IntegerEntry(bf(be), (bo - 1))] ++ (if (if ((bl != unit))
315- then (bm != unit)
301+func bm (ba,bd) = {
302+ let bg = getString(this, aZ(ba))
303+ let bk = valueOrElse(getInteger(this, bb(ba)), 0)
304+ let bh = getString(this, bc(ba, bd))
305+ let bi = getString(this, be(ba, bd))
306+ ([IntegerEntry(bb(ba), (bk - 1))] ++ (if (if ((bh != unit))
307+ then (bi != unit)
316308 else false)
317- then [StringEntry(bi(be, value(bl)), value(bm)), StringEntry(bg(be, value(bm)), value(bl)), DeleteEntry(bg(be, bh)), DeleteEntry(bi(be, bh))]
318- else if ((bm != unit))
319- then [StringEntry(bd(be), value(bm)), DeleteEntry(bi(be, bh)), DeleteEntry(bg(be, value(bm)))]
320- else if ((bl != unit))
321- then [DeleteEntry(bg(be, bh)), DeleteEntry(bi(be, value(bl)))]
322- else if ((bh == valueOrElse(bk, "")))
323- then [DeleteEntry(bd(be))]
324- else throw(((("invalid node: " + be) + ".") + bh))))
309+ then [StringEntry(be(ba, value(bh)), value(bi)), StringEntry(bc(ba, value(bi)), value(bh)), DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, bd))]
310+ else if ((bi != unit))
311+ then [StringEntry(aZ(ba), value(bi)), DeleteEntry(be(ba, bd)), DeleteEntry(bc(ba, value(bi)))]
312+ else if ((bh != unit))
313+ then [DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, value(bh)))]
314+ else if ((bd == valueOrElse(bg, "")))
315+ then [DeleteEntry(aZ(ba))]
316+ else throw(((("invalid node: " + ba) + ".") + bd))))
325317 }
326318
327319
328-func br (bs,bt,bu,bv) = if (if ((bt == g))
329- then (bs > g)
320+func bn (bo,bp,bq,br) = if (if ((bp == g))
321+ then (bo > g)
330322 else false)
331323 then g
332- else if ((bs == g))
333- then bu
334- else if (if ((bt > g))
335- then (bs > g)
324+ else if ((bo == g))
325+ then bq
326+ else if (if ((bp > g))
327+ then (bo > g)
336328 else false)
337- then value(parseBigInt(v(this, bv)))
329+ then value(parseBigInt(s(this, br)))
338330 else throw("calcWxPerLpIntegralUserLast: unexpected state")
339331
340332
341-func bw (at,bx,by) = {
342- let bz = au(at)
343- let bA = toBigInt(az(bz))
344- let bB = if ((bA == g))
333+func bs (aq,bt,bu) = {
334+ let bv = ar(aq)
335+ let bw = toBigInt(aw(bv))
336+ let bx = if ((bw == g))
345337 then h
346- else bA
347- let bC = getIntegerValue(aX, ad(bx))
348- let bD = C(aY, ao())
349- let bE = 1000
350- let bF = (C(aY, am()) * bE)
351- let bG = fraction(bF, bC, (f * 3))
352- let bH = aI(at)
353- let bI = aJ(at)
354- let bJ = aM(at)
355- let bK = A(this, bI, bD)
356- let bL = D(this, bH)
357- let bM = 0
358- let bN = max([(height - bK), 0])
359- let bO = if ((bM != 0))
360- then toBigInt(bM)
361- else fraction(toBigInt(bG), toBigInt(b), bB)
362- let bP = (bA + toBigInt(by))
363- let bQ = if ((bP == g))
338+ else bw
339+ let by = getIntegerValue(aU, aa(bt))
340+ let bz = z(aV, al())
341+ let bA = 1000
342+ let bB = (z(aV, aj()) * bA)
343+ let bC = fraction(bB, by, (f * 3))
344+ let bD = aF(aq)
345+ let bE = aG(aq)
346+ let bF = aJ(aq)
347+ let bG = x(this, bE, bz)
348+ let bH = A(this, bD)
349+ let bI = 0
350+ let bJ = max([(height - bG), 0])
351+ let bK = if ((bI != 0))
352+ then toBigInt(bI)
353+ else fraction(toBigInt(bC), toBigInt(b), bx)
354+ let bL = (bw + toBigInt(bu))
355+ let bM = if ((bL == g))
364356 then h
365- else bP
366- let bu = (bL + (bO * toBigInt(bN)))
367- let bR = (toBigInt(bG) / bQ)
368- let bS = height
369- let bT = makeString([toString(bu), toString(bN), toString(bO), toString(bA), toString(bG), toString(bF), toString(bC)], "::")
370- $Tuple3(bu, [StringEntry(bH, toString(bu)), IntegerEntry(bI, bS), StringEntry(bJ, toString(bR))], bT)
357+ else bL
358+ let bq = (bH + (bK * toBigInt(bJ)))
359+ let bN = (toBigInt(bC) / bM)
360+ let bO = height
361+ let bP = makeString([toString(bq), toString(bJ), toString(bK), toString(bw), toString(bC), toString(bB), toString(by)], "::")
362+ $Tuple3(bq, [StringEntry(bD, toString(bq)), IntegerEntry(bE, bO), StringEntry(bF, toString(bN))], bP)
371363 }
372364
373365
374-func bU (at,as,bx,by) = {
375- let bV = bw(at, bx, by)
376- let bu = bV._1
377- let bW = bV._2
378- let bX = bV._3
379- let bE = 1000
380- let bY = ar(as, at)
381- let bs = az(bY)
382- let bZ = aK(at, as)
383- let ca = aL(at, as)
384- let bv = aO(at, as)
385- let cb = D(this, bZ)
386- let bt = z(this, ca)
387- let cc = br(toBigInt(bs), toBigInt(bt), bu, bv)
388- let cd = (b * bE)
389- let ce = max([(cb + fraction((bu - cc), toBigInt(bs), toBigInt(cd))), g])
390- let cf = bu
391- let cg = height
392- let bT = makeString([toString(cb), toString(cc), toString(bs), bX, toString(height)], "::")
393- $Tuple3(ce, (bW ++ [StringEntry(bZ, toString(ce)), IntegerEntry(ca, cg), StringEntry(bv, toString(cf))]), bT)
366+func bQ (aq,ap,bt,bu) = {
367+ let bR = bs(aq, bt, bu)
368+ let bq = bR._1
369+ let bS = bR._2
370+ let bT = bR._3
371+ let bA = 1000
372+ let bU = ao(ap, aq)
373+ let bo = aw(bU)
374+ let bV = aH(aq, ap)
375+ let bW = aI(aq, ap)
376+ let br = aL(aq, ap)
377+ let bX = A(this, bV)
378+ let bp = w(this, bW)
379+ let bY = bn(toBigInt(bo), toBigInt(bp), bq, br)
380+ let bZ = (b * bA)
381+ let ca = max([(bX + fraction((bq - bY), toBigInt(bo), toBigInt(bZ))), g])
382+ let cb = bq
383+ let cc = height
384+ let bP = makeString([toString(bX), toString(bY), toString(bo), bT, toString(height)], "::")
385+ $Tuple3(ca, (bS ++ [StringEntry(bV, toString(ca)), IntegerEntry(bW, cc), StringEntry(br, toString(cb))]), bP)
394386 }
395387
396388
397-func ch () = {
398- let n = getString(V())
399- if ($isInstanceOf(n, "String"))
389+func cd () = {
390+ let k = getString(S())
391+ if ($isInstanceOf(k, "String"))
400392 then {
401- let F = n
402- fromBase58String(F)
393+ let C = k
394+ fromBase58String(C)
403395 }
404- else if ($isInstanceOf(n, "Unit"))
396+ else if ($isInstanceOf(k, "Unit"))
405397 then unit
406398 else throw("Match error")
407399 }
408400
409401
410-func ci () = {
411- let n = getString(W())
412- if ($isInstanceOf(n, "String"))
402+func ce () = {
403+ let k = getString(T())
404+ if ($isInstanceOf(k, "String"))
413405 then {
414- let F = n
415- fromBase58String(F)
406+ let C = k
407+ fromBase58String(C)
416408 }
417- else if ($isInstanceOf(n, "Unit"))
409+ else if ($isInstanceOf(k, "Unit"))
418410 then unit
419411 else throw("Match error")
420412 }
421413
422414
423-let cj = throw("Permission denied")
415+let cf = throw("Permission denied")
424416
425-func ck (cl) = if ((cl.caller == this))
417+func cg (ch) = if ((ch.caller == this))
426418 then true
427- else cj
419+ else cf
428420
429421
430-func cm (cl) = {
431- let n = ch()
432- if ($isInstanceOf(n, "ByteVector"))
422+func ci (ch) = {
423+ let k = cd()
424+ if ($isInstanceOf(k, "ByteVector"))
433425 then {
434- let cn = n
435- if ((cl.callerPublicKey == cn))
426+ let cj = k
427+ if ((ch.callerPublicKey == cj))
436428 then true
437- else cj
429+ else cf
438430 }
439- else if ($isInstanceOf(n, "Unit"))
440- then if ((cl.caller == this))
431+ else if ($isInstanceOf(k, "Unit"))
432+ then if ((ch.caller == this))
441433 then true
442- else cj
434+ else cf
443435 else throw("Match error")
444436 }
445437
446438
447-func co (cl,aB,cp,aD,cq,aT) = {
448- let as = toString(aD)
449- let at = toBase58String(aB)
450- let bx = toString(cp)
451- let bY = ar(as, at)
452- let bz = au(at)
453- let bs = az(bY)
454- let bA = az(bz)
455- let cr = bU(at, as, bx, -(aT))._2
456- let be = bc(at)
457- let cs = if (if (bj(be, as))
458- then (aT == bs)
459- else false)
460- then bq(be, as)
461- else nil
462- let ct = D(this, av(at, as))
463- let ce = bU(at, as, bx, 0)._1
464- let cu = (ce - ct)
465- let cv = true
466- let cw = if ((cu > g))
467- then invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
468- else unit
469- if ((cw == cw))
470- then if ((aT > bs))
471- then throw(((((((("passed amount=" + toString(aT)) + " is greater than available=") + toString(bs)) + ". lpAssetId=") + at) + ". stakedByUserKEY=") + bY))
472- else (([IntegerEntry(bY, (bs - aT)), IntegerEntry(bz, (bA - aT)), ScriptTransfer(cq, aT, aB), aU("unstake", as, at, aT, cl.transactionId)] ++ cr) ++ cs)
473- else throw("Strict value is not equal to itself.")
474- }
475-
476-
477-@Callable(cl)
478-func constructor (cx) = {
479- let cy = cm(cl)
480- if ((cy == cy))
481- then [StringEntry(L(), cx)]
439+@Callable(ch)
440+func constructor (ck) = {
441+ let cl = ci(ch)
442+ if ((cl == cl))
443+ then [StringEntry(I(), ck)]
482444 else throw("Strict value is not equal to itself.")
483445 }
484446
485447
486448
487-@Callable(cl)
488-func constructorV2 (cz) = {
489- let cA = [cm(cl), if ((addressFromString(cz) != unit))
449+@Callable(ch)
450+func constructorV2 (cm) = {
451+ let cn = [ci(ch), if ((addressFromString(cm) != unit))
490452 then true
491453 else "invalid voting emission contract address"]
492- if ((cA == cA))
493- then [StringEntry(M(), cz)]
454+ if ((cn == cn))
455+ then [StringEntry(J(), cm)]
494456 else throw("Strict value is not equal to itself.")
495457 }
496458
497459
498460
499-@Callable(cl)
500-func setManager (cB) = {
501- let cy = cm(cl)
502- if ((cy == cy))
461+@Callable(ch)
462+func setManager (co) = {
463+ let cl = ci(ch)
464+ if ((cl == cl))
503465 then {
504- let cC = fromBase58String(cB)
505- if ((cC == cC))
506- then [StringEntry(W(), cB)]
466+ let cp = fromBase58String(co)
467+ if ((cp == cp))
468+ then [StringEntry(T(), co)]
507469 else throw("Strict value is not equal to itself.")
508470 }
509471 else throw("Strict value is not equal to itself.")
510472 }
511473
512474
513475
514-@Callable(cl)
476+@Callable(ch)
515477 func confirmManager () = {
516- let cD = ci()
517- let cE = if (isDefined(cD))
478+ let cq = ce()
479+ let cr = if (isDefined(cq))
518480 then true
519481 else throw("No pending manager")
520- if ((cE == cE))
482+ if ((cr == cr))
521483 then {
522- let cF = if ((cl.callerPublicKey == value(cD)))
484+ let cs = if ((ch.callerPublicKey == value(cq)))
523485 then true
524486 else throw("You are not pending manager")
525- if ((cF == cF))
526- then [StringEntry(V(), toBase58String(value(cD))), DeleteEntry(W())]
487+ if ((cs == cs))
488+ then [StringEntry(S(), toBase58String(value(cq))), DeleteEntry(T())]
527489 else throw("Strict value is not equal to itself.")
528490 }
529491 else throw("Strict value is not equal to itself.")
530492 }
531493
532494
533495
534-@Callable(cl)
535-func stake () = if ((size(cl.payments) != 1))
496+@Callable(ch)
497+func stake () = if ((size(ch.payments) != 1))
536498 then throw("invalid payment - exact one payment must be attached")
537499 else {
538- let cG = cl.payments[0]
539- let aB = value(cG.assetId)
540- let at = toBase58String(aB)
541- let aT = cG.amount
542- let bx = valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at))
543- let cH = toString(cl.caller)
544- let as = if ((cH == bx))
545- then toString(cl.originCaller)
546- else cH
547- let bY = ar(as, at)
548- let bz = au(at)
549- let bs = az(bY)
550- let bA = az(bz)
551- let cI = bU(at, as, bx, aT)
552- let ce = cI._1
553- let cr = cI._2
554- let bT = cI._3
555- let be = bc(at)
556- let cs = if (bj(be, as))
500+ let ct = ch.payments[0]
501+ let ay = value(ct.assetId)
502+ let aq = toBase58String(ay)
503+ let aQ = ct.amount
504+ let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
505+ let cu = toString(ch.caller)
506+ let ap = if ((cu == bt))
507+ then toString(ch.originCaller)
508+ else cu
509+ let bU = ao(ap, aq)
510+ let bv = ar(aq)
511+ let bo = aw(bU)
512+ let bw = aw(bv)
513+ let cv = bQ(aq, ap, bt, aQ)
514+ let ca = cv._1
515+ let cw = cv._2
516+ let bP = cv._3
517+ let ba = aY(aq)
518+ let cx = if (bf(ba, ap))
557519 then nil
558- else bn(be, as)
559- (([IntegerEntry(bY, (bs + aT)), IntegerEntry(bz, (bA + aT)), aU("stake", as, at, aT, cl.transactionId)] ++ cr) ++ cs)
520+ else bj(ba, ap)
521+ (([IntegerEntry(bU, (bo + aQ)), IntegerEntry(bv, (bw + aQ)), aR("stake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
560522 }
561523
562524
563525
564-@Callable(cl)
565-func unstake (at,aT) = {
566- let aB = fromBase58String(at)
567- let bx = valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at))
568- let cp = addressFromStringValue(bx)
569- let cJ = valueOrElse(getString(cp, Y()), bx)
570- let cH = toString(cl.caller)
571- let aD = if (if ((cH == bx))
526+@Callable(ch)
527+func unstake (aq,aQ) = {
528+ let ay = fromBase58String(aq)
529+ let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
530+ let cy = valueOrElse(getString(addressFromStringValue(bt), V()), bt)
531+ let cu = toString(ch.caller)
532+ let ap = if (if ((cu == bt))
572533 then true
573- else (cH == cJ))
574- then cl.originCaller
575- else cl.caller
576- let cq = cl.caller
577- co(cl, aB, cp, aD, cq, aT)
578- }
579-
580-
581-
582-@Callable(cl)
583-func unstakeINTERNAL (aB,aT,aD,cq) = {
584- let at = toBase58String(aB)
585- let cp = addressFromStringValue(valueOrErrorMessage(getString(aX, Z(at)), ("unsupported lp asset " + at)))
586- let cy = if ((cl.caller == cp))
587- then true
588- else cj
589- if ((cy == cy))
590- then co(cl, aB, cp, Address(aD), Address(cq), aT)
534+ else (cu == cy))
535+ then toString(ch.originCaller)
536+ else cu
537+ let bU = ao(ap, aq)
538+ let bv = ar(aq)
539+ let bo = aw(bU)
540+ let bw = aw(bv)
541+ let cw = bQ(aq, ap, bt, -(aQ))._2
542+ let ba = aY(aq)
543+ let cx = if (if (bf(ba, ap))
544+ then (aQ == bo)
545+ else false)
546+ then bm(ba, ap)
547+ else nil
548+ let cz = A(this, as(aq, ap))
549+ let cA = v(aU, Z(aq))
550+ let ca = bQ(aq, ap, cA, 0)._1
551+ let cB = (ca - cz)
552+ let cC = if ((cB > g))
553+ then invoke(this, "claimWxINTERNAL", [aq, ap], nil)
554+ else unit
555+ if ((cC == cC))
556+ then if ((aQ > bo))
557+ then throw(((((((("passed amount=" + toString(aQ)) + " is greater than available=") + toString(bo)) + ". lpAssetId=") + aq) + ". stakedByUserKEY=") + bU))
558+ else (([IntegerEntry(bU, (bo - aQ)), IntegerEntry(bv, (bw - aQ)), ScriptTransfer(ch.caller, aQ, ay), aR("unstake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
591559 else throw("Strict value is not equal to itself.")
592560 }
593561
594562
595563
596-@Callable(cl)
597-func claimWx (at) = {
598- let as = toString(cl.caller)
599- let cv = true
600- let cK = invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
601- $Tuple2(nil, cK)
564+@Callable(ch)
565+func claimWx (aq) = {
566+ let ap = toString(ch.caller)
567+ let cD = invoke(this, "claimWxINTERNAL", [aq, ap], nil)
568+ $Tuple2(nil, cD)
602569 }
603570
604571
605572
606-@Callable(cl)
607-func claimWxDoNotThrow (at) = {
608- let as = toString(cl.caller)
609- let cv = false
610- let cK = invoke(this, "claimWxINTERNAL", [at, as, cv], nil)
611- $Tuple2(nil, cK)
612- }
613-
614-
615-
616-@Callable(cl)
617-func claimWxINTERNAL (at,as,cv) = {
618- let cy = ck(cl)
619- if ((cy == cy))
573+@Callable(ch)
574+func claimWxINTERNAL (aq,ap) = {
575+ let cl = cg(ch)
576+ if ((cl == cl))
620577 then {
621- let aD = valueOrErrorMessage(addressFromString(as), "claimWxINTERNAL: invalid user address")
622- let bx = y(aX, ac(at))
623- let cL = av(at, as)
624- let cM = ay(at)
625- let cN = aw(at, as)
626- let cO = ax(at, as)
627- let ct = D(this, cL)
628- let cP = D(this, cN)
629- let cQ = D(this, cO)
630- let cR = D(this, cM)
631- let cS = bU(at, as, bx, 0)
632- let ce = cS._1
633- let cr = cS._2
634- let bT = cS._3
635- let cu = max([(ce - ct), g])
636- if ((g >= cu))
637- then if (cv)
638- then throw("nothing to claim")
639- else $Tuple2(nil, 0)
578+ let aA = valueOrErrorMessage(addressFromString(ap), "claimWxINTERNAL: invalid user address")
579+ let bt = v(aU, Z(aq))
580+ let cE = as(aq, ap)
581+ let cF = av(aq)
582+ let cG = at(aq, ap)
583+ let cH = au(aq, ap)
584+ let cz = A(this, cE)
585+ let cI = A(this, cG)
586+ let cJ = A(this, cH)
587+ let cK = A(this, cF)
588+ let cL = bQ(aq, ap, bt, 0)
589+ let ca = cL._1
590+ let cw = cL._2
591+ let bP = cL._3
592+ let cB = max([(ca - cz), g])
593+ if ((g >= cB))
594+ then throw("nothing to claim")
640595 else {
641- let cT = max([p(l(invoke(aZ, "claimWxBoost", [at, as], nil))[0]), 0])
642- let cU = cu
643- let cV = min([(cU * toBigInt(2)), toBigInt(cT)])
644- let cW = (cU + cV)
645- let cX = t(l(invoke(aY, "emit", [toInt(cU)], nil))[0])
646- let cY = l(invoke(aY, "emit", [toInt(cV)], nil))
647- if ((cY == cY))
596+ let cM = max([m(i(invoke(aW, "claimWxBoost", [aq, ap], nil))[0]), 0])
597+ let cN = cB
598+ let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
599+ let cP = q(i(invoke(aV, "emit", [toInt(cN)], nil))[0])
600+ let cQ = i(invoke(aV, "emit", [toInt(cO)], nil))
601+ if ((cQ == cQ))
648602 then {
649- let cZ = (ct + cu)
650- let da = (cP + cU)
651- let db = (cP + cU)
652- let dc = (cP + cU)
653- $Tuple2([StringEntry(cL, toString(cZ)), StringEntry(cN, toString(da)), StringEntry(cO, toString(db)), StringEntry(cM, toString(dc)), ScriptTransfer(aD, toInt(cU), cX), ScriptTransfer(aD, toInt(cV), cX), aU("claim", as, at, toInt(cu), cl.transactionId)], toInt(cW))
603+ let cR = (cz + cB)
604+ let cS = (cI + cN)
605+ let cT = (cI + cN)
606+ let cU = (cI + cN)
607+[StringEntry(cE, toString(cR)), StringEntry(cG, toString(cS)), StringEntry(cH, toString(cT)), StringEntry(cF, toString(cU)), ScriptTransfer(aA, toInt(cN), cP), ScriptTransfer(aA, toInt(cO), cP), aR("claim", ap, aq, toInt(cB), ch.transactionId)]
654608 }
655609 else throw("Strict value is not equal to itself.")
656610 }
657611 }
658612 else throw("Strict value is not equal to itself.")
659613 }
660614
661615
662616
663-@Callable(cl)
664-func claimWxBulkInternalREADONLY (dd,de,as,df) = if ((dd == size(de)))
665- then $Tuple2(nil, df)
617+@Callable(ch)
618+func claimWxBulkInternalREADONLY (cV,cW,ap,cX) = if ((cV == size(cW)))
619+ then $Tuple2(nil, cX)
666620 else {
667- let aB = de[dd]
668- let dg = split({
669- let dh = invoke(this, "claimWxREADONLY", [aB, as], nil)
670- if ($isInstanceOf(dh, "String"))
671- then dh
672- else throw(($getType(dh) + " couldn't be cast to String"))
621+ let ay = cW[cV]
622+ let cY = split({
623+ let cZ = invoke(this, "claimWxREADONLY", [ay, ap], nil)
624+ if ($isInstanceOf(cZ, "String"))
625+ then cZ
626+ else throw(($getType(cZ) + " couldn't be cast to String"))
673627 }, e)
674- let di = dg[3]
675- let dj = dg[4]
676- let dk = (df :+ makeString(["%d%d", di, dj], e))
677- let dl = {
678- let dh = invoke(this, "claimWxBulkInternalREADONLY", [(dd + 1), de, as, dk], nil)
679- if ($isInstanceOf(dh, "List[Any]"))
680- then dh
681- else throw(($getType(dh) + " couldn't be cast to List[Any]"))
628+ let da = cY[3]
629+ let db = cY[4]
630+ let dc = (cX :+ makeString(["%d%d", da, db], e))
631+ let dd = {
632+ let cZ = invoke(this, "claimWxBulkInternalREADONLY", [(cV + 1), cW, ap, dc], nil)
633+ if ($isInstanceOf(cZ, "List[Any]"))
634+ then cZ
635+ else throw(($getType(cZ) + " couldn't be cast to List[Any]"))
682636 }
683- if ((dl == dl))
684- then $Tuple2(nil, dl)
637+ if ((dd == dd))
638+ then $Tuple2(nil, dd)
685639 else throw("Strict value is not equal to itself.")
686640 }
687641
688642
689643
690-@Callable(cl)
691-func claimWxBulkREADONLY (de,as) = {
692- let dk = invoke(this, "claimWxBulkInternalREADONLY", [0, de, as, nil], nil)
693- $Tuple2(nil, dk)
644+@Callable(ch)
645+func claimWxBulkREADONLY (cW,ap) = {
646+ let dc = invoke(this, "claimWxBulkInternalREADONLY", [0, cW, ap, nil], nil)
647+ $Tuple2(nil, dc)
694648 }
695649
696650
697651
698-@Callable(cl)
699-func claimWxREADONLY (at,as) = {
700- let bY = ar(as, at)
701- let bz = au(at)
702- let cL = av(at, as)
703- let bs = az(bY)
704- let bA = az(bz)
705- let ct = D(this, cL)
706- let bx = y(aX, ac(at))
707- let bC = getIntegerValue(aX, ad(bx))
708- let dm = C(aY, am())
709- let bD = C(aY, ao())
710- let dn = if ((bD > height))
652+@Callable(ch)
653+func claimWxREADONLY (aq,ap) = {
654+ let bU = ao(ap, aq)
655+ let bv = ar(aq)
656+ let cE = as(aq, ap)
657+ let bo = aw(bU)
658+ let bw = aw(bv)
659+ let cz = A(this, cE)
660+ let bt = v(aU, Z(aq))
661+ let by = getIntegerValue(aU, aa(bt))
662+ let de = z(aV, aj())
663+ let bz = z(aV, al())
664+ let df = if ((bz > height))
711665 then 0
712- else (height - bD)
713- let do = fraction((dm * dn), bC, f)
714- let dp = fraction(do, bs, bA)
715- let dq = bU(at, as, bx, 0)
716- let ce = dq._1
717- let cr = dq._2
718- let bT = dq._3
719- let cu = max([(ce - ct), g])
720- let dr = l(invoke(aZ, "claimWxBoostREADONLY", [at, as], nil))
721- let cT = max([p(dr[0]), 0])
722- let ds = r(dr[1])
723- let cU = cu
724- let cV = min([(cU * toBigInt(2)), toBigInt(cT)])
725- let cW = (cU + cV)
726- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", at, as, toString(cW), toString(ct), toString(cU), toString(cV), "soon"], e))
666+ else (height - bz)
667+ let dg = fraction((de * df), by, f)
668+ let dh = fraction(dg, bo, bw)
669+ let di = bQ(aq, ap, bt, 0)
670+ let ca = di._1
671+ let cw = di._2
672+ let bP = di._3
673+ let cB = max([(ca - cz), g])
674+ let dj = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil))
675+ let cM = max([m(dj[0]), 0])
676+ let dk = o(dj[1])
677+ let cN = cB
678+ let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
679+ let dl = (cN + cO)
680+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(dl), toString(cz), toString(cN), toString(cO), "soon"], e))
727681 }
728682
729683
730684
731-@Callable(cl)
732-func stakedByUserREADONLY (at,as) = {
733- let bs = valueOrElse(getInteger(ar(as, at)), 0)
734- $Tuple2(nil, bs)
735- }
736-
737-
738-
739-@Callable(cl)
740-func usersListTraversal (aB) = {
741- let cy = if ((toBase58String(cl.caller.bytes) == valueOrElse(getString(this, M()), "")))
685+@Callable(ch)
686+func usersListTraversal (ay) = {
687+ let cl = if ((toBase58String(ch.caller.bytes) == valueOrElse(getString(this, J()), "")))
742688 then true
743- else cm(cl)
744- if ((cy == cy))
689+ else ci(ch)
690+ if ((cl == cl))
745691 then {
746- let be = bc(aB)
747- let dt = getString(bb(aB))
748- let bk = getString(bd(be))
749- let n = dt
750- if ($isInstanceOf(n, "Unit"))
692+ let ba = aY(ay)
693+ let dm = getString(aX(ay))
694+ let bg = getString(aZ(ba))
695+ let k = dm
696+ if ($isInstanceOf(k, "Unit"))
751697 then {
752- let du = bk
753- if ($isInstanceOf(du, "Unit"))
698+ let dn = bg
699+ if ($isInstanceOf(dn, "Unit"))
754700 then $Tuple2(nil, false)
755- else if ($isInstanceOf(du, "String"))
701+ else if ($isInstanceOf(dn, "String"))
756702 then {
757- let dv = du
758- $Tuple2([StringEntry(bb(aB), dv)], true)
703+ let do = dn
704+ $Tuple2([StringEntry(aX(ay), do)], true)
759705 }
760706 else throw("Match error")
761707 }
762- else if ($isInstanceOf(n, "String"))
708+ else if ($isInstanceOf(k, "String"))
763709 then {
764- let aD = n
765- let ct = D(this, av(aB, aD))
766- let cp = y(aX, ac(aB))
767- let ce = bU(aB, aD, cp, 0)._1
768- let cu = (ce - ct)
769- let cv = true
770- let cw = if ((cu > g))
771- then invoke(this, "claimWxINTERNAL", [aB, aD, cv], nil)
710+ let aA = k
711+ let cz = A(this, as(ay, aA))
712+ let cA = v(aU, Z(ay))
713+ let ca = bQ(ay, aA, cA, 0)._1
714+ let cB = (ca - cz)
715+ let cC = if ((cB > g))
716+ then invoke(this, "claimWxINTERNAL", [ay, aA], nil)
772717 else unit
773- if ((cw == cw))
718+ if ((cC == cC))
774719 then {
775- let dw = getString(bi(be, aD))
776- let du = dw
777- if ($isInstanceOf(du, "Unit"))
778- then $Tuple2([DeleteEntry(bb(aB))], false)
779- else if ($isInstanceOf(du, "String"))
720+ let dp = getString(be(ba, aA))
721+ let dn = dp
722+ if ($isInstanceOf(dn, "Unit"))
723+ then $Tuple2([DeleteEntry(aX(ay))], false)
724+ else if ($isInstanceOf(dn, "String"))
780725 then {
781- let dx = du
782- $Tuple2([StringEntry(bb(aB), dx)], true)
726+ let dq = dn
727+ $Tuple2([StringEntry(aX(ay), dq)], true)
783728 }
784729 else throw("Match error")
785730 }
786731 else throw("Strict value is not equal to itself.")
787732 }
788733 else throw("Match error")
789734 }
790735 else throw("Strict value is not equal to itself.")
791736 }
792737
793738
794739
795-@Callable(cl)
796-func onModifyWeight (at,bx) = if ((cl.caller != aX))
740+@Callable(ch)
741+func onModifyWeight (aq,bt) = if ((ch.caller != aU))
797742 then throw("permissions denied")
798743 else {
799- let dy = bw(at, bx, 0)
800- let bu = dy._1
801- let bW = dy._2
802- let bX = dy._3
803- bW
744+ let dr = bs(aq, bt, 0)
745+ let bq = dr._1
746+ let bS = dr._2
747+ let bT = dr._3
748+ bS
804749 }
805750
806751
807-@Verifier(dz)
808-func dA () = {
809- let dB = {
810- let n = ch()
811- if ($isInstanceOf(n, "ByteVector"))
752+@Verifier(ds)
753+func dt () = {
754+ let du = {
755+ let k = cd()
756+ if ($isInstanceOf(k, "ByteVector"))
812757 then {
813- let cn = n
814- cn
758+ let cj = k
759+ cj
815760 }
816- else if ($isInstanceOf(n, "Unit"))
817- then dz.senderPublicKey
761+ else if ($isInstanceOf(k, "Unit"))
762+ then ds.senderPublicKey
818763 else throw("Match error")
819764 }
820- sigVerify(dz.bodyBytes, dz.proofs[0], dB)
765+ sigVerify(ds.bodyBytes, ds.proofs[0], du)
821766 }
822767

github/deemru/w8io/873ac7e 
370.17 ms