tx · ETUDMX2UmsuzDk47Kg64MXgki9cLjMo4ThXuaX3cmT5T

3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz:  -0.02200000 Waves

2023.01.09 17:42 [2397543] smart account 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz > SELF 0.00000000 Waves

{ "type": 13, "id": "ETUDMX2UmsuzDk47Kg64MXgki9cLjMo4ThXuaX3cmT5T", "fee": 2200000, "feeAssetId": null, "timestamp": 1673275373039, "version": 1, "sender": "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz", "senderPublicKey": "D28XoueZWsMfm8Y5pa6C5ZFuYoWgre2Wm8tzJANJgMnq", "proofs": [ "3viKeQAt9FnYs3QMayw9W5oZpvx4PzT7MaSjVZNxq7ukPJEnZ7SzcmyKvgcDzaWb7tDcqtdQA4zQ9ddhj3LCF7gU" ], "script": "base64:BgL1HggCEgMKAQgSAwoBCBIDCgEIEgASABIECgIIARIDCgEIEgQKAggIEgYKBAEYCBgSBAoCGAgSBAoCCAgSAwoBCBIECgIICCIGU0NBTEU4IgVNVUxUOCIHU0NBTEUxOCIGTVVMVDE4IgNTRVAiDlBPT0xXRUlHSFRNVUxUIgp6ZXJvQmlnSW50IglvbmVCaWdJbnQiCWFzQW55TGlzdCIDdmFsIgckbWF0Y2gwIgp2YWxBbnlMeXN0IgVhc0ludCIGdmFsSW50Ighhc1N0cmluZyIGdmFsU3RyIgxhc0J5dGVWZWN0b3IiBnZhbEJpbiIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbCIMZ2V0SW50T3JaZXJvIg9nZXRJbnRPckRlZmF1bHQiCmRlZmF1bHRWYWwiDGdldEludE9yRmFpbCIZZ2V0QmlnSW50RnJvbVN0cmluZ09yWmVybyIcZ2V0QmlnSW50RnJvbVN0cmluZ09yRGVmYXVsdCIBcyIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiD3Jlc3VsdFNjYWxlTXVsdCIRa2V5RmFjdG9yeUFkZHJlc3MiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcCIZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcCIUSWR4RmFjdG9yeUNmZ0lkb0RhcHAiFUlkeEZhY3RvcnlDZmdUZWFtRGFwcCIZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcCIVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwIhlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwIg1rZXlGYWN0b3J5Q2ZnIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIWa2V5U3RhYmxlUG9vbEFkZG9uQWRkciIMa2V5QWRkb25BZGRyIhprZXlGYWN0b3J5THAyQXNzZXRzTWFwcGluZyIKbHBBc3NldFN0ciIQa2V5RmFjdG9yeUxwTGlzdCIma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiFGtleUZhY3RvcnlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiCnJlYWRMcExpc3QiB2ZhY3RvcnkiFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsIhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiCmZhY3RvcnlDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudCIha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50IhVrZXlFbWlzc2lvblN0YXJ0QmxvY2siG2tleUVtaXNzaW9uRHVyYXRpb25JbkJsb2NrcyITa2V5RW1pc3Npb25FbmRCbG9jayIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIMbHBBc3NldElkU3RyIg5rZXlTdGFrZWRUb3RhbCIQa2V5Q2xhaW1lZEJ5VXNlciIZa2V5Q2xhaW1lZEJ5VXNlck1pblJld2FyZCIba2V5Q2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkIg9rZXlDbGFpbWVkVG90YWwiCnJlYWRTdGFrZWQiFWtleUxhc3RUb3RhbExwQmFsYW5jZSIJbHBBc3NldElkIhRrZXlMYXN0VXNlckxwQmFsYW5jZSILdXNlckFkZHJlc3MiGWtleVRvdGFsTHBCYWxhbmNlSW50ZWdyYWwiGGtleVVzZXJMcEJhbGFuY2VJbnRlZ3JhbCIma2V5VG90YWxMcEJhbGFuY2VJbnRlZ3JhbExhc3RVcGRIZWlnaHQiJWtleVVzZXJMcEJhbGFuY2VJbnRlZ3JhbExhc3RVcGRIZWlnaHQiEmtleVd4UGVyTHBJbnRlZ3JhbCIfa2V5V3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodCIQa2V5V3hUb0NsYWltVXNlciIja2V5V3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHQiCmtleVd4UGVyTHAiDWtleVd4UGVyTHBYMTgiGmtleVd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0IhlrZXlPcGVyYXRpb25IaXN0b3J5UmVjb3JkIgR0eXBlIgZ0eElkNTgiE2Zvcm1hdEhpc3RvcnlSZWNvcmQiBmFtb3VudCIVT3BlcmF0aW9uSGlzdG9yeUVudHJ5IgR0eElkIg5mYWN0b3J5QWRkcmVzcyIPZmFjdG9yeUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IgtrZXlOZXh0VXNlciIQZ2V0VXNlcnNMaXN0TmFtZSILa2V5TGlzdEhlYWQiCGxpc3ROYW1lIgtrZXlMaXN0U2l6ZSILa2V5TGlzdFByZXYiAmlkIgtrZXlMaXN0TmV4dCIMY29udGFpbnNOb2RlIgpoZWFkT3JVbml0IgpwcmV2T3JVbml0IgpuZXh0T3JVbml0IhFpbnNlcnROb2RlQWN0aW9ucyIIbGlzdFNpemUiCWNoZWNrTm9kZSIRZGVsZXRlTm9kZUFjdGlvbnMiG2NhbGNXeFBlckxwSW50ZWdyYWxVc2VyTGFzdCIMc3Rha2VkQnlVc2VyIiZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybyISd3hQZXJMcEludGVncmFsTmV3Ihp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdEtFWSIUcmVmcmVzaFBvb2xJTlRFR1JBTFMiDnBvb2xBZGRyZXNzU3RyIg1scERlbHRhQW1vdW50Ig5zdGFrZWRUb3RhbEtFWSILc3Rha2VkVG90YWwiEm5vblplcm9TdGFrZWRUb3RhbCIKcG9vbFdlaWdodCISZW1pc3Npb25TdGFydEJsb2NrIgVNVUxUMyIUd3hFbWlzc2lvblBlckJsb2NrWDMiGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMyISd3hQZXJMcEludGVncmFsS0VZIh93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0S0VZIgp3eFBlckxwS0VZIhx3eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0Ig93eFBlckxwSW50ZWdyYWwiD3d4UGVyTHBPclplcm9YMyICZGgiCXd4UGVyTHBYMyIOc3Rha2VkVG90YWxOZXciFW5vblplcm9TdGFrZWRUb3RhbE5ldyIMd3hQZXJMcFgzTmV3Ih93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0TmV3IgVkZWJ1ZyIQcmVmcmVzaElOVEVHUkFMUyINJHQwMTQyNzQxNDM5NiIRcG9vbEludGVncmFsU1RBVEUiCXBvb2xERUJVRyIPc3Rha2VkQnlVc2VyS0VZIhB3eFRvQ2xhaW1Vc2VyS0VZIiN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWSINd3hUb0NsYWltVXNlciIXd3hQZXJMcEludGVncmFsVXNlckxhc3QiBk1VTFQxMSIQd3hUb0NsYWltVXNlck5ldyIad3hQZXJMcEludGVncmFsVXNlckxhc3ROZXciI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0TmV3IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0Ih1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIVcGVybWlzc2lvbkRlbmllZEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhFmYWN0b3J5QWRkcmVzc1N0ciILY2hlY2tDYWxsZXIiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiBWNoZWtzIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iA3BtdCIJY2FsbGVyU3RyIg0kdDAxODgzMjE4OTQ5Ig1pbnRlZ3JhbFNUQVRFIgtsaXN0QWN0aW9ucyIJcG9vbEFkZG9uIg1jbGFpbWVkQnlVc2VyIgtwb29sQWRkcmVzcyIQYXZhaWxhYmxlVG9DbGFpbSIBciIGcmVzdWx0IhBjbGFpbWVkQnlVc2VyS0VZIg9jbGFpbWVkVG90YWxLRVkiGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkiG2NsYWltZWRCeVVzZXJCb29zdFJld2FyZEtFWSIWY2xhaW1lZEJ5VXNlck1pblJld2FyZCIYY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkIgxjbGFpbWVkVG90YWwiDSR0MDIyNzg3MjI4OTkiEnd4QW1vdW50Qm9vc3RUb3RhbCINbWluUmV3YXJkUGFydCIPYm9vc3RSZXdhcmRQYXJ0Igl3eEFzc2V0SWQiCWVtaXRCb29zdCISY2xhaW1lZEJ5VXNlclZhbHVlIh5jbGFpbWVkQnlVc2VyTWluUmV3YXJkUGx1c1BhcnQiK2NsYWlt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ZAkBAVIABQFlAQJhZgECYWcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWcFAUwBAmFoAQJhZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhZwUBTwECYWkBAmFnCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFnBQFLAQJhagACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAECYWsAAh4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAmFsAAIaJXMlc19fZW1pc3Npb25fX3N0YXJ0QmxvY2sBAmFtAAIYJXMlc19fZW1pc3Npb25fX2R1cmF0aW9uAQJhbgACGCVzJXNfX2VtaXNzaW9uX19lbmRCbG9jawECYW8CAmFwAmFxCQC5CQIJAMwIAgIOJXMlcyVzX19zdGFrZWQJAMwIAgUCYXAJAMwIAgUCYXEFA25pbAUBZQECYXIBAmFxCQCsAgICFyVzJXMlc19fc3Rha2VkX190b3RhbF9fBQJhcQECYXMCAmFxAmFwCQC5CQIJAMwIAgIPJXMlcyVzX19jbGFpbWVkCQDMCAIFAmFwCQDMCAIFAmFxBQNuaWwFAWUBAmF0AgJhcQJhcAkAuQkCCQDMCAICGCVzJXMlc19fY2xhaW1lZE1pblJld2FyZAkAzAgCBQJhcAkAzAgCBQJhcQUDbmlsBQFlAQJhdQICYXECYXAJALkJAgkAzAgCAholcyVzJXNfX2NsYWltZWRCb29zdFJld2FyZAkAzAgCBQJhcAkAzAgCBQJhcQUDbmlsBQFlAQJhdgECYXEJALkJAgkAzAgCAhYlcyVzJXNfX2NsYWltZWRfX3RvdGFsCQDMCAIFAmFxBQNuaWwFAWUBAmF3AQF1CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAXUAAAECYXgBAmF5CQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmF5CQDMCAICBXRvdGFsCQDMCAICA2JhbAUDbmlsBQFlAQJhegICYXkCYUEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYXkJAMwIAgUCYUEJAMwIAgIDYmFsBQNuaWwFAWUBAmFCAQJheQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQJheQkAzAgCAgV0b3RhbAkAzAgCAgZiYWxJTlQFA25pbAUBZQECYUMCAmF5AmFBCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmF5CQDMCAIFAmFBCQDMCAICBmJhbElOVAUDbmlsBQFlAQJhRAECYXkJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYXkJAMwIAgIFdG90YWwJAMwIAgIHbGFzdFVwZAUDbmlsBQFlAQJhRQICYXkCYUEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYXkJAMwIAgUCYUEJAMwIAgIHbGFzdFVwZAUDbmlsBQFlAQJhRgECYXkJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJheQkAzAgCAgZjb21tb24JAMwIAgIFbHBJbnQFA25pbAUBZQECYUcBAmF5CQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgUCYXkJAMwIAgIGY29tbW9uCQDMCAICBmxwSW50SAUDbmlsBQFlAQJhSAICYXkCYUEJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJheQkAzAgCBQJhQQkAzAgCAgVscEludAUDbmlsBQFlAQJhSQICYXkCYUEJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJheQkAzAgCBQJhQQkAzAgCAgZscEludEgFA25pbAUBZQECYUoBAmF5CQC5CQIJAMwIAgICJXMJAMwIAgUCYXkJAMwIAgIHd3hQZXJMcAUDbmlsBQFlAQJhSwECYXkJALkJAgkAzAgCAgIlcwkAzAgCBQJheQkAzAgCAgp3eFBlckxwWDE4BQNuaWwFAWUBAmFMAgJheQJhQQkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmF5CQDMCAIFAmFBCQDMCAICBXVJbnRMBQNuaWwFAWUBAmFNAwJhTgJhQQJhTwkAuQkCCQDMCAICESVzJXMlcyVzX19oaXN0b3J5CQDMCAIFAmFOCQDMCAIFAmFBCQDMCAIFAmFPBQNuaWwFAWUBAmFQBAJhQQJheQJhTgJhUQkAuQkCCQDMCAICDCVzJXMlcyVkJWQlZAkAzAgCBQJhQQkAzAgCBQJheQkAzAgCBQJhTgkAzAgCCQCkAwEFBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQUCYVEFA25pbAUBZQECYVIFAmFOAmFBAmF5AmFRAmFTCQELU3RyaW5nRW50cnkCCQECYU0DBQJhTgUCYUEJANgEAQUCYVMJAQJhUAQFAmFBBQJheQUCYU4FAmFRAAJhVAkBAXMCBQR0aGlzCQEBSQAAAmFVCQERQGV4dHJOYXRpdmUoMTA2MikBBQJhVAACYWcJAQJhZQEFAmFVAAJhVgkBAmFoAQUCYWcAAmFXCQECYWYBBQJhZwECYVgBAmF5CQC5CQIJAMwIAgIEJXMlcwkAzAgCBQJheQkAzAgCAghuZXh0VXNlcgUDbmlsBQFlAQJhWQECYXkJALkJAgkAzAgCAgV1c2VycwkAzAgCBQJheQUDbmlsBQFlAQJhWgECYmEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYmEJAMwIAgIEaGVhZAUDbmlsBQFlAQJiYgECYmEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYmEJAMwIAgIEc2l6ZQUDbmlsBQFlAQJiYwICYmECYmQJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJiYQkAzAgCBQJiZAkAzAgCAgRwcmV2BQNuaWwFAWUBAmJlAgJiYQJiZAkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmJhCQDMCAIFAmJkCQDMCAICBG5leHQFA25pbAUBZQECYmYCAmJhAmJkBAJiZwkAnQgCBQR0aGlzCQECYVoBBQJiYQQCYmgJAJ0IAgUEdGhpcwkBAmJjAgUCYmEFAmJkBAJiaQkAnQgCBQR0aGlzCQECYmUCBQJiYQUCYmQDAwkAAAIFAmJkCQELdmFsdWVPckVsc2UCBQJiZwIABgkBAiE9AgUCYmgFBHVuaXQGCQECIT0CBQJiaQUEdW5pdAECYmoCAmJhAmJkBAJiZwkAnQgCBQR0aGlzCQECYVoBBQJiYQQCYmsJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJiAQUCYmEAAAQCYmwDCQEBIQEJAQJiZgIFAmJhBQJiZAYJAAIBAgtOb2RlIGV4aXN0cwMJAAACBQJibAUCYmwJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYmIBBQJiYQkAZAIFAmJrAAEFA25pbAMJAQIhPQIFAmJnBQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZQIFAmJhBQJiZAkBBXZhbHVlAQUCYmcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJjAgUCYmEJAQV2YWx1ZQEFAmJnBQJiZAUDbmlsBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFaAQUCYmEFAmJkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmJtAgJiYQJiZAQCYmcJAJ0IAgUEdGhpcwkBAmFaAQUCYmEEAmJrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiYgEFAmJhAAAEAmJoCQCdCAIFBHRoaXMJAQJiYwIFAmJhBQJiZAQCYmkJAJ0IAgUEdGhpcwkBAmJlAgUCYmEFAmJkCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiYgEFAmJhCQBlAgUCYmsAAQUDbmlsAwMJAQIhPQIFAmJoBQR1bml0CQECIT0CBQJiaQUEdW5pdAcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJlAgUCYmEJAQV2YWx1ZQEFAmJoCQEFdmFsdWUBBQJiaQkAzAgCCQELU3RyaW5nRW50cnkCCQECYmMCBQJiYQkBBXZhbHVlAQUCYmkJAQV2YWx1ZQEFAmJoCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJiYwIFAmJhBQJiZAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmUCBQJiYQUCYmQFA25pbAMJAQIhPQIFAmJpBQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhWgEFAmJhCQEFdmFsdWUBBQJiaQkAzAgCCQELRGVsZXRlRW50cnkBCQECYmUCBQJiYQUCYmQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJjAgUCYmEJAQV2YWx1ZQEFAmJpBQNuaWwDCQECIT0CBQJiaAUEdW5pdAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmMCBQJiYQUCYmQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJlAgUCYmEJAQV2YWx1ZQEFAmJoBQNuaWwDCQAAAgUCYmQJAQt2YWx1ZU9yRWxzZQIFAmJnAgAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFaAQUCYmEFA25pbAkAAgEJAKwCAgkArAICCQCsAgICDmludmFsaWQgbm9kZTogBQJiYQIBLgUCYmQBAmJuBAJibwJicAJicQJicgMDCQAAAgUCYnAFAWcJAL8CAgUCYm8FAWcHBQFnAwkAAAIFAmJvBQFnBQJicQMDCQC/AgIFAmJwBQFnCQC/AgIFAmJvBQFnBwkBBXZhbHVlAQkAqAMBCQEBcwIFBHRoaXMFAmJyCQACAQItY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0OiB1bmV4cGVjdGVkIHN0YXRlAQJicwMCYXECYnQCYnUEAmJ2CQECYXIBBQJhcQQCYncJALYCAQkBAmF3AQUCYnYEAmJ4AwkAAAIFAmJ3BQFnBQFoBQJidwQCYnkJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmFVCQECYWEBBQJidAQCYnoJAQF6AgUCYVYJAQJhbAAEAmJBAOgHBAJiQgkAaAIJAQF6AgUCYVYJAQJhagAFAmJBBAJiQwkAawMFAmJCBQJieQkAaAIFAWYAAwQCYkQJAQJhRgEFAmFxBAJiRQkBAmFHAQUCYXEEAmJGCQECYUoBBQJhcQQCYkcJAQF4AwUEdGhpcwUCYkUFAmJ6BAJiSAkBAUECBQR0aGlzBQJiRAQCYkkAAAQCYkoJAJYDAQkAzAgCCQBlAgUGaGVpZ2h0BQJiRwkAzAgCAAAFA25pbAQCYksDCQECIT0CBQJiSQAACQC2AgEFAmJJCQC8AgMJALYCAQUCYkMJALYCAQUBYgUCYngEAmJMCQC3AgIFAmJ3CQC2AgEFAmJ1BAJiTQMJAAACBQJiTAUBZwUBaAUCYkwEAmJxCQC3AgIFAmJICQC5AgIFAmJLCQC2AgEFAmJKBAJiTgkAugICCQC2AgEFAmJDBQJiTQQCYk8FBmhlaWdodAQCYlAJALkJAgkAzAgCCQCmAwEFAmJxCQDMCAIJAKQDAQUCYkoJAMwIAgkApgMBBQJiSwkAzAgCCQCmAwEFAmJ3CQDMCAIJAKQDAQUCYkMJAMwIAgkApAMBBQJiQgkAzAgCCQCkAwEFAmJ5BQNuaWwCAjo6CQCVCgMFAmJxCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJECQCmAwEFAmJxCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiRQUCYk8JAMwIAgkBC1N0cmluZ0VudHJ5AgUCYkYJAKYDAQUCYk4FA25pbAUCYlABAmJRBAJhcQJhcAJidAJidQQCYlIJAQJicwMFAmFxBQJidAUCYnUEAmJxCAUCYlICXzEEAmJTCAUCYlICXzIEAmJUCAUCYlICXzMEAmJBAOgHBAJiVQkBAmFvAgUCYXAFAmFxBAJibwkBAmF3AQUCYlUEAmJWCQECYUgCBQJhcQUCYXAEAmJXCQECYUkCBQJhcQUCYXAEAmJyCQECYUwCBQJhcQUCYXAEAmJYCQEBQQIFBHRoaXMFAmJWBAJicAkBAXcCBQR0aGlzBQJiVwQCYlkJAQJibgQJALYCAQUCYm8JALYCAQUCYnAFAmJxBQJicgQCYloJAGgCBQFiBQJiQQQCY2EJAJgDAQkAzAgCCQC3AgIFAmJYCQC8AgMJALgCAgUCYnEFAmJZCQC2AgEFAmJvCQC2AgEFAmJaCQDMCAIFAWcFA25pbAQCY2IFAmJxBAJjYwUGaGVpZ2h0BAJiUAkAuQkCCQDMCAIJAKYDAQUCYlgJAMwIAgkApgMBBQJiWQkAzAgCCQCkAwEFAmJvCQDMCAIFAmJUCQDMCAIJAKQDAQUGaGVpZ2h0BQNuaWwCAjo6CQCVCgMFAmNhCQDOCAIFAmJTCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJWCQCmAwEFAmNhCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiVwUCY2MJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYnIJAKYDAQUCY2IFA25pbAUCYlABAmNkAAQBawkAoggBCQEBUwADCQABAgUBawIGU3RyaW5nBAFDBQFrCQDZBAEFAUMDCQABAgUBawIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJjZQAEAWsJAKIIAQkBAVQAAwkAAQIFAWsCBlN0cmluZwQBQwUBawkA2QQBBQFDAwkAAQIFAWsCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACY2YJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAECY2cBAmNoAwkAAAIIBQJjaAZjYWxsZXIFBHRoaXMGBQJjZgECY2kBAmNoBAFrCQECY2QAAwkAAQIFAWsCCkJ5dGVWZWN0b3IEAmNqBQFrAwkAAAIIBQJjaA9jYWxsZXJQdWJsaWNLZXkFAmNqBgUCY2YDCQABAgUBawIEVW5pdAMJAAACCAUCY2gGY2FsbGVyBQR0aGlzBgUCY2YJAAIBAgtNYXRjaCBlcnJvcg0CY2gBC2NvbnN0cnVjdG9yAQJjawQCY2wJAQJjaQEFAmNoAwkAAAIFAmNsBQJjbAkAzAgCCQELU3RyaW5nRW50cnkCCQEBSQAFAmNrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY2gBDWNvbnN0cnVjdG9yVjIBAmNtBAJjbgkAzAgCCQECY2kBBQJjaAkAzAgCAwkBAiE9AgkApggBBQJjbQUEdW5pdAYCKGludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MFA25pbAMJAAACBQJjbgUCY24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUoABQJjbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoAQpzZXRNYW5hZ2VyAQJjbwQCY2wJAQJjaQEFAmNoAwkAAAIFAmNsBQJjbAQCY3AJANkEAQUCY28DCQAAAgUCY3AFAmNwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAUCY28FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjaAEOY29uZmlybU1hbmFnZXIABAJjcQkBAmNlAAQCY3IDCQEJaXNEZWZpbmVkAQUCY3EGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNyBQJjcgQCY3MDCQAAAggFAmNoD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCY3EGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNzBQJjcwkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwAJANgEAQkBBXZhbHVlAQUCY3EJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVQABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY2gBBXN0YWtlAAMJAQIhPQIJAJADAQgFAmNoCHBheW1lbnRzAAEJAAIBAjRpbnZhbGlkIHBheW1lbnQgLSBleGFjdCBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBAJjdAkAkQMCCAUCY2gIcGF5bWVudHMAAAQCYXkJAQV2YWx1ZQEIBQJjdAdhc3NldElkBAJhcQkA2AQBBQJheQQCYVEIBQJjdAZhbW91bnQEAmJ0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVUJAQFXAQUCYXEJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJhcQQCY3UJAKUIAQgFAmNoBmNhbGxlcgQCYXADCQAAAgUCY3UFAmJ0CQClCAEIBQJjaAxvcmlnaW5DYWxsZXIFAmN1BAJiVQkBAmFvAgUCYXAFAmFxBAJidgkBAmFyAQUCYXEEAmJvCQECYXcBBQJiVQQCYncJAQJhdwEFAmJ2BAJjdgkBAmJRBAUCYXEFAmFwBQJidAUCYVEEAmNhCAUCY3YCXzEEAmN3CAUCY3YCXzIEAmJQCAUCY3YCXzMEAmJhCQECYVkBBQJhcQQCY3gDCQECYmYCBQJiYQUCYXAFA25pbAkBAmJqAgUCYmEFAmFwCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYlUJAGQCBQJibwUCYVEJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJ2CQBkAgUCYncFAmFRCQDMCAIJAQJhUgUCBXN0YWtlBQJhcAUCYXEFAmFRCAUCY2gNdHJhbnNhY3Rpb25JZAUDbmlsBQJjdwUCY3gCY2gBB3Vuc3Rha2UCAmFxAmFRBAJheQkA2QQBBQJhcQQCYnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhVQkBAVcBBQJhcQkArAICAhV1bnN1cHBvcnRlZCBscCBhc3NldCAFAmFxBAJjeQkBC3ZhbHVlT3JFbHNlAgkAnQgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQJidAkBAVYABQJidAQCY3UJAKUIAQgFAmNoBmNhbGxlcgQCYXADAwkAAAIFAmN1BQJidAYJAAACBQJjdQUCY3kJAKUIAQgFAmNoDG9yaWdpbkNhbGxlcgUCY3UEAmJVCQECYW8CBQJhcAUCYXEEAmJ2CQECYXIBBQJhcQQCYm8JAQJhdwEFAmJVBAJidwkBAmF3AQUCYnYEAmN3CAkBAmJRBAUCYXEFAmFwBQJidAkBAS0BBQJhUQJfMgQCYmEJAQJhWQEFAmFxBAJjeAMDCQECYmYCBQJiYQUCYXAJAAACBQJhUQUCYm8HCQECYm0CBQJiYQUCYXAFA25pbAQCY3oJAQFBAgUEdGhpcwkBAmFzAgUCYXEFAmFwBAJjQQkBAXYCBQJhVQkBAVoBBQJhcQQCY2EICQECYlEEBQJhcQUCYXAFAmNBAAACXzEEAmNCCQC4AgIFAmNhBQJjegQCY0MDCQC/AgIFAmNCBQFnCQD8BwQFBHRoaXMCD2NsYWltV3hJTlRFUk5BTAkAzAgCBQJhcQkAzAgCBQJhcAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCY0MFAmNDAwkAZgIFAmFRBQJibwkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIOcGFzc2VkIGFtb3VudD0JAKQDAQUCYVECGyBpcyBncmVhdGVyIHRoYW4gYXZhaWxhYmxlPQkApAMBBQJibwIMLiBscEFzc2V0SWQ9BQJhcQISLiBzdGFrZWRCeVVzZXJLRVk9BQJiVQkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJVCQBlAgUCYm8FAmFRCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJidgkAZQIFAmJ3BQJhUQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCY2gGY2FsbGVyBQJhUQUCYXkJAMwIAgkBAmFSBQIHdW5zdGFrZQUCYXAFAmFxBQJhUQgFAmNoDXRyYW5zYWN0aW9uSWQFA25pbAUCY3cFAmN4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoAQdjbGFpbVd4AQJhcQQCYXAJAKUIAQgFAmNoBmNhbGxlcgQCY0QJAPwHBAUEdGhpcwIPY2xhaW1XeElOVEVSTkFMCQDMCAIFAmFxCQDMCAIFAmFwBQNuaWwFA25pbAkAlAoCBQNuaWwFAmNEAmNoAQ9jbGFpbVd4SU5URVJOQUwCAmFxAmFwBAJjbAkBAmNnAQUCY2gDCQAAAgUCY2wFAmNsBAJhQQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFAmFwAiVjbGFpbVd4SU5URVJOQUw6IGludmFsaWQgdXNlciBhZGRyZXNzBAJidAkBAXYCBQJhVQkBAVoBBQJhcQQCY0UJAQJhcwIFAmFxBQJhcAQCY0YJAQJhdgEFAmFxBAJjRwkBAmF0AgUCYXEFAmFwBAJjSAkBAmF1AgUCYXEFAmFwBAJjegkBAUECBQR0aGlzBQJjRQQCY0kJAQFBAgUEdGhpcwUCY0cEAmNKCQEBQQIFBHRoaXMFAmNIBAJjSwkBAUECBQR0aGlzBQJjRgQCY0wJAQJiUQQFAmFxBQJhcAUCYnQAAAQCY2EIBQJjTAJfMQQCY3cIBQJjTAJfMgQCYlAIBQJjTAJfMwQCY0IJAJgDAQkAzAgCCQC4AgIFAmNhBQJjegkAzAgCBQFnBQNuaWwDCQDAAgIFAWcFAmNCCQACAQIQbm90aGluZyB0byBjbGFpbQQCY00JAJYDAQkAzAgCCQEBbQEJAJEDAgkBAWkBCQD8BwQFAmFXAgxjbGFpbVd4Qm9vc3QJAMwIAgUCYXEJAMwIAgUCYXAFA25pbAUDbmlsAAAJAMwIAgAABQNuaWwEAmNOBQJjQgQCY08JAJkDAQkAzAgCCQC5AgIFAmNOCQC2AgEAAgkAzAgCCQC2AgEFAmNNBQNuaWwEAmNQCQEBcQEJAJEDAgkBAWkBCQD8BwQFAmFWAgRlbWl0CQDMCAIJAKADAQUCY04FA25pbAUDbmlsAAAEAmNRCQEBaQEJAPwHBAUCYVYCBGVtaXQJAMwIAgkAoAMBBQJjTwUDbmlsBQNuaWwDCQAAAgUCY1EFAmNRBAJjUgkAtwICBQJjegUCY0IEAmNTCQC3AgIFAmNJBQJjTgQCY1QJALcCAgUCY0kFAmNOBAJjVQkAtwICBQJjSQUCY04JAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0UJAKYDAQUCY1IJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0cJAKYDAQUCY1MJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0gJAKYDAQUCY1QJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0YJAKYDAQUCY1UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUEJAKADAQUCY04FAmNQCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFBCQCgAwEFAmNPBQJjUAkAzAgCCQECYVIFAgVjbGFpbQUCYXAFAmFxCQCgAwEFAmNCCAUCY2gNdHJhbnNhY3Rpb25JZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoARtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkEAmNWAmNXAmFwAmNYAwkAAAIFAmNWCQCQAwEFAmNXCQCUCgIFA25pbAUCY1gEAmF5CQCRAwIFAmNXBQJjVgQCY1kJALUJAgoAAmNaCQD8BwQFBHRoaXMCD2NsYWltV3hSRUFET05MWQkAzAgCBQJheQkAzAgCBQJhcAUDbmlsBQNuaWwDCQABAgUCY1oCBlN0cmluZwUCY1oJAAIBCQCsAgIJAAMBBQJjWgIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBQFlBAJkYQkAkQMCBQJjWQADBAJkYgkAkQMCBQJjWQAEBAJkYwkAzQgCBQJjWAkAuQkCCQDMCAICBCVkJWQJAMwIAgUCZGEJAMwIAgUCZGIFA25pbAUBZQQCZGQKAAJjWgkA/AcEBQR0aGlzAhtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkJAMwIAgkAZAIFAmNWAAEJAMwIAgUCY1cJAMwIAgUCYXAJAMwIAgUCZGMFA25pbAUDbmlsAwkAAQIFAmNaAglMaXN0W0FueV0FAmNaCQACAQkArAICCQADAQUCY1oCHiBjb3VsZG4ndCBiZSBjYXN0IHRvIExpc3RbQW55XQMJAAACBQJkZAUCZGQJAJQKAgUDbmlsBQJkZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjaAETY2xhaW1XeEJ1bGtSRUFET05MWQICY1cCYXAEAmRjCQD8BwQFBHRoaXMCG2NsYWltV3hCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUCY1cJAMwIAgUCYXAJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmRjAmNoAQ9jbGFpbVd4UkVBRE9OTFkCAmFxAmFwBAJiVQkBAmFvAgUCYXAFAmFxBAJidgkBAmFyAQUCYXEEAmNFCQECYXMCBQJhcQUCYXAEAmJvCQECYXcBBQJiVQQCYncJAQJhdwEFAmJ2BAJjegkBAUECBQR0aGlzBQJjRQQCYnQJAQF2AgUCYVUJAQFaAQUCYXEEAmJ5CQERQGV4dHJOYXRpdmUoMTA1MCkCBQJhVQkBAmFhAQUCYnQEAmRlCQEBegIFAmFWCQECYWoABAJiegkBAXoCBQJhVgkBAmFsAAQCZGYDCQBmAgUCYnoFBmhlaWdodAAACQBlAgUGaGVpZ2h0BQJiegQCZGcJAGsDCQBoAgUCZGUFAmRmBQJieQUBZgQCZGgJAGsDBQJkZwUCYm8FAmJ3BAJkaQkBAmJRBAUCYXEFAmFwBQJidAAABAJjYQgFAmRpAl8xBAJjdwgFAmRpAl8yBAJiUAgFAmRpAl8zBAJjQgkAmAMBCQDMCAIJALgCAgUCY2EFAmN6CQDMCAIFAWcFA25pbAQCZGoJAQFpAQkA/AcEBQJhVwIUY2xhaW1XeEJvb3N0UkVBRE9OTFkJAMwIAgUCYXEJAMwIAgUCYXAFA25pbAUDbmlsBAJjTQkAlgMBCQDMCAIJAQFtAQkAkQMCBQJkagAACQDMCAIAAAUDbmlsBAJkawkBAW8BCQCRAwIFAmRqAAEEAmNOBQJjQgQCY08JAJkDAQkAzAgCCQC5AgIFAmNOCQC2AgEAAgkAzAgCCQC2AgEFAmNNBQNuaWwEAmRsCQC3AgIFAmNOBQJjTwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lcyVzJWQlZCVkJWQlcwkAzAgCBQJhcQkAzAgCBQJhcAkAzAgCCQCmAwEFAmRsCQDMCAIJAKYDAQUCY3oJAMwIAgkApgMBBQJjTgkAzAgCCQCmAwEFAmNPCQDMCAICBHNvb24FA25pbAUBZQJjaAESdXNlcnNMaXN0VHJhdmVyc2FsAQJheQQCY2wDCQAAAgkA2AQBCAgFAmNoBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBSgACAAYJAQJjaQEFAmNoAwkAAAIFAmNsBQJjbAQCYmEJAQJhWQEFAmF5BAJkbQkAoggBCQECYVgBBQJheQQCYmcJAKIIAQkBAmFaAQUCYmEEAWsFAmRtAwkAAQIFAWsCBFVuaXQEAmRuBQJiZwMJAAECBQJkbgIEVW5pdAkAlAoCBQNuaWwHAwkAAQIFAmRuAgZTdHJpbmcEAmRvBQJkbgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhWAEFAmF5BQJkbwUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFAWsCBlN0cmluZwQCYUEFAWsEAmN6CQEBQQIFBHRoaXMJAQJhcwIFAmF5BQJhQQQCY0EJAQF2AgUCYVUJAQFaAQUCYXkEAmNhCAkBAmJRBAUCYXkFAmFBBQJjQQAAAl8xBAJjQgkAuAICBQJjYQUCY3oEAmNDAwkAvwICBQJjQgUBZwkA/AcEBQR0aGlzAg9jbGFpbVd4SU5URVJOQUwJAMwIAgUCYXkJAMwIAgUCYUEFA25pbAUDbmlsBQR1bml0AwkAAAIFAmNDBQJjQwQCZHAJAKIIAQkBAmJlAgUCYmEFAmFBBAJkbgUCZHADCQABAgUCZG4CBFVuaXQJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQECYVgBBQJheQUDbmlsBwMJAAECBQJkbgIGU3RyaW5nBAJkcQUCZG4JAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYVgBBQJheQUCZHEFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoAQ5vbk1vZGlmeVdlaWdodAICYXECYnQDCQECIT0CCAUCY2gGY2FsbGVyBQJhVQkAAgECEnBlcm1pc3Npb25zIGRlbmllZAQCZHIJAQJicwMFAmFxBQJidAAABAJicQgFAmRyAl8xBAJiUwgFAmRyAl8yBAJiVAgFAmRyAl8zBQJiUwECZHMBAmR0AAQCZHUEAWsJAQJjZAADCQABAgUBawIKQnl0ZVZlY3RvcgQCY2oFAWsFAmNqAwkAAQIFAWsCBFVuaXQIBQJkcw9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZHMJYm9keUJ5dGVzCQCRAwIIBQJkcwZwcm9vZnMAAAUCZHUKmMew", "chainId": 84, "height": 2397543, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Ea5R9LAmeNvYGdNgbYZMmkVGDwtzsfxDJyHkNh593DHN Next: 87aS6GpgyBQVTPRGk5LL7ZKpzG3Fzov9mSvDpFp4kwcU Diff:
OldNewDifferences
596596 let cM = max([m(i(invoke(aW, "claimWxBoost", [aq, ap], nil))[0]), 0])
597597 let cN = cB
598598 let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
599- let cP = (cN + cO)
600- let cQ = q(i(invoke(aV, "emit", [toInt(cN)], nil))[0])
601- let cR = i(invoke(aV, "emit", [toInt(cO)], nil))
602- if ((cR == cR))
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))
603602 then {
604- let cS = (cz + cB)
603+ let cR = (cz + cB)
604+ let cS = (cI + cN)
605605 let cT = (cI + cN)
606606 let cU = (cI + cN)
607- let cV = (cI + cN)
608- $Tuple2([StringEntry(cE, toString(cS)), StringEntry(cG, toString(cT)), StringEntry(cH, toString(cU)), StringEntry(cF, toString(cV)), ScriptTransfer(aA, toInt(cN), cQ), ScriptTransfer(aA, toInt(cO), cQ), aR("claim", ap, aq, toInt(cB), ch.transactionId)], cP)
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)]
609608 }
610609 else throw("Strict value is not equal to itself.")
611610 }
616615
617616
618617 @Callable(ch)
619-func claimWxBulkInternalREADONLY (cW,cX,ap,cY) = if ((cW == size(cX)))
620- then $Tuple2(nil, cY)
618+func claimWxBulkInternalREADONLY (cV,cW,ap,cX) = if ((cV == size(cW)))
619+ then $Tuple2(nil, cX)
621620 else {
622- let ay = cX[cW]
623- let cZ = split({
624- let da = invoke(this, "claimWxREADONLY", [ay, ap], nil)
625- if ($isInstanceOf(da, "String"))
626- then da
627- else throw(($getType(da) + " 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"))
628627 }, e)
629- let db = cZ[3]
630- let dc = cZ[4]
631- let dd = (cY :+ makeString(["%d%d", db, dc], e))
632- let de = {
633- let da = invoke(this, "claimWxBulkInternalREADONLY", [(cW + 1), cX, ap, dd], nil)
634- if ($isInstanceOf(da, "List[Any]"))
635- then da
636- else throw(($getType(da) + " 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]"))
637636 }
638- if ((de == de))
639- then $Tuple2(nil, de)
637+ if ((dd == dd))
638+ then $Tuple2(nil, dd)
640639 else throw("Strict value is not equal to itself.")
641640 }
642641
643642
644643
645644 @Callable(ch)
646-func claimWxBulkREADONLY (cX,ap) = {
647- let dd = invoke(this, "claimWxBulkInternalREADONLY", [0, cX, ap, nil], nil)
648- $Tuple2(nil, dd)
645+func claimWxBulkREADONLY (cW,ap) = {
646+ let dc = invoke(this, "claimWxBulkInternalREADONLY", [0, cW, ap, nil], nil)
647+ $Tuple2(nil, dc)
649648 }
650649
651650
660659 let cz = A(this, cE)
661660 let bt = v(aU, Z(aq))
662661 let by = getIntegerValue(aU, aa(bt))
663- let df = z(aV, aj())
662+ let de = z(aV, aj())
664663 let bz = z(aV, al())
665- let dg = if ((bz > height))
664+ let df = if ((bz > height))
666665 then 0
667666 else (height - bz)
668- let dh = fraction((df * dg), by, f)
669- let di = fraction(dh, bo, bw)
670- let dj = bQ(aq, ap, bt, 0)
671- let ca = dj._1
672- let cw = dj._2
673- let bP = dj._3
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
674673 let cB = max([(ca - cz), g])
675- let dk = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil))
676- let cM = max([m(dk[0]), 0])
677- let dl = o(dk[1])
674+ let dj = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil))
675+ let cM = max([m(dj[0]), 0])
676+ let dk = o(dj[1])
678677 let cN = cB
679678 let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
680- let cP = (cN + cO)
681- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(cP), toString(cz), toString(cN), toString(cO), "soon"], e))
682- }
683-
684-
685-
686-@Callable(ch)
687-func stakedByUserREADONLY (aq,ap) = {
688- let bo = valueOrElse(getInteger(ao(ap, aq)), 0)
689- $Tuple2(nil, bo)
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))
690681 }
691682
692683
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
2020 func i (j) = {
2121 let k = j
2222 if ($isInstanceOf(k, "List[Any]"))
2323 then {
2424 let l = k
2525 l
2626 }
2727 else throw("fail to cast into List[Any]")
2828 }
2929
3030
3131 func m (j) = {
3232 let k = j
3333 if ($isInstanceOf(k, "Int"))
3434 then {
3535 let n = k
3636 n
3737 }
3838 else throw("fail to cast into Int")
3939 }
4040
4141
4242 func o (j) = {
4343 let k = j
4444 if ($isInstanceOf(k, "String"))
4545 then {
4646 let p = k
4747 p
4848 }
4949 else throw("fail to cast into Int")
5050 }
5151
5252
5353 func q (j) = {
5454 let k = j
5555 if ($isInstanceOf(k, "ByteVector"))
5656 then {
5757 let r = k
5858 r
5959 }
6060 else throw("fail to cast into Int")
6161 }
6262
6363
6464 func s (t,u) = valueOrErrorMessage(getString(t, u), (("mandatory this." + u) + " is not defined"))
6565
6666
6767 func v (t,u) = valueOrErrorMessage(getString(t, u), (((("mandatory " + toString(t)) + ".") + u) + " is not defined"))
6868
6969
7070 func w (t,u) = valueOrElse(getInteger(t, u), 0)
7171
7272
7373 func x (t,u,y) = valueOrElse(getInteger(t, u), y)
7474
7575
7676 func z (t,u) = valueOrErrorMessage(getInteger(t, u), (("mandatory this." + u) + " is not defined"))
7777
7878
7979 func A (t,u) = value(parseBigInt(valueOrElse(getString(t, u), "0")))
8080
8181
8282 func B (t,u,y) = {
8383 let k = getString(t, u)
8484 if ($isInstanceOf(k, "String"))
8585 then {
8686 let C = k
8787 value(parseBigInt(C))
8888 }
8989 else if ($isInstanceOf(k, "Unit"))
9090 then y
9191 else throw("Match error")
9292 }
9393
9494
9595 func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
9696
9797
9898 func G (j,H) = toInt(fraction(j, toBigInt(H), d))
9999
100100
101101 func I () = "%s%s__config__factoryAddress"
102102
103103
104104 func J () = "%s__votingEmissionContract"
105105
106106
107107 let K = 1
108108
109109 let L = 2
110110
111111 let M = 3
112112
113113 let N = 4
114114
115115 let O = 5
116116
117117 let P = 6
118118
119119 let Q = 7
120120
121121 func R () = "%s__factoryConfig"
122122
123123
124124 func S () = "%s__managerPublicKey"
125125
126126
127127 func T () = "%s__pendingManagerPublicKey"
128128
129129
130130 func U () = "%s__stablePoolAddonAddr"
131131
132132
133133 func V () = "%s__addonAddr"
134134
135135
136136 func W (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
137137
138138
139139 func Y () = "%s__lpTokensList"
140140
141141
142142 func Z (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
143143
144144
145145 func aa (ab) = makeString(["%s%s", "poolWeight", ab], e)
146146
147147
148148 func ac (ad) = split(valueOrElse(getString(ad, Y()), ""), e)
149149
150150
151151 func ae (ad) = split(v(ad, R()), e)
152152
153153
154154 func af (ag) = addressFromStringValue(ag[L])
155155
156156
157157 func ah (ag) = addressFromStringValue(ag[O])
158158
159159
160160 func ai (ag) = addressFromStringValue(ag[K])
161161
162162
163163 func aj () = "%s%s__ratePerBlock__current"
164164
165165
166166 func ak () = "%s%s__ratePerBlockMax__current"
167167
168168
169169 func al () = "%s%s__emission__startBlock"
170170
171171
172172 func am () = "%s%s__emission__duration"
173173
174174
175175 func an () = "%s%s__emission__endBlock"
176176
177177
178178 func ao (ap,aq) = makeString(["%s%s%s__staked", ap, aq], e)
179179
180180
181181 func ar (aq) = ("%s%s%s__staked__total__" + aq)
182182
183183
184184 func as (aq,ap) = makeString(["%s%s%s__claimed", ap, aq], e)
185185
186186
187187 func at (aq,ap) = makeString(["%s%s%s__claimedMinReward", ap, aq], e)
188188
189189
190190 func au (aq,ap) = makeString(["%s%s%s__claimedBoostReward", ap, aq], e)
191191
192192
193193 func av (aq) = makeString(["%s%s%s__claimed__total", aq], e)
194194
195195
196196 func aw (u) = valueOrElse(getInteger(this, u), 0)
197197
198198
199199 func ax (ay) = makeString(["%s%s%s", ay, "total", "bal"], e)
200200
201201
202202 func az (ay,aA) = makeString(["%s%s%s", ay, aA, "bal"], e)
203203
204204
205205 func aB (ay) = makeString(["%s%s%s", ay, "total", "balINT"], e)
206206
207207
208208 func aC (ay,aA) = makeString(["%s%s%s", ay, aA, "balINT"], e)
209209
210210
211211 func aD (ay) = makeString(["%s%s%s", ay, "total", "lastUpd"], e)
212212
213213
214214 func aE (ay,aA) = makeString(["%s%s%s", ay, aA, "lastUpd"], e)
215215
216216
217217 func aF (ay) = makeString(["%s%s%s%s", ay, "common", "lpInt"], e)
218218
219219
220220 func aG (ay) = makeString(["%s%s%s%s", ay, "common", "lpIntH"], e)
221221
222222
223223 func aH (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpInt"], e)
224224
225225
226226 func aI (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpIntH"], e)
227227
228228
229229 func aJ (ay) = makeString(["%s", ay, "wxPerLp"], e)
230230
231231
232232 func aK (ay) = makeString(["%s", ay, "wxPerLpX18"], e)
233233
234234
235235 func aL (ay,aA) = makeString(["%s%s%s%s", ay, aA, "uIntL"], e)
236236
237237
238238 func aM (aN,aA,aO) = makeString(["%s%s%s%s__history", aN, aA, aO], e)
239239
240240
241241 func aP (aA,ay,aN,aQ) = makeString(["%s%s%s%d%d%d", aA, ay, aN, toString(height), toString(lastBlock.timestamp), toString(aQ)], e)
242242
243243
244244 func aR (aN,aA,ay,aQ,aS) = StringEntry(aM(aN, aA, toBase58String(aS)), aP(aA, ay, aN, aQ))
245245
246246
247247 let aT = s(this, I())
248248
249249 let aU = addressFromStringValue(aT)
250250
251251 let ag = ae(aU)
252252
253253 let aV = ah(ag)
254254
255255 let aW = af(ag)
256256
257257 func aX (ay) = makeString(["%s%s", ay, "nextUser"], e)
258258
259259
260260 func aY (ay) = makeString(["users", ay], e)
261261
262262
263263 func aZ (ba) = makeString(["%s%s%s", ba, "head"], e)
264264
265265
266266 func bb (ba) = makeString(["%s%s%s", ba, "size"], e)
267267
268268
269269 func bc (ba,bd) = makeString(["%s%s%s%s", ba, bd, "prev"], e)
270270
271271
272272 func be (ba,bd) = makeString(["%s%s%s%s", ba, bd, "next"], e)
273273
274274
275275 func bf (ba,bd) = {
276276 let bg = getString(this, aZ(ba))
277277 let bh = getString(this, bc(ba, bd))
278278 let bi = getString(this, be(ba, bd))
279279 if (if ((bd == valueOrElse(bg, "")))
280280 then true
281281 else (bh != unit))
282282 then true
283283 else (bi != unit)
284284 }
285285
286286
287287 func bj (ba,bd) = {
288288 let bg = getString(this, aZ(ba))
289289 let bk = valueOrElse(getInteger(this, bb(ba)), 0)
290290 let bl = if (!(bf(ba, bd)))
291291 then true
292292 else throw("Node exists")
293293 if ((bl == bl))
294294 then (([IntegerEntry(bb(ba), (bk + 1))] ++ (if ((bg != unit))
295295 then [StringEntry(be(ba, bd), value(bg)), StringEntry(bc(ba, value(bg)), bd)]
296296 else nil)) ++ [StringEntry(aZ(ba), bd)])
297297 else throw("Strict value is not equal to itself.")
298298 }
299299
300300
301301 func bm (ba,bd) = {
302302 let bg = getString(this, aZ(ba))
303303 let bk = valueOrElse(getInteger(this, bb(ba)), 0)
304304 let bh = getString(this, bc(ba, bd))
305305 let bi = getString(this, be(ba, bd))
306306 ([IntegerEntry(bb(ba), (bk - 1))] ++ (if (if ((bh != unit))
307307 then (bi != unit)
308308 else false)
309309 then [StringEntry(be(ba, value(bh)), value(bi)), StringEntry(bc(ba, value(bi)), value(bh)), DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, bd))]
310310 else if ((bi != unit))
311311 then [StringEntry(aZ(ba), value(bi)), DeleteEntry(be(ba, bd)), DeleteEntry(bc(ba, value(bi)))]
312312 else if ((bh != unit))
313313 then [DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, value(bh)))]
314314 else if ((bd == valueOrElse(bg, "")))
315315 then [DeleteEntry(aZ(ba))]
316316 else throw(((("invalid node: " + ba) + ".") + bd))))
317317 }
318318
319319
320320 func bn (bo,bp,bq,br) = if (if ((bp == g))
321321 then (bo > g)
322322 else false)
323323 then g
324324 else if ((bo == g))
325325 then bq
326326 else if (if ((bp > g))
327327 then (bo > g)
328328 else false)
329329 then value(parseBigInt(s(this, br)))
330330 else throw("calcWxPerLpIntegralUserLast: unexpected state")
331331
332332
333333 func bs (aq,bt,bu) = {
334334 let bv = ar(aq)
335335 let bw = toBigInt(aw(bv))
336336 let bx = if ((bw == g))
337337 then h
338338 else bw
339339 let by = getIntegerValue(aU, aa(bt))
340340 let bz = z(aV, al())
341341 let bA = 1000
342342 let bB = (z(aV, aj()) * bA)
343343 let bC = fraction(bB, by, (f * 3))
344344 let bD = aF(aq)
345345 let bE = aG(aq)
346346 let bF = aJ(aq)
347347 let bG = x(this, bE, bz)
348348 let bH = A(this, bD)
349349 let bI = 0
350350 let bJ = max([(height - bG), 0])
351351 let bK = if ((bI != 0))
352352 then toBigInt(bI)
353353 else fraction(toBigInt(bC), toBigInt(b), bx)
354354 let bL = (bw + toBigInt(bu))
355355 let bM = if ((bL == g))
356356 then h
357357 else bL
358358 let bq = (bH + (bK * toBigInt(bJ)))
359359 let bN = (toBigInt(bC) / bM)
360360 let bO = height
361361 let bP = makeString([toString(bq), toString(bJ), toString(bK), toString(bw), toString(bC), toString(bB), toString(by)], "::")
362362 $Tuple3(bq, [StringEntry(bD, toString(bq)), IntegerEntry(bE, bO), StringEntry(bF, toString(bN))], bP)
363363 }
364364
365365
366366 func bQ (aq,ap,bt,bu) = {
367367 let bR = bs(aq, bt, bu)
368368 let bq = bR._1
369369 let bS = bR._2
370370 let bT = bR._3
371371 let bA = 1000
372372 let bU = ao(ap, aq)
373373 let bo = aw(bU)
374374 let bV = aH(aq, ap)
375375 let bW = aI(aq, ap)
376376 let br = aL(aq, ap)
377377 let bX = A(this, bV)
378378 let bp = w(this, bW)
379379 let bY = bn(toBigInt(bo), toBigInt(bp), bq, br)
380380 let bZ = (b * bA)
381381 let ca = max([(bX + fraction((bq - bY), toBigInt(bo), toBigInt(bZ))), g])
382382 let cb = bq
383383 let cc = height
384384 let bP = makeString([toString(bX), toString(bY), toString(bo), bT, toString(height)], "::")
385385 $Tuple3(ca, (bS ++ [StringEntry(bV, toString(ca)), IntegerEntry(bW, cc), StringEntry(br, toString(cb))]), bP)
386386 }
387387
388388
389389 func cd () = {
390390 let k = getString(S())
391391 if ($isInstanceOf(k, "String"))
392392 then {
393393 let C = k
394394 fromBase58String(C)
395395 }
396396 else if ($isInstanceOf(k, "Unit"))
397397 then unit
398398 else throw("Match error")
399399 }
400400
401401
402402 func ce () = {
403403 let k = getString(T())
404404 if ($isInstanceOf(k, "String"))
405405 then {
406406 let C = k
407407 fromBase58String(C)
408408 }
409409 else if ($isInstanceOf(k, "Unit"))
410410 then unit
411411 else throw("Match error")
412412 }
413413
414414
415415 let cf = throw("Permission denied")
416416
417417 func cg (ch) = if ((ch.caller == this))
418418 then true
419419 else cf
420420
421421
422422 func ci (ch) = {
423423 let k = cd()
424424 if ($isInstanceOf(k, "ByteVector"))
425425 then {
426426 let cj = k
427427 if ((ch.callerPublicKey == cj))
428428 then true
429429 else cf
430430 }
431431 else if ($isInstanceOf(k, "Unit"))
432432 then if ((ch.caller == this))
433433 then true
434434 else cf
435435 else throw("Match error")
436436 }
437437
438438
439439 @Callable(ch)
440440 func constructor (ck) = {
441441 let cl = ci(ch)
442442 if ((cl == cl))
443443 then [StringEntry(I(), ck)]
444444 else throw("Strict value is not equal to itself.")
445445 }
446446
447447
448448
449449 @Callable(ch)
450450 func constructorV2 (cm) = {
451451 let cn = [ci(ch), if ((addressFromString(cm) != unit))
452452 then true
453453 else "invalid voting emission contract address"]
454454 if ((cn == cn))
455455 then [StringEntry(J(), cm)]
456456 else throw("Strict value is not equal to itself.")
457457 }
458458
459459
460460
461461 @Callable(ch)
462462 func setManager (co) = {
463463 let cl = ci(ch)
464464 if ((cl == cl))
465465 then {
466466 let cp = fromBase58String(co)
467467 if ((cp == cp))
468468 then [StringEntry(T(), co)]
469469 else throw("Strict value is not equal to itself.")
470470 }
471471 else throw("Strict value is not equal to itself.")
472472 }
473473
474474
475475
476476 @Callable(ch)
477477 func confirmManager () = {
478478 let cq = ce()
479479 let cr = if (isDefined(cq))
480480 then true
481481 else throw("No pending manager")
482482 if ((cr == cr))
483483 then {
484484 let cs = if ((ch.callerPublicKey == value(cq)))
485485 then true
486486 else throw("You are not pending manager")
487487 if ((cs == cs))
488488 then [StringEntry(S(), toBase58String(value(cq))), DeleteEntry(T())]
489489 else throw("Strict value is not equal to itself.")
490490 }
491491 else throw("Strict value is not equal to itself.")
492492 }
493493
494494
495495
496496 @Callable(ch)
497497 func stake () = if ((size(ch.payments) != 1))
498498 then throw("invalid payment - exact one payment must be attached")
499499 else {
500500 let ct = ch.payments[0]
501501 let ay = value(ct.assetId)
502502 let aq = toBase58String(ay)
503503 let aQ = ct.amount
504504 let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
505505 let cu = toString(ch.caller)
506506 let ap = if ((cu == bt))
507507 then toString(ch.originCaller)
508508 else cu
509509 let bU = ao(ap, aq)
510510 let bv = ar(aq)
511511 let bo = aw(bU)
512512 let bw = aw(bv)
513513 let cv = bQ(aq, ap, bt, aQ)
514514 let ca = cv._1
515515 let cw = cv._2
516516 let bP = cv._3
517517 let ba = aY(aq)
518518 let cx = if (bf(ba, ap))
519519 then nil
520520 else bj(ba, ap)
521521 (([IntegerEntry(bU, (bo + aQ)), IntegerEntry(bv, (bw + aQ)), aR("stake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
522522 }
523523
524524
525525
526526 @Callable(ch)
527527 func unstake (aq,aQ) = {
528528 let ay = fromBase58String(aq)
529529 let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
530530 let cy = valueOrElse(getString(addressFromStringValue(bt), V()), bt)
531531 let cu = toString(ch.caller)
532532 let ap = if (if ((cu == bt))
533533 then true
534534 else (cu == cy))
535535 then toString(ch.originCaller)
536536 else cu
537537 let bU = ao(ap, aq)
538538 let bv = ar(aq)
539539 let bo = aw(bU)
540540 let bw = aw(bv)
541541 let cw = bQ(aq, ap, bt, -(aQ))._2
542542 let ba = aY(aq)
543543 let cx = if (if (bf(ba, ap))
544544 then (aQ == bo)
545545 else false)
546546 then bm(ba, ap)
547547 else nil
548548 let cz = A(this, as(aq, ap))
549549 let cA = v(aU, Z(aq))
550550 let ca = bQ(aq, ap, cA, 0)._1
551551 let cB = (ca - cz)
552552 let cC = if ((cB > g))
553553 then invoke(this, "claimWxINTERNAL", [aq, ap], nil)
554554 else unit
555555 if ((cC == cC))
556556 then if ((aQ > bo))
557557 then throw(((((((("passed amount=" + toString(aQ)) + " is greater than available=") + toString(bo)) + ". lpAssetId=") + aq) + ". stakedByUserKEY=") + bU))
558558 else (([IntegerEntry(bU, (bo - aQ)), IntegerEntry(bv, (bw - aQ)), ScriptTransfer(ch.caller, aQ, ay), aR("unstake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
559559 else throw("Strict value is not equal to itself.")
560560 }
561561
562562
563563
564564 @Callable(ch)
565565 func claimWx (aq) = {
566566 let ap = toString(ch.caller)
567567 let cD = invoke(this, "claimWxINTERNAL", [aq, ap], nil)
568568 $Tuple2(nil, cD)
569569 }
570570
571571
572572
573573 @Callable(ch)
574574 func claimWxINTERNAL (aq,ap) = {
575575 let cl = cg(ch)
576576 if ((cl == cl))
577577 then {
578578 let aA = valueOrErrorMessage(addressFromString(ap), "claimWxINTERNAL: invalid user address")
579579 let bt = v(aU, Z(aq))
580580 let cE = as(aq, ap)
581581 let cF = av(aq)
582582 let cG = at(aq, ap)
583583 let cH = au(aq, ap)
584584 let cz = A(this, cE)
585585 let cI = A(this, cG)
586586 let cJ = A(this, cH)
587587 let cK = A(this, cF)
588588 let cL = bQ(aq, ap, bt, 0)
589589 let ca = cL._1
590590 let cw = cL._2
591591 let bP = cL._3
592592 let cB = max([(ca - cz), g])
593593 if ((g >= cB))
594594 then throw("nothing to claim")
595595 else {
596596 let cM = max([m(i(invoke(aW, "claimWxBoost", [aq, ap], nil))[0]), 0])
597597 let cN = cB
598598 let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
599- let cP = (cN + cO)
600- let cQ = q(i(invoke(aV, "emit", [toInt(cN)], nil))[0])
601- let cR = i(invoke(aV, "emit", [toInt(cO)], nil))
602- if ((cR == cR))
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))
603602 then {
604- let cS = (cz + cB)
603+ let cR = (cz + cB)
604+ let cS = (cI + cN)
605605 let cT = (cI + cN)
606606 let cU = (cI + cN)
607- let cV = (cI + cN)
608- $Tuple2([StringEntry(cE, toString(cS)), StringEntry(cG, toString(cT)), StringEntry(cH, toString(cU)), StringEntry(cF, toString(cV)), ScriptTransfer(aA, toInt(cN), cQ), ScriptTransfer(aA, toInt(cO), cQ), aR("claim", ap, aq, toInt(cB), ch.transactionId)], cP)
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)]
609608 }
610609 else throw("Strict value is not equal to itself.")
611610 }
612611 }
613612 else throw("Strict value is not equal to itself.")
614613 }
615614
616615
617616
618617 @Callable(ch)
619-func claimWxBulkInternalREADONLY (cW,cX,ap,cY) = if ((cW == size(cX)))
620- then $Tuple2(nil, cY)
618+func claimWxBulkInternalREADONLY (cV,cW,ap,cX) = if ((cV == size(cW)))
619+ then $Tuple2(nil, cX)
621620 else {
622- let ay = cX[cW]
623- let cZ = split({
624- let da = invoke(this, "claimWxREADONLY", [ay, ap], nil)
625- if ($isInstanceOf(da, "String"))
626- then da
627- else throw(($getType(da) + " 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"))
628627 }, e)
629- let db = cZ[3]
630- let dc = cZ[4]
631- let dd = (cY :+ makeString(["%d%d", db, dc], e))
632- let de = {
633- let da = invoke(this, "claimWxBulkInternalREADONLY", [(cW + 1), cX, ap, dd], nil)
634- if ($isInstanceOf(da, "List[Any]"))
635- then da
636- else throw(($getType(da) + " 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]"))
637636 }
638- if ((de == de))
639- then $Tuple2(nil, de)
637+ if ((dd == dd))
638+ then $Tuple2(nil, dd)
640639 else throw("Strict value is not equal to itself.")
641640 }
642641
643642
644643
645644 @Callable(ch)
646-func claimWxBulkREADONLY (cX,ap) = {
647- let dd = invoke(this, "claimWxBulkInternalREADONLY", [0, cX, ap, nil], nil)
648- $Tuple2(nil, dd)
645+func claimWxBulkREADONLY (cW,ap) = {
646+ let dc = invoke(this, "claimWxBulkInternalREADONLY", [0, cW, ap, nil], nil)
647+ $Tuple2(nil, dc)
649648 }
650649
651650
652651
653652 @Callable(ch)
654653 func claimWxREADONLY (aq,ap) = {
655654 let bU = ao(ap, aq)
656655 let bv = ar(aq)
657656 let cE = as(aq, ap)
658657 let bo = aw(bU)
659658 let bw = aw(bv)
660659 let cz = A(this, cE)
661660 let bt = v(aU, Z(aq))
662661 let by = getIntegerValue(aU, aa(bt))
663- let df = z(aV, aj())
662+ let de = z(aV, aj())
664663 let bz = z(aV, al())
665- let dg = if ((bz > height))
664+ let df = if ((bz > height))
666665 then 0
667666 else (height - bz)
668- let dh = fraction((df * dg), by, f)
669- let di = fraction(dh, bo, bw)
670- let dj = bQ(aq, ap, bt, 0)
671- let ca = dj._1
672- let cw = dj._2
673- let bP = dj._3
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
674673 let cB = max([(ca - cz), g])
675- let dk = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil))
676- let cM = max([m(dk[0]), 0])
677- let dl = o(dk[1])
674+ let dj = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil))
675+ let cM = max([m(dj[0]), 0])
676+ let dk = o(dj[1])
678677 let cN = cB
679678 let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
680- let cP = (cN + cO)
681- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(cP), toString(cz), toString(cN), toString(cO), "soon"], e))
682- }
683-
684-
685-
686-@Callable(ch)
687-func stakedByUserREADONLY (aq,ap) = {
688- let bo = valueOrElse(getInteger(ao(ap, aq)), 0)
689- $Tuple2(nil, bo)
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))
690681 }
691682
692683
693684
694685 @Callable(ch)
695686 func usersListTraversal (ay) = {
696687 let cl = if ((toBase58String(ch.caller.bytes) == valueOrElse(getString(this, J()), "")))
697688 then true
698689 else ci(ch)
699690 if ((cl == cl))
700691 then {
701692 let ba = aY(ay)
702693 let dm = getString(aX(ay))
703694 let bg = getString(aZ(ba))
704695 let k = dm
705696 if ($isInstanceOf(k, "Unit"))
706697 then {
707698 let dn = bg
708699 if ($isInstanceOf(dn, "Unit"))
709700 then $Tuple2(nil, false)
710701 else if ($isInstanceOf(dn, "String"))
711702 then {
712703 let do = dn
713704 $Tuple2([StringEntry(aX(ay), do)], true)
714705 }
715706 else throw("Match error")
716707 }
717708 else if ($isInstanceOf(k, "String"))
718709 then {
719710 let aA = k
720711 let cz = A(this, as(ay, aA))
721712 let cA = v(aU, Z(ay))
722713 let ca = bQ(ay, aA, cA, 0)._1
723714 let cB = (ca - cz)
724715 let cC = if ((cB > g))
725716 then invoke(this, "claimWxINTERNAL", [ay, aA], nil)
726717 else unit
727718 if ((cC == cC))
728719 then {
729720 let dp = getString(be(ba, aA))
730721 let dn = dp
731722 if ($isInstanceOf(dn, "Unit"))
732723 then $Tuple2([DeleteEntry(aX(ay))], false)
733724 else if ($isInstanceOf(dn, "String"))
734725 then {
735726 let dq = dn
736727 $Tuple2([StringEntry(aX(ay), dq)], true)
737728 }
738729 else throw("Match error")
739730 }
740731 else throw("Strict value is not equal to itself.")
741732 }
742733 else throw("Match error")
743734 }
744735 else throw("Strict value is not equal to itself.")
745736 }
746737
747738
748739
749740 @Callable(ch)
750741 func onModifyWeight (aq,bt) = if ((ch.caller != aU))
751742 then throw("permissions denied")
752743 else {
753744 let dr = bs(aq, bt, 0)
754745 let bq = dr._1
755746 let bS = dr._2
756747 let bT = dr._3
757748 bS
758749 }
759750
760751
761752 @Verifier(ds)
762753 func dt () = {
763754 let du = {
764755 let k = cd()
765756 if ($isInstanceOf(k, "ByteVector"))
766757 then {
767758 let cj = k
768759 cj
769760 }
770761 else if ($isInstanceOf(k, "Unit"))
771762 then ds.senderPublicKey
772763 else throw("Match error")
773764 }
774765 sigVerify(ds.bodyBytes, ds.proofs[0], du)
775766 }
776767

github/deemru/w8io/026f985 
89.95 ms