tx · 34zHoGHvjSXGZvqWXDCh9bsrgQVah1DfVqgKrW1ZYwzM 3MuAPY3jP4q2AoNYX27B5BU9EoLU77mr7pS: -0.02000000 Waves 2022.02.24 15:41 [1937740] smart account 3MuAPY3jP4q2AoNYX27B5BU9EoLU77mr7pS > SELF 0.00000000 Waves
{ "type": 13, "id": "34zHoGHvjSXGZvqWXDCh9bsrgQVah1DfVqgKrW1ZYwzM", "fee": 2000000, "feeAssetId": null, "timestamp": 1645706574899, "version": 1, "sender": "3MuAPY3jP4q2AoNYX27B5BU9EoLU77mr7pS", "senderPublicKey": "rqCnkHfz5ix6HNKiVvYE3URUtLs6f2nWzt4hpdGGQdm", "proofs": [ "3hW9VX9Ex3M9BuDTVDbWbw1qtHYn8YE1JEfSa3s5Wu1BjY2bMwZjt2gRWzrAat2gKbbkN8RpBApKVbADorqCpyZW" ], "script": "base64:AAIFAAAAAAAAADgIAhIFCgMICAESAwoBARIHCgUBAQEBARIICgYBAQEBAQESABIDCgEIEgASBAoCAQESBgoEAQEBAQAAADcAAAAAB1dBVkVMRVQAAAAAAAX14QAAAAAABVBBVUxJAAAAAAAAD0JAAAAAAAhCSUdQQVVMSQkAATYAAAABAAAAAAAAD0JAAAAAAAhQUklDRUxFVAAAAAAAAA9CQAAAAAAETVVMVAAAAAAABfXhAAAAAAAJQklHTVVMVDE2CQABNgAAAAEAACOG8m/BAAAAAAAACU1VTFRTQ0FMRQAAAAAAAAAACAAAAAAHU0NBTEUxNgAAAAAAAAAAEAAAAAADU0VQAgAAAAJfXwAAAAAFSEFMRjgAAAAAAAL68IAAAAAAC0VVTEVSTlVNQkVSAAAAAAAQM8TWAAAAAAZzY2FsZTYAAAAAAAAPQkAAAAAADHNjYWxlNkJpZ0ludAkAATYAAAABAAAAAAAAD0JAAQAAABJrZXlOZXV0cmlub0FkZHJlc3MAAAAAAgAAAB0lcyVzX19jb25maWdfX25ldXRyaW5vQWRkcmVzcwEAAAATa2V5U3dhcEFtb3VudEFQYXJhbQAAAAACAAAAGCVzJXNfX2NvbmZpZ19fc3dhcEFQYXJhbQEAAAASa2V5TmV1dHJpbm9Bc3NldElkAAAAAAIAAAARbmV1dHJpbm9fYXNzZXRfaWQBAAAAHWtleUxpcXVpZGF0aW9uQ29udHJhY3RBZGRyZXNzAAAAAAIAAAAUbGlxdWlkYXRpb25fY29udHJhY3QBAAAADmtleVJQRENvbnRyYWN0AAAAAAIAAAAMcnBkX2NvbnRyYWN0AQAAABJrZXlBdWN0aW9uQ29udHJhY3QAAAAAAgAAABBhdWN0aW9uX2NvbnRyYWN0AQAAABFrZXlDb250b2xDb250cmFjdAAAAAACAAAAEGNvbnRyb2xfY29udHJhY3QBAAAADmtleUJvbmRBc3NldElkAAAAAAIAAAANYm9uZF9hc3NldF9pZAEAAAAQa2V5QmFsYW5jZUxvY2tlZAAAAAACAAAADWJhbGFuY2VfbG9ja18BAAAAFWtleVdhdmVzTG9ja2VkQmFsYW5jZQAAAAAJAAEsAAAAAgkBAAAAEGtleUJhbGFuY2VMb2NrZWQAAAAAAgAAAAV3YXZlcwEAAAAYa2V5TmV1dHJpbm9Mb2NrZWRCYWxhbmNlAAAAAAkAASwAAAACCQEAAAAQa2V5QmFsYW5jZUxvY2tlZAAAAAACAAAACG5ldXRyaW5vAQAAABVrZXlNaW5XYXZlc1N3YXBBbW91bnQAAAAAAgAAABVtaW5fd2F2ZXNfc3dhcF9hbW91bnQBAAAAGGtleU1pbk5ldXRyaW5vU3dhcEFtb3VudAAAAAACAAAAGG1pbl9uZXV0cmlub19zd2FwX2Ftb3VudAEAAAASa2V5V2F2ZXNPdXRGZWVQYXJ0AAAAAAIAAAAVd2F2ZXNPdXRfc3dhcF9mZWVQYXJ0AQAAABVrZXlOZXV0cmlub091dEZlZVBhcnQAAAAAAgAAABhuZXV0cmlub091dF9zd2FwX2ZlZVBhcnQBAAAAE2tleU5zYnRMb2NrQ29udHJhY3QAAAAAAgAAABQlc19fbnNidExvY2tDb250cmFjdAEAAAAZa2V5UXVpY2tTd2FwTGltaXREdXJhdGlvbgAAAAACAAAAGiVzX19xdWlja1N3YXBMaW1pdER1cmF0aW9uAQAAABprZXlVc2VyTGFzdFF1aWNrU3dhcEhlaWdodAAAAAEAAAALdXNlckFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAAQlcyVzCQAETAAAAAICAAAAF3VzZXJMYXN0UXVpY2tTd2FwSGVpZ2h0CQAETAAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAANuaWwFAAAAA1NFUAEAAAAda2V5UXVpY2tTd2FwVXNlclNwZW50SW5QZXJpb2QAAAABAAAAC3VzZXJBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAABpxdWlja1N3YXBVc2VyU3BlbnRJblBlcmlvZAkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsBQAAAANTRVABAAAACGtleVByaWNlAAAAAAIAAAAFcHJpY2UBAAAAC2tleUhhbGZMaWZlAAAAAAIAAAAMJXNfX2hhbGZMaWZlAQAAABZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50AAAAAQAAAAt1c2VyQWRkcmVzcwkABLkAAAACCQAETAAAAAICAAAABiVzJXMlcwkABEwAAAACAgAAAAtwYXJhbUJ5VXNlcgkABEwAAAACBQAAAAt1c2VyQWRkcmVzcwkABEwAAAACAgAAAAZhbW91bnQFAAAAA25pbAUAAAADU0VQAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5CQAEuQAAAAIJAARMAAAAAgIAAAAKbWFuZGF0b3J5IAkABEwAAAACCQAEJQAAAAEFAAAAB2FkZHJlc3MJAARMAAAAAgIAAAABLgkABEwAAAACBQAAAANrZXkJAARMAAAAAgIAAAAPIGlzIG5vdCBkZWZpbmVkBQAAAANuaWwCAAAAAAEAAAAMZ2V0SW50T3JGYWlsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkABLkAAAACCQAETAAAAAICAAAACm1hbmRhdG9yeSAJAARMAAAAAgkABCUAAAABBQAAAAdhZGRyZXNzCQAETAAAAAICAAAAAS4JAARMAAAAAgUAAAADa2V5CQAETAAAAAICAAAADyBpcyBub3QgZGVmaW5lZAUAAAADbmlsAgAAAAABAAAADWdldEJvb2xPckZhaWwAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQbAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5CQAEuQAAAAIJAARMAAAAAgIAAAAKbWFuZGF0b3J5IAkABEwAAAACCQAEJQAAAAEFAAAAB2FkZHJlc3MJAARMAAAAAgIAAAABLgkABEwAAAACBQAAAANrZXkJAARMAAAAAgIAAAAPIGlzIG5vdCBkZWZpbmVkBQAAAANuaWwCAAAAAAEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQAAawAAAAMJAABrAAAAAwUAAAAGYW1vdW50BQAAAAhQUklDRUxFVAUAAAAFcHJpY2UFAAAAB1dBVkVMRVQFAAAABVBBVUxJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgAAAAZhbW91bnQAAAAFcHJpY2UJAABrAAAAAwkAAGsAAAADBQAAAAZhbW91bnQFAAAABXByaWNlBQAAAAhQUklDRUxFVAUAAAAFUEFVTEkFAAAAB1dBVkVMRVQBAAAABXRvWDE2AAAAAgAAAAdvcmlnVmFsAAAADW9yaWdTY2FsZU11bHQJAAE8AAAAAwkAATYAAAABBQAAAAdvcmlnVmFsBQAAAAlCSUdNVUxUMTYJAAE2AAAAAQUAAAANb3JpZ1NjYWxlTXVsdAEAAAAHZnJvbVgxNgAAAAIAAAADdmFsAAAAD3Jlc3VsdFNjYWxlTXVsdAkAAaAAAAABCQABPAAAAAMFAAAAA3ZhbAkAATYAAAABBQAAAA9yZXN1bHRTY2FsZU11bHQFAAAACUJJR01VTFQxNgEAAAAJYXNBbnlMaXN0AAAAAQAAAAN2YWwEAAAAByRtYXRjaDAFAAAAA3ZhbAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAJTGlzdFtBbnldBAAAAAp2YWxBbnlMeXN0BQAAAAckbWF0Y2gwBQAAAAp2YWxBbnlMeXN0CQAAAgAAAAECAAAAG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEAAAAFYXNJbnQAAAABAAAAA3ZhbAQAAAAHJG1hdGNoMAUAAAADdmFsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABnZhbEludAUAAAAHJG1hdGNoMAUAAAAGdmFsSW50CQAAAgAAAAECAAAAFWZhaWwgdG8gY2FzdCBpbnRvIEludAEAAAAIYXNTdHJpbmcAAAABAAAAA3ZhbAQAAAAHJG1hdGNoMAUAAAADdmFsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABnZhbFN0cgUAAAAHJG1hdGNoMAUAAAAGdmFsU3RyCQAAAgAAAAECAAAAGGZhaWwgdG8gY2FzdCBpbnRvIFN0cmluZwAAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAABHRoaXMJAQAAABJrZXlOZXV0cmlub0FkZHJlc3MAAAAAAAAAAA9jb250cm9sQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAARa2V5Q29udG9sQ29udHJhY3QAAAAAAAAAAA9hdWN0aW9uQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAASa2V5QXVjdGlvbkNvbnRyYWN0AAAAAAAAAAATbGlxdWlkYXRpb25Db250cmFjdAkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAB1rZXlMaXF1aWRhdGlvbkNvbnRyYWN0QWRkcmVzcwAAAAAAAAAAC3JwZENvbnRyYWN0CQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAADmtleVJQRENvbnRyYWN0AAAAAAAAAAATbnNidFN0YWtpbmdDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAABHRoaXMJAQAAABNrZXlOc2J0TG9ja0NvbnRyYWN0AAAAAAAAAAAVbmV1dHJpbm9Bc3NldElkU3RyaW5nCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAEmtleU5ldXRyaW5vQXNzZXRJZAAAAAAAAAAAD25ldXRyaW5vQXNzZXRJZAkAAlkAAAABBQAAABVuZXV0cmlub0Fzc2V0SWRTdHJpbmcAAAAADm5zYnRBc3NldElkU3RyCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAOa2V5Qm9uZEFzc2V0SWQAAAAAAAAAAAtuc2J0QXNzZXRJZAkAAlkAAAABBQAAAA5uc2J0QXNzZXRJZFN0cgAAAAkAAAABaQEAAAALY29uc3RydWN0b3IAAAADAAAAD25ldXRyaW5vQWRkcmVzcwAAAA9uc2J0TG9ja0FkZHJlc3MAAAAQc3dhcEFtb3VudEFQYXJhbQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAA5ub3QgYXV0aG9yaXplZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAASa2V5TmV1dHJpbm9BZGRyZXNzAAAAAAUAAAAPbmV1dHJpbm9BZGRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABNrZXlOc2J0TG9ja0NvbnRyYWN0AAAAAAUAAAAPbnNidExvY2tBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAATa2V5U3dhcEFtb3VudEFQYXJhbQAAAAAFAAAAEHN3YXBBbW91bnRBUGFyYW0FAAAAA25pbAAAAAFpAQAAABFjYWxjU3dhcExpbWl0TUFUSAAAAAEAAAALZ05zYnRBbW91bnQEAAAAFXVzZG5Td2FwRGVsYXlEdXJhdGlvbgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQEAAAATa2V5U3dhcEFtb3VudEFQYXJhbQAAAAACAAAAGFN3YXAgcGFyYW1ldGVyIEEgbWlzc2VkLgQAAAARZ05zYnRBbW91bnRCaWdJbnQJAAE2AAAAAQUAAAALZ05zYnRBbW91bnQEAAAADGxpbWl0UG93UGFydAkAAHYAAAAGBQAAABFnTnNidEFtb3VudEJpZ0ludAAAAAAAAAAAAAkAATYAAAABBQAAAAtFVUxFUk5VTUJFUgAAAAAAAAAACAAAAAAAAAAAAAUAAAAERE9XTgQAAAAFbGltaXQJAAE8AAAAAwkAATYAAAABBQAAABV1c2RuU3dhcERlbGF5RHVyYXRpb24FAAAADGxpbWl0UG93UGFydAUAAAAMc2NhbGU2QmlnSW50CQAFFAAAAAIFAAAAA25pbAUAAAAFbGltaXQAAAABaQEAAAAOY2FsY3VsYXRlS01BVEgAAAAFAAAABHdSYXcAAAAEdVJhdwAAAAVwcmljZQAAAARtUmF3AAAABHNSYXcEAAAAA0VYUAkAATYAAAABAAAAAAAAKXpJBAAAAAhFWFBTQ0FMRQAAAAAAAAAABgQAAAABYQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAA9h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dFN1cHBseU1BWAkABEwAAAACBQAAAApuc2J0U3VwcGx5BQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAKa0NhbGNBcnJheQUAAAAKa0NhbGNBcnJheQQAAAAFbXVsdEsJAAGnAAAAAQkBAAAACGFzU3RyaW5nAAAAAQkAAZEAAAACBQAAAAprQ2FsY0FycmF5AAAAAAAAAAAHBAAAAAJtSwkBAAAAB2Zyb21YMTYAAAACBQAAAAVtdWx0SwUAAAAETVVMVAQAAAAJbXVsdFN0ZXAxCQAAawAAAAMFAAAADW5zYnRTdXBwbHlNQVgFAAAABE1VTFQJAABlAAAAAgUAAAANbnNidFN1cHBseU1BWAUAAAAKbnNidFN1cHBseQQAAAAJbXVsdFN0ZXAyCQAAawAAAAMFAAAACW11bHRTdGVwMQUAAAAJbXVsdFN0ZXAxBQAAAARNVUxUBAAAABJtdWx0TnNidDJ1c2RuUHJpY2UJAABrAAAAAwUAAAACbUsFAAAACW11bHRTdGVwMgUAAAAETVVMVAQAAAAObnNidDJ1c2RuUHJpY2UJAABrAAAAAwUAAAASbXVsdE5zYnQydXNkblByaWNlBQAAAAVQQVVMSQUAAAAETVVMVAQAAAAPbnNidDJ3YXZlc1ByaWNlCQAAawAAAAMFAAAADm5zYnQydXNkblByaWNlBQAAAAVQQVVMSQUAAAAMY3VycmVudFByaWNlCQAFFAAAAAIFAAAAA25pbAkABRQAAAACBQAAAA5uc2J0MnVzZG5QcmljZQUAAAAPbnNidDJ3YXZlc1ByaWNlCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAWY2FsY1VzZXJTd2FwTGltaXRzTUFUSAAAAAEAAAAOdXNlckFkZHJlc3NTdHIEAAAAD3VzZXJHTnNidEFtb3VudAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABNuc2J0U3Rha2luZ0NvbnRyYWN0CQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEFAAAADnVzZXJBZGRyZXNzU3RyAAAAAAAAAAAABAAAAAp1c2RuTG10TWF4CQEAAAAFYXNJbnQAAAABCQAD/AAAAAQFAAAABHRoaXMCAAAAEWNhbGNTd2FwTGltaXRNQVRICQAETAAAAAIFAAAAD3VzZXJHTnNidEFtb3VudAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACnVzZG5MbXRNYXgFAAAACnVzZG5MbXRNYXgEAAAAFHF1aWNrU3dhcFJlc2V0QmxvY2tzCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAZa2V5UXVpY2tTd2FwTGltaXREdXJhdGlvbgAAAAAEAAAAEmxhc3RRdWlja1N3YXBCbG9jawkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAaa2V5VXNlckxhc3RRdWlja1N3YXBIZWlnaHQAAAABBQAAAA51c2VyQWRkcmVzc1N0cgAAAAAAAAAAAAQAAAAUaXNOZXdRdWlja1N3YXBQZXJpb2QJAABmAAAAAgkAAGUAAAACBQAAAAZoZWlnaHQFAAAAEmxhc3RRdWlja1N3YXBCbG9jawUAAAAUcXVpY2tTd2FwUmVzZXRCbG9ja3MEAAAAEnF1aWNrU3dhcFVzZXJTcGVudAMFAAAAFGlzTmV3UXVpY2tTd2FwUGVyaW9kAAAAAAAAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAB1rZXlRdWlja1N3YXBVc2VyU3BlbnRJblBlcmlvZAAAAAEFAAAADnVzZXJBZGRyZXNzU3RyAAAAAAAAAAAACQAFFAAAAAIFAAAAA25pbAkABRQAAAACBQAAAAp1c2RuTG10TWF4BQAAABJxdWlja1N3YXBVc2VyU3BlbnQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAFmNhbGNOZXV0aW5vTWV0cmljc01BVEgAAAAABAAAAAxjdXJyZW50UHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAkBAAAACGtleVByaWNlAAAAAAQAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABhrZXlOZXV0cmlub0xvY2tlZEJhbGFuY2UAAAAAAAAAAAAAAAAABAAAABJ3YXZlc0xvY2tlZEJhbGFuY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAFWtleVdhdmVzTG9ja2VkQmFsYW5jZQAAAAAAAAAAAAAAAAAEAAAAB3Jlc2VydmUJAABlAAAAAggJAAPvAAAAAQUAAAAQbmV1dHJpbm9Db250cmFjdAAAAAdyZWd1bGFyBQAAABJ3YXZlc0xvY2tlZEJhbGFuY2UEAAAADnJlc2VydmVzSW5Vc2RuCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAAB3Jlc2VydmUFAAAADGN1cnJlbnRQcmljZQQAAAAObmV1dHJpbm9TdXBwbHkJAABlAAAAAgkAAGUAAAACCQAAZAAAAAIFAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQUAAAAPbmV1dHJpbm9Bc3NldElkAAAACHF1YW50aXR5CQAD8AAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAD25ldXRyaW5vQXNzZXRJZAkAA/AAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABNsaXF1aWRhdGlvbkNvbnRyYWN0BQAAAA9uZXV0cmlub0Fzc2V0SWQEAAAAB3N1cnBsdXMJAABlAAAAAgUAAAAOcmVzZXJ2ZXNJblVzZG4FAAAADm5ldXRyaW5vU3VwcGx5BAAAAAdkZWZpY2l0CQAAZQAAAAIFAAAADm5ldXRyaW5vU3VwcGx5BQAAAA5yZXNlcnZlc0luVXNkbgQAAAAOc3VycGx1c1BlcmNlbnQJAABoAAAAAgkAAGsAAAADBQAAAAdzdXJwbHVzBQAAAAVQQVVMSQUAAAAObmV1dHJpbm9TdXBwbHkAAAAAAAAAAGQEAAAAAkJSCQAAawAAAAMFAAAADnJlc2VydmVzSW5Vc2RuBQAAAAVQQVVMSQUAAAAObmV1dHJpbm9TdXBwbHkEAAAADW5zYnRTdXBwbHlNQVgICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAAC25zYnRBc3NldElkAAAACHF1YW50aXR5BAAAAApuc2J0U3VwcGx5CQAAZQAAAAIFAAAADW5zYnRTdXBwbHlNQVgJAAPwAAAAAgUAAAAPYXVjdGlvbkNvbnRyYWN0BQAAAAtuc2J0QXNzZXRJZAkABRQAAAACBQAAAANuaWwJAAUdAAAACwUAAAAMY3VycmVudFByaWNlBQAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UFAAAAEndhdmVzTG9ja2VkQmFsYW5jZQUAAAAHcmVzZXJ2ZQUAAAAOcmVzZXJ2ZXNJblVzZG4FAAAADm5ldXRyaW5vU3VwcGx5BQAAAAdzdXJwbHVzBQAAAA5zdXJwbHVzUGVyY2VudAUAAAACQlIFAAAACm5zYnRTdXBwbHkFAAAADW5zYnRTdXBwbHlNQVgAAAABaQEAAAAdZ2V0VW5zdGFrZUNvbWlzc2lvbkFtb3VudE1BVEgAAAACAAAABmFtb3VudAAAAAtzdGFydEhlaWdodAQAAAAIaGFsZkxpZmUJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABNuc2J0U3Rha2luZ0NvbnRyYWN0CQEAAAALa2V5SGFsZkxpZmUAAAAACQAFFAAAAAIFAAAAA25pbAkAAGsAAAADBQAAAAZhbW91bnQJAABsAAAABgAAAAAAAAAAAgAAAAAAAAAAAAkAAGsAAAADCQEAAAABLQAAAAEJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAAtzdGFydEhlaWdodAUAAAAETVVMVAUAAAAIaGFsZkxpZmUAAAAAAAAAAAgAAAAAAAAAAAgFAAAABkhBTEZVUAUAAAAETVVMVAAAAAFpAQAAAA9tZXJnZVN0YWtlc01BVEgAAAAEAAAAB2Ftb3VudDEAAAAHaGVpZ2h0MQAAAAdhbW91bnQyAAAAB2hlaWdodDIEAAAACGhhbGZMaWZlCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAATbnNidFN0YWtpbmdDb250cmFjdAkBAAAAC2tleUhhbGZMaWZlAAAAAAQAAAABdwkAAGsAAAADBQAAAAdhbW91bnQyCQAAbAAAAAYAAAAAAAAAAAIAAAAAAAAAAAAJAABrAAAAAwkAAGUAAAACBQAAAAdoZWlnaHQyBQAAAAdoZWlnaHQxBQAAAARNVUxUBQAAAAhoYWxmTGlmZQAAAAAAAAAACAAAAAAAAAAACAUAAAAGSEFMRlVQBQAAAARNVUxUBAAAAAF2CQAAawAAAAMJAABkAAAAAgUAAAAHYW1vdW50MQUAAAAHYW1vdW50MgUAAAAETVVMVAkAAGQAAAACBQAAAAdhbW91bnQxBQAAAAF3CQAFFAAAAAIFAAAAA25pbAkAAGQAAAACBQAAAAdoZWlnaHQxCQAAaQAAAAIJAABlAAAAAgUAAAAFSEFMRjgJAABoAAAAAgUAAAAIaGFsZkxpZmUJAABtAAAABgUAAAABdgAAAAAAAAAACAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAACAUAAAAGSEFMRlVQBQAAAARNVUxUAAAAAAXNCyo=", "chainId": 84, "height": 1937740, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Aa5vrUS7PeT22UnfNs7jkUM23C2vz7SuCvdo67S8pTuA Next: BjQC1wRfmE3xTrYs2ZdEMVZJCUXqpeiBRqVKZ9AHgoVU Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = | |
4 | + | let a = 100000000 | |
5 | 5 | ||
6 | - | func b (c) = valueOrElse(getInteger(a, c), 0) | |
6 | + | let b = 1000000 | |
7 | + | ||
8 | + | let c = toBigInt(1000000) | |
9 | + | ||
10 | + | let d = 1000000 | |
11 | + | ||
12 | + | let e = 100000000 | |
13 | + | ||
14 | + | let f = toBigInt(10000000000000000) | |
15 | + | ||
16 | + | let g = 8 | |
17 | + | ||
18 | + | let h = 16 | |
19 | + | ||
20 | + | let i = "__" | |
21 | + | ||
22 | + | let j = 50000000 | |
23 | + | ||
24 | + | let k = 271828182 | |
25 | + | ||
26 | + | let l = 1000000 | |
27 | + | ||
28 | + | let m = toBigInt(1000000) | |
29 | + | ||
30 | + | func n () = "%s%s__config__neutrinoAddress" | |
7 | 31 | ||
8 | 32 | ||
9 | - | func | |
33 | + | func o () = "%s%s__config__swapAParam" | |
10 | 34 | ||
11 | 35 | ||
12 | - | func | |
36 | + | func p () = "neutrino_asset_id" | |
13 | 37 | ||
14 | 38 | ||
15 | - | func | |
39 | + | func q () = "liquidation_contract" | |
16 | 40 | ||
17 | 41 | ||
18 | - | func | |
42 | + | func r () = "rpd_contract" | |
19 | 43 | ||
20 | 44 | ||
21 | - | func | |
45 | + | func s () = "auction_contract" | |
22 | 46 | ||
23 | 47 | ||
24 | - | let j = 30 | |
25 | - | ||
26 | - | let k = "_" | |
27 | - | ||
28 | - | let l = "+" | |
29 | - | ||
30 | - | let m = 100000000 | |
31 | - | ||
32 | - | let n = 1000000 | |
33 | - | ||
34 | - | let o = 1000000 | |
35 | - | ||
36 | - | let p = 100000000 | |
37 | - | ||
38 | - | let q = 8 | |
39 | - | ||
40 | - | let r = "neutrino_asset_id" | |
41 | - | ||
42 | - | let s = "bond_asset_id" | |
43 | - | ||
44 | - | let t = "auction_contract" | |
45 | - | ||
46 | - | let u = "liquidation_contract" | |
47 | - | ||
48 | - | let v = "rpd_contract" | |
49 | - | ||
50 | - | let w = "control_contract" | |
51 | - | ||
52 | - | let x = "balance_waves_lock_interval" | |
53 | - | ||
54 | - | let y = "balance_neutrino_lock_interval" | |
55 | - | ||
56 | - | let z = "min_waves_swap_amount" | |
57 | - | ||
58 | - | let A = "min_neutrino_swap_amount" | |
59 | - | ||
60 | - | let B = "node_oracle_provider" | |
61 | - | ||
62 | - | let C = "rpd_balance" | |
63 | - | ||
64 | - | func D (E) = ((C + "_") + toBase58String(E)) | |
48 | + | func t () = "control_contract" | |
65 | 49 | ||
66 | 50 | ||
67 | - | let F = "price" | |
68 | - | ||
69 | - | let G = "price_index" | |
70 | - | ||
71 | - | let H = "is_blocked" | |
72 | - | ||
73 | - | func I (J) = ((F + "_") + toString(J)) | |
51 | + | func u () = "bond_asset_id" | |
74 | 52 | ||
75 | 53 | ||
76 | - | func | |
54 | + | func v () = "balance_lock_" | |
77 | 55 | ||
78 | 56 | ||
79 | - | let M = "balance_lock_" | |
80 | - | ||
81 | - | let N = (M + "waves") | |
82 | - | ||
83 | - | let O = (M + "neutrino") | |
84 | - | ||
85 | - | func P (Q,E) = ((((C + "_") + toBase58String(E)) + "_") + toString(Q)) | |
57 | + | func w () = (v() + "waves") | |
86 | 58 | ||
87 | 59 | ||
88 | - | func | |
60 | + | func x () = (v() + "neutrino") | |
89 | 61 | ||
90 | 62 | ||
91 | - | func | |
63 | + | func y () = "min_waves_swap_amount" | |
92 | 64 | ||
93 | 65 | ||
94 | - | func | |
66 | + | func z () = "min_neutrino_swap_amount" | |
95 | 67 | ||
96 | 68 | ||
97 | - | func | |
69 | + | func A () = "wavesOut_swap_feePart" | |
98 | 70 | ||
99 | 71 | ||
100 | - | func | |
72 | + | func B () = "neutrinoOut_swap_feePart" | |
101 | 73 | ||
102 | 74 | ||
103 | - | func | |
75 | + | func C () = "%s__nsbtLockContract" | |
104 | 76 | ||
105 | 77 | ||
106 | - | func | |
78 | + | func D () = "%s__quickSwapLimitDuration" | |
107 | 79 | ||
108 | 80 | ||
109 | - | func | |
81 | + | func E (F) = makeString(["%s%s", "userLastQuickSwapHeight", F], i) | |
110 | 82 | ||
111 | 83 | ||
112 | - | func | |
84 | + | func G (F) = makeString(["%s%s", "quickSwapUserSpentInPeriod", F], i) | |
113 | 85 | ||
114 | 86 | ||
115 | - | ||
87 | + | func H () = "price" | |
116 | 88 | ||
117 | - | let ag = d(r) | |
118 | 89 | ||
119 | - | ||
90 | + | func I () = "%s__halfLife" | |
120 | 91 | ||
121 | - | let ai = d(t) | |
122 | 92 | ||
123 | - | ||
93 | + | func J (F) = makeString(["%s%s%s", "paramByUser", F, "amount"], i) | |
124 | 94 | ||
125 | - | let ak = d(w) | |
126 | 95 | ||
127 | - | ||
96 | + | func K (L,M) = valueOrErrorMessage(getString(L, M), makeString(["mandatory ", toString(L), ".", M, " is not defined"], "")) | |
128 | 97 | ||
129 | - | let am = i(ak, H) | |
130 | 98 | ||
131 | - | ||
99 | + | func N (L,M) = valueOrErrorMessage(getInteger(L, M), makeString(["mandatory ", toString(L), ".", M, " is not defined"], "")) | |
132 | 100 | ||
133 | - | let ao = b(x) | |
134 | 101 | ||
135 | - | ||
102 | + | func O (L,M) = valueOrErrorMessage(getBoolean(L, M), makeString(["mandatory ", toString(L), ".", M, " is not defined"], "")) | |
136 | 103 | ||
137 | - | let aq = b(z) | |
138 | 104 | ||
139 | - | ||
105 | + | func P (Q,R) = fraction(fraction(Q, d, R), a, b) | |
140 | 106 | ||
141 | - | let as = getStringValue(a, s) | |
142 | 107 | ||
143 | - | ||
108 | + | func S (Q,R) = fraction(fraction(Q, R, d), b, a) | |
144 | 109 | ||
145 | - | let au = fromBase58String("975akZBfnMj513U7MZaHKzQrmsEx5aE3wdWKTrHBhbjF") | |
146 | 110 | ||
147 | - | ||
111 | + | func T (U,V) = fraction(toBigInt(U), f, toBigInt(V)) | |
148 | 112 | ||
149 | - | let aw = b(O) | |
150 | 113 | ||
151 | - | ||
114 | + | func W (X,Y) = toInt(fraction(X, toBigInt(Y), f)) | |
152 | 115 | ||
153 | - | let ay = (wavesBalance(a).regular - ax) | |
154 | 116 | ||
155 | - | let az = ab(ay, av) | |
156 | - | ||
157 | - | let aA = (((aw + value(assetInfo(ah)).quantity) - assetBalance(a, ah)) - assetBalance(addressFromStringValue(af), ah)) | |
158 | - | ||
159 | - | let aB = (az - aA) | |
160 | - | ||
161 | - | let aC = (fraction(aB, n, aA) * 100) | |
162 | - | ||
163 | - | let aD = fraction(az, n, aA) | |
164 | - | ||
165 | - | let aE = addressFromStringValue(ai) | |
166 | - | ||
167 | - | let aF = value(assetInfo(at)).quantity | |
168 | - | ||
169 | - | let aG = (aF - assetBalance(aE, at)) | |
170 | - | ||
171 | - | let aH = 0 | |
172 | - | ||
173 | - | let aI = 1 | |
174 | - | ||
175 | - | let aJ = 2 | |
176 | - | ||
177 | - | let aK = 3 | |
178 | - | ||
179 | - | let aL = 4 | |
180 | - | ||
181 | - | let aM = 5 | |
182 | - | ||
183 | - | let aN = 6 | |
184 | - | ||
185 | - | func aO (aP,aQ,aa,aR,aS) = { | |
186 | - | let aT = 271828100 | |
187 | - | let aU = valueOrElse(getInteger(this, "nsbtCurveParam_a"), 3) | |
188 | - | let aV = valueOrElse(getInteger(this, "nsbtCurveParam_b"), ((3 * n) / 10)) | |
189 | - | let aW = ab(aP, aa) | |
190 | - | let aX = fraction(aW, p, aQ) | |
191 | - | let aY = (aU * (aX - (1 * p))) | |
192 | - | let aZ = pow(aT, q, aY, q, q, DOWN) | |
193 | - | let ba = fraction(aV, aZ, n) | |
194 | - | [aU, aV, aW, aX, aY, aZ, ba] | |
117 | + | func Z (X) = { | |
118 | + | let aa = X | |
119 | + | if ($isInstanceOf(aa, "List[Any]")) | |
120 | + | then { | |
121 | + | let ab = aa | |
122 | + | ab | |
123 | + | } | |
124 | + | else throw("fail to cast into List[Any]") | |
195 | 125 | } | |
196 | 126 | ||
197 | 127 | ||
198 | - | func bb () = { | |
199 | - | let bc = aO(ay, aA, av, aF, aG) | |
200 | - | let ba = bc[aN] | |
201 | - | let bd = fraction(aF, p, (aF - aG)) | |
202 | - | let be = fraction(bd, bd, p) | |
203 | - | let bf = fraction(ba, be, p) | |
204 | - | let bg = fraction(bf, n, p) | |
205 | - | let bh = fraction(bg, n, av) | |
206 | - | $Tuple2(IntegerEntry("nsbt2usdnPrice", bg), IntegerEntry("nsbt2wavesPrice", bh)) | |
128 | + | func ac (X) = { | |
129 | + | let aa = X | |
130 | + | if ($isInstanceOf(aa, "Int")) | |
131 | + | then { | |
132 | + | let ad = aa | |
133 | + | ad | |
134 | + | } | |
135 | + | else throw("fail to cast into Int") | |
207 | 136 | } | |
208 | 137 | ||
209 | 138 | ||
210 | - | func bi () = makeString(["resultNeutrinoStateREST", toString(av), toString(aw), toString(ax), toString(ay), toString(az), toString(aA), toString(aB), toString(aC), toString(aD), toString(aG)], "__") | |
139 | + | func ae (X) = { | |
140 | + | let aa = X | |
141 | + | if ($isInstanceOf(aa, "String")) | |
142 | + | then { | |
143 | + | let af = aa | |
144 | + | af | |
145 | + | } | |
146 | + | else throw("fail to cast into String") | |
147 | + | } | |
211 | 148 | ||
212 | 149 | ||
213 | - | @Callable(bj) | |
214 | - | func neutrinoStateREST () = throw(bi()) | |
150 | + | let ag = addressFromStringValue(K(this, n())) | |
151 | + | ||
152 | + | let ah = addressFromStringValue(K(ag, t())) | |
153 | + | ||
154 | + | let ai = addressFromStringValue(K(ag, s())) | |
155 | + | ||
156 | + | let aj = K(ag, q()) | |
157 | + | ||
158 | + | let ak = K(ag, r()) | |
159 | + | ||
160 | + | let al = addressFromStringValue(K(this, C())) | |
161 | + | ||
162 | + | let am = K(ag, p()) | |
163 | + | ||
164 | + | let an = fromBase58String(am) | |
165 | + | ||
166 | + | let ao = getStringValue(ag, u()) | |
167 | + | ||
168 | + | let ap = fromBase58String(ao) | |
169 | + | ||
170 | + | @Callable(aq) | |
171 | + | func constructor (ar,as,at) = if ((aq.caller != this)) | |
172 | + | then throw("not authorized") | |
173 | + | else [StringEntry(n(), ar), StringEntry(C(), as), IntegerEntry(o(), at)] | |
215 | 174 | ||
216 | 175 | ||
217 | 176 | ||
218 | - | @Callable(bj) | |
219 | - | func neutrinoStateREADONLY () = $Tuple2(nil, ("%s%d%d%d%d%d%d%d%d%d%d__" + bi())) | |
177 | + | @Callable(aq) | |
178 | + | func calcSwapLimitMATH (au) = { | |
179 | + | let av = valueOrErrorMessage(getIntegerValue(this, o()), "Swap parameter A missed.") | |
180 | + | let aw = toBigInt(au) | |
181 | + | let ax = pow(aw, 0, toBigInt(k), 8, 0, DOWN) | |
182 | + | let ay = fraction(toBigInt(av), ax, m) | |
183 | + | $Tuple2(nil, ay) | |
184 | + | } | |
220 | 185 | ||
221 | 186 | ||
222 | 187 | ||
223 | - | @Callable(bj) | |
224 | - | func nsbtPriceREST () = { | |
225 | - | let bk = bb() | |
226 | - | let bg = bk._1.value | |
227 | - | let bh = bk._2.value | |
228 | - | let bl = makeString(["startNsbtPriceREST", toString(bg), toString(bh), "endNsbtPriceREST"], "__") | |
229 | - | throw(bl) | |
188 | + | @Callable(aq) | |
189 | + | func calculateKMATH (az,aA,R,aB,aC) = { | |
190 | + | let aD = toBigInt(2718281) | |
191 | + | let aE = 6 | |
192 | + | let aF = valueOrElse(getInteger(ai, "nsbtCurveParam_a"), 3) | |
193 | + | let aG = valueOrElse(getInteger(ai, "nsbtCurveParam_b"), ((3 * b) / 10)) | |
194 | + | let aH = S(az, R) | |
195 | + | let aI = fraction(aH, e, aA) | |
196 | + | if ((aI > 10678564816)) | |
197 | + | then throw("BR > 10678.564816% will overflow exponent") | |
198 | + | else { | |
199 | + | let aJ = (aF * (aI - e)) | |
200 | + | let aK = pow(aD, aE, toBigInt(aJ), g, h, DOWN) | |
201 | + | let aL = fraction(toBigInt(aG), aK, c) | |
202 | + | $Tuple2(nil, $Tuple7(aF, aG, aH, aI, aJ, toString(aK), toString(aL))) | |
203 | + | } | |
204 | + | } | |
205 | + | ||
206 | + | ||
207 | + | ||
208 | + | @Callable(aq) | |
209 | + | func curveFunctionMATH (az,aA,R,aB,aC,aM) = { | |
210 | + | let aN = Z(invoke(this, "calculateKMATH", [az, aA, R, aB, aC], nil)) | |
211 | + | if ((aN == aN)) | |
212 | + | then { | |
213 | + | let aL = parseBigIntValue(ae(aN[7])) | |
214 | + | let aO = S(aM, R) | |
215 | + | let aP = toBigInt(aB) | |
216 | + | let aQ = toBigInt((aB - aC)) | |
217 | + | let aR = fraction(toBigInt(aO), f, aL) | |
218 | + | let aS = fraction(aR, aQ, aP) | |
219 | + | let aT = toInt(fraction(aQ, aP, (aS + aP))) | |
220 | + | let aU = ((aB - aC) - aT) | |
221 | + | $Tuple2(nil, $Tuple17(aU, aO, az, aA, aB, aC, ac(aN[1]), ac(aN[2]), ac(aN[3]), ac(R), ac(aN[4]), ac(aN[5]), aN[6], aN[7], toString(aR), toString(aS), toString(aT))) | |
222 | + | } | |
223 | + | else throw("Strict value is not equal to itself.") | |
224 | + | } | |
225 | + | ||
226 | + | ||
227 | + | ||
228 | + | @Callable(aq) | |
229 | + | func calcContractNsbtPriceMATH () = { | |
230 | + | let aV = value(assetInfo(ap)).quantity | |
231 | + | let aW = Z(invoke(this, "calcNeutinoMetricsMATH", nil, nil)) | |
232 | + | if ((aW == aW)) | |
233 | + | then { | |
234 | + | let aX = ac(aW[10]) | |
235 | + | let aY = ac(aW[1]) | |
236 | + | let aN = Z(invoke(this, "calculateKMATH", [ac(aW[4]), ac(aW[6]), aY, aV, aX], nil)) | |
237 | + | if ((aN == aN)) | |
238 | + | then { | |
239 | + | let aL = parseBigIntValue(ae(aN[7])) | |
240 | + | let aZ = W(aL, e) | |
241 | + | let ba = fraction(aV, e, (aV - aX)) | |
242 | + | let bb = fraction(ba, ba, e) | |
243 | + | let bc = fraction(aZ, bb, e) | |
244 | + | let bd = fraction(bc, b, e) | |
245 | + | let be = fraction(bd, b, aY) | |
246 | + | $Tuple2(nil, $Tuple2(bd, be)) | |
247 | + | } | |
248 | + | else throw("Strict value is not equal to itself.") | |
249 | + | } | |
250 | + | else throw("Strict value is not equal to itself.") | |
251 | + | } | |
252 | + | ||
253 | + | ||
254 | + | ||
255 | + | @Callable(aq) | |
256 | + | func calcUserSwapLimitsMATH (bf) = { | |
257 | + | let bg = valueOrElse(getInteger(al, J(bf)), 0) | |
258 | + | let bh = ac(invoke(this, "calcSwapLimitMATH", [bg], nil)) | |
259 | + | if ((bh == bh)) | |
260 | + | then { | |
261 | + | let bi = getIntegerValue(ag, D()) | |
262 | + | let bj = valueOrElse(getInteger(ag, E(bf)), 0) | |
263 | + | let bk = ((height - bj) > bi) | |
264 | + | let bl = if (bk) | |
265 | + | then 0 | |
266 | + | else valueOrElse(getInteger(ag, G(bf)), 0) | |
267 | + | $Tuple2(nil, $Tuple2(bh, bl)) | |
268 | + | } | |
269 | + | else throw("Strict value is not equal to itself.") | |
270 | + | } | |
271 | + | ||
272 | + | ||
273 | + | ||
274 | + | @Callable(aq) | |
275 | + | func calcNeutinoMetricsMATH () = { | |
276 | + | let aY = getIntegerValue(ah, H()) | |
277 | + | let bm = valueOrElse(getInteger(ag, x()), 0) | |
278 | + | let bn = valueOrElse(getInteger(ag, w()), 0) | |
279 | + | let bo = (wavesBalance(ag).regular - bn) | |
280 | + | let bp = S(bo, aY) | |
281 | + | let bq = (((bm + value(assetInfo(an)).quantity) - assetBalance(ag, an)) - assetBalance(addressFromStringValue(aj), an)) | |
282 | + | let br = (bp - bq) | |
283 | + | let bs = (bq - bp) | |
284 | + | let bt = (fraction(br, b, bq) * 100) | |
285 | + | let bu = fraction(bp, b, bq) | |
286 | + | let aV = value(assetInfo(ap)).quantity | |
287 | + | let aX = (aV - assetBalance(ai, ap)) | |
288 | + | $Tuple2(nil, $Tuple11(aY, bm, bn, bo, bp, bq, br, bt, bu, aX, aV)) | |
289 | + | } | |
290 | + | ||
291 | + | ||
292 | + | ||
293 | + | @Callable(aq) | |
294 | + | func getUnstakeComissionAmountMATH (Q,bv) = { | |
295 | + | let bw = N(al, I()) | |
296 | + | $Tuple2(nil, fraction(Q, pow(2, 0, fraction(-((height - bv)), e, bw), 8, 8, HALFUP), e)) | |
297 | + | } | |
298 | + | ||
299 | + | ||
300 | + | ||
301 | + | @Callable(aq) | |
302 | + | func mergeStakesMATH (bx,by,bz,bA) = { | |
303 | + | let bw = N(al, I()) | |
304 | + | let bB = fraction(bz, pow(2, 0, fraction((bA - by), e, bw), 8, 8, HALFUP), e) | |
305 | + | let bC = fraction((bx + bz), e, (bx + bB)) | |
306 | + | $Tuple2(nil, (by + ((j - (bw * log(bC, 8, 2, 0, 8, HALFUP))) / e))) | |
230 | 307 | } | |
231 | 308 | ||
232 | 309 |
github/deemru/w8io/026f985 69.94 ms ◑