tx · 8Nseudzdg2oaYuuojoTrNNVYtPz5mseFGLKcg3XcFWM

3PG2vMhK5CPqsCDodvLGzQ84QkoHXCJ3oNP:  -0.01400000 Waves

2020.03.18 17:43 [1977993] smart account 3PG2vMhK5CPqsCDodvLGzQ84QkoHXCJ3oNP > SELF 0.00000000 Waves

{ "type": 13, "id": "8Nseudzdg2oaYuuojoTrNNVYtPz5mseFGLKcg3XcFWM", "fee": 1400000, "feeAssetId": null, "timestamp": 1584540517241, "version": 1, "sender": "3PG2vMhK5CPqsCDodvLGzQ84QkoHXCJ3oNP", "senderPublicKey": "5RM3w4ysmDbtgfswnVNPx7DQkNwVAG3RoxNFHgt6ToNU", "proofs": [ "35DfcjNdFo3EwvDqaeKjTLwKjQ6sJ1cQy1VMEX4nUBWgQYzmGKqoCJBH8jiS3t9ZptJPs7PD8Ywe1rgrxwBrjfi5", "48XopTqKsp88SxrNjGTh5kwCPAoz2sHL1NPTmN9JZnwbb7hkKrRMZVsQ3gPd9S3kdpRG9wTwmMP1gvdURKgEw2k5", "2yDsUknAaWCo8dyLY2NK13aPGcArRg7J9KUFinR4WiDCvsKW5joh2jPNY5XVozvgoX8MFzskXpfzLQ1JECpwQhDM" ], "script": "base64:AAIDAAAAAAAAAA8IARIECgIBCBIDCgEIEgAAAAA3AQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAFmdldEJvb2xCeUFkZHJlc3NBbmRLZXkAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQcBAAAAGGdldFN0cmluZ0J5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAAAAAAHV0FWRUxFVAAAAAAABfXhAAAAAAAFUEFVTEkAAAAAAAAPQkAAAAAAD1BFUkNFTlRBQ0NVUkFDWQAAAAAAAAAD6AAAAAANTUlOT1JERVJUT1RBTAkAAGgAAAACAAAAAAAAAAAKBQAAAAdXQVZFTEVUAAAAAAZNQVhST0kAAAAAAAAAAGQAAAAACENBTkNFTEVEAgAAAAhjYW5jZWxlZAAAAAADTkVXAgAAAANuZXcAAAAABkZJTExFRAIAAAAGZmlsbGVkAAAAABNOZXV0cmlub0NvbnRyYWN0S2V5AgAAABFuZXV0cmlub19jb250cmFjdAAAAAAIUHJpY2VLZXkCAAAABXByaWNlAAAAAA5Cb25kQXNzZXRJZEtleQIAAAANYm9uZF9hc3NldF9pZAAAAAASTmV1dHJpbm9Bc3NldElkS2V5AgAAABFuZXV0cmlub19hc3NldF9pZAAAAAASQ29udHJvbENvbnRyYWN0S2V5AgAAABBjb250cm9sX2NvbnRyYWN0AAAAABFCYWxhbmNlTG9ja2Vka0tleQIAAAANYmFsYW5jZV9sb2NrXwAAAAAVV2F2ZXNMb2NrZWRCYWxhbmNlS2V5CQABLAAAAAIFAAAAEUJhbGFuY2VMb2NrZWRrS2V5AgAAAAV3YXZlcwAAAAAYTmV1dHJpbm9Mb2NrZWRCYWxhbmNlS2V5CQABLAAAAAIFAAAAEUJhbGFuY2VMb2NrZWRrS2V5AgAAAAhuZXV0cmlubwAAAAAWTGlxdWlkYXRpb25Db250cmFjdEtleQIAAAAUbGlxdWlkYXRpb25fY29udHJhY3QAAAAADUZpcnN0T3JkZXJLZXkCAAAAC29yZGVyX2ZpcnN0AQAAABJnZXRSb2lCeU9yZGVySWRLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAAQZGVidWdfb3JkZXJfcm9pXwUAAAAHb3JkZXJJZAEAAAAQZ2V0T3JkZXJQcmljZUtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAAxvcmRlcl9wcmljZV8FAAAAB29yZGVySWQBAAAAEGdldE9yZGVyVG90YWxLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAAMb3JkZXJfdG90YWxfBQAAAAdvcmRlcklkAQAAABBnZXRPcmRlck93bmVyS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAADG9yZGVyX293bmVyXwUAAAAHb3JkZXJJZAEAAAARZ2V0T3JkZXJIZWlnaHRLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAANb3JkZXJfaGVpZ2h0XwUAAAAHb3JkZXJJZAEAAAARZ2V0T3JkZXJTdGF0dXNLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAANb3JkZXJfc3RhdHVzXwUAAAAHb3JkZXJJZAEAAAAWZ2V0T3JkZXJGaWxsZWRUb3RhbEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAABNvcmRlcl9maWxsZWRfdG90YWxfBQAAAAdvcmRlcklkAQAAAA9nZXRQcmV2T3JkZXJLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAALb3JkZXJfcHJldl8FAAAAB29yZGVySWQBAAAAD2dldE5leHRPcmRlcktleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAAtvcmRlcl9uZXh0XwUAAAAHb3JkZXJJZAEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQAAawAAAAMJAABrAAAAAwUAAAAGYW1vdW50AAAAAAAAAABkBQAAAAVwcmljZQUAAAAHV0FWRUxFVAUAAAAFUEFVTEkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACAAAABmFtb3VudAAAAAVwcmljZQkAAGsAAAADCQAAawAAAAMFAAAABmFtb3VudAUAAAAFcHJpY2UAAAAAAAAAAGQFAAAABVBBVUxJBQAAAAdXQVZFTEVUAQAAABJjb252ZXJ0V2F2ZXNUb0JvbmQAAAACAAAABmFtb3VudAAAAAVwcmljZQkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAAZhbW91bnQFAAAABXByaWNlAQAAABJjb252ZXJ0Qm9uZFRvV2F2ZXMAAAACAAAABmFtb3VudAAAAAVwcmljZQkBAAAAFmNvbnZlcnROZXV0cmlub1RvV2F2ZXMAAAACBQAAAAZhbW91bnQFAAAABXByaWNlAAAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAECAAAAIzNQQzlCZlJ3SldXaXc5QVJFRTJCM2VXekNrczNDWXRnNHlvAAAAAA9jb250cm9sQ29udHJhY3QJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM1A1QmZkNThQUGZOdkJNMkh5OFFmYmNEcU1lTnR6ZzdLZlAAAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM1A0UEN4c0pxTXpRQkFMbzh6QU5IdEJEWlJScXVvYkhRcDcAAAAAD25ldXRyaW5vQXNzZXRJZAkAAlkAAAABAgAAACxERzJ4RmtQZER3S1VvQmt6R0FoUXRMcFNHemZYTGlDWVBFemVLSDJBZDI0cAAAAAALYm9uZEFzc2V0SWQJAAJZAAAAAQIAAAAsNm5TcFZ5Tkg3eU02OWVnNDQ2d3JRUjk0aXBiYmNtWk1VMUVOUHdhbkM5N2cAAAAACWlzQmxvY2tlZAkBAAAAFmdldEJvb2xCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9jb250cm9sQ29udHJhY3QCAAAACmlzX2Jsb2NrZWQAAAAADGN1cnJlbnRQcmljZQkBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAUAAAAIUHJpY2VLZXkAAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQkBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAGE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQAAAAAHcmVzZXJ2ZQkAAGUAAAACCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAFVdhdmVzTG9ja2VkQmFsYW5jZUtleQAAAAAObmV1dHJpbm9TdXBwbHkJAABlAAAAAgkAAGUAAAACCQAAZAAAAAIFAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQgJAQAAAAdleHRyYWN0AAAAAQkAA+wAAAABBQAAAA9uZXV0cmlub0Fzc2V0SWQAAAAIcXVhbnRpdHkJAAPrAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAPbmV1dHJpbm9Bc3NldElkCQAD6wAAAAIFAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QFAAAAD25ldXRyaW5vQXNzZXRJZAAAAAAHZGVmaWNpdAkAAGUAAAACBQAAAA5uZXV0cmlub1N1cHBseQkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAAdyZXNlcnZlBQAAAAxjdXJyZW50UHJpY2UAAAAACmZpcnN0T3JkZXIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAADUZpcnN0T3JkZXJLZXkBAAAADWdldE9yZGVyUHJpY2UAAAABAAAAAmlkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAQZ2V0T3JkZXJQcmljZUtleQAAAAEFAAAAAmlkAQAAAA1nZXRPcmRlclRvdGFsAAAAAQAAAAJpZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEGdldE9yZGVyVG90YWxLZXkAAAABBQAAAAJpZAEAAAANZ2V0T3JkZXJPd25lcgAAAAEAAAACaWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABBnZXRPcmRlck93bmVyS2V5AAAAAQUAAAACaWQBAAAADmdldE9yZGVyU3RhdHVzAAAAAQAAAAJpZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEWdldE9yZGVyU3RhdHVzS2V5AAAAAQUAAAACaWQBAAAAE2dldE9yZGVyRmlsbGVkVG90YWwAAAABAAAAAmlkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAWZ2V0T3JkZXJGaWxsZWRUb3RhbEtleQAAAAEFAAAAAmlkAQAAAAxnZXRQcmV2T3JkZXIAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAPZ2V0UHJldk9yZGVyS2V5AAAAAQUAAAACaWQBAAAADGdldE5leHRPcmRlcgAAAAEAAAACaWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA9nZXROZXh0T3JkZXJLZXkAAAABBQAAAAJpZAAAAAMAAAABaQEAAAAPYWRkQnV5Qm9uZE9yZGVyAAAAAgAAAAVwcmljZQAAAAlwcmV2T3JkZXIEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAdvcmRlcklkCQACWAAAAAEJAAH1AAAAAQkAAMsAAAAC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RW50cnkAAAACCQABLAAAAAICAAAAGWRlYnVnX29yZGVyX2N1cnJlbnRQcmljZV8FAAAAB29yZGVySWQFAAAADGN1cnJlbnRQcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldFJvaUJ5T3JkZXJJZEtleQAAAAEFAAAAB29yZGVySWQFAAAAA3JvaQUAAAADbmlsAAAAAWkBAAAAC2NhbmNlbE9yZGVyAAAAAQAAAAdvcmRlcklkBAAAAAVvd25lcgkBAAAADWdldE9yZGVyT3duZXIAAAABBQAAAAdvcmRlcklkBAAAAAZhbW91bnQJAABlAAAAAgkBAAAADWdldE9yZGVyVG90YWwAAAABBQAAAAdvcmRlcklkCQEAAAATZ2V0T3JkZXJGaWxsZWRUb3RhbAAAAAEFAAAAB29yZGVySWQEAAAABmNhbGxlcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAACW5leHRPcmRlcgkBAAAADGdldE5leHRPcmRlcgAAAAEFAAAAB29yZGVySWQEAAAACXByZXZPcmRlcgkBAAAADGdldFByZXZPcmRlcgAAAAEFAAAAB29yZGVySWQDBQAAAAlpc0Jsb2NrZWQJAAACAAAAAQIAAABaY29udHJhY3QgaXMgYmxvY2tlZCBieSBFTUVSR0VOQ1kgU0hVVERPV04gYWN0aW9ucyB1bnRpbGwgcmVhY3RpdmF0aW9uIGJ5IGVtZXJnZW5jeSBvcmFjbGVzAwkBAAAAAiE9AAAAAgUAAAAFb3duZXIFAAAABmNhbGxlcgkAAAIAAAABAgAAABFwZXJtaXNzaW9uIGRlbmllZAMJAQAAAAIhPQAAAAIJAQAAAA5nZXRPcmRlclN0YXR1cwAAAAEFAAAAB29yZGVySWQFAAAAA05FVwkAAAIAAAABAgAAABRpbnZhbGlkIG9yZGVyIHN0YXR1cwkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADUZpcnN0T3JkZXJLZXkDCQAAAAAAAAIFAAAACmZpcnN0T3JkZXIFAAAAB29yZGVySWQFAAAACW5leHRPcmRlcgUAAAAKZmlyc3RPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldE5leHRPcmRlcktleQAAAAEFAAAACXByZXZPcmRlcgUAAAAJbmV4dE9yZGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0UHJldk9yZGVyS2V5AAAAAQUAAAAJbmV4dE9yZGVyBQAAAAlwcmV2T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEFAAAAB29yZGVySWQFAAAACENBTkNFTEVEBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZhbW91bnQFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAAAhzZWxsQm9uZAAAAAAEAAAAC2JvbmRCYWxhbmNlCQAD6wAAAAIFAAAABHRoaXMFAAAAC2JvbmRBc3NldElkBAAAAA9kZWZpY2l0UG9zaXRpdmUDCQAAZwAAAAIAAAAAAAAAAAAFAAAAB2RlZmljaXQAAAAAAAAAAAAFAAAAB2RlZmljaXQEAAAACmJvbmRBbW91bnQDCQAAZwAAAAIFAAAAD2RlZmljaXRQb3NpdGl2ZQUAAAALYm9uZEJhbGFuY2UFAAAAC2JvbmRCYWxhbmNlBQAAAA9kZWZpY2l0UG9zaXRpdmUEAAAADHJldHVybkFtb3VudAMJAABnAAAAAgUAAAAPZGVmaWNpdFBvc2l0aXZlBQAAAAtib25kQmFsYW5jZQAAAAAAAAAAAAkAAGUAAAACBQAAAAtib25kQmFsYW5jZQUAAAAPZGVmaWNpdFBvc2l0aXZlAwMJAAAAAAAAAgUAAAAPZGVmaWNpdFBvc2l0aXZlAAAAAAAAAAAACQAAAAAAAAIFAAAAC2JvbmRCYWxhbmNlAAAAAAAAAAAABwkAAAIAAAABAgAAAA93aXRob3V0IGRlZmljaXQDCQAAAAAAAAIFAAAAC2JvbmRCYWxhbmNlAAAAAAAAAAAACQAAAgAAAAECAAAAFXdpdGhvdXQgYm9uZHMgdG8gc2VsbAMJAABmAAAAAgUAAAAMcmV0dXJuQW1vdW50AAAAAAAAAAAACQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAADHJldHVybkFtb3VudAUAAAALYm9uZEFzc2V0SWQFAAAAA25pbAMJAAAAAAAAAgUAAAAKZmlyc3RPcmRlcgIAAAAACQAAAgAAAAECAAAAD2VtcHR5IG9yZGVyYm9vawQAAAAJbmV4dE9yZGVyCQEAAAAMZ2V0TmV4dE9yZGVyAAAAAQUAAAAKZmlyc3RPcmRlcgQAAAALZmlsbGVkVG90YWwJAQAAABNnZXRPcmRlckZpbGxlZFRvdGFsAAAAAQUAAAAKZmlyc3RPcmRlcgQAAAAKb3JkZXJQcmljZQkBAAAADWdldE9yZGVyUHJpY2UAAAABBQAAAApmaXJzdE9yZGVyBAAAABVwcmljZVdhdmVzQnlCb25kQ2VudHMJAABrAAAAAwAAAAAAAAAAZAAAAAAAAAAAZAUAAAAKb3JkZXJQcmljZQQAAAADcm9pCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0Um9pQnlPcmRlcklkS2V5AAAAAQUAAAAKZmlyc3RPcmRlcgQAAAANcmVtYWluZWRUb3RhbAkAAGUAAAACCQEAAAANZ2V0T3JkZXJUb3RhbAAAAAEFAAAACmZpcnN0T3JkZXIFAAAAC2ZpbGxlZFRvdGFsBAAAABRhbW91bnRUb0V4ZWN1dGVPcmRlcgkBAAAAEmNvbnZlcnRXYXZlc1RvQm9uZAAAAAIFAAAADXJlbWFpbmVkVG90YWwFAAAAFXByaWNlV2F2ZXNCeUJvbmRDZW50cwQAAAASZmlsbE9yZGVyQ29uZGl0aW9uCQAAZwAAAAIFAAAACmJvbmRBbW91bnQFAAAAFGFtb3VudFRvRXhlY3V0ZU9yZGVyBAAAABNmaWxsYWJsZU9yZGVyQW1vdW50AwUAAAASZmlsbE9yZGVyQ29uZGl0aW9uBQAAABRhbW91bnRUb0V4ZWN1dGVPcmRlcgUAAAAKYm9uZEFtb3VudAQAAAAbdG90YWxPcmRlcldhdmVsZXRlc1JlcXVpcmVkCQEAAAASY29udmVydEJvbmRUb1dhdmVzAAAAAgUAAAATZmlsbGFibGVPcmRlckFtb3VudAUAAAAVcHJpY2VXYXZlc0J5Qm9uZENlbnRzAwMJAABmAAAAAgUAAAADcm9pCQAAawAAAAMFAAAAB2RlZmljaXQAAAAAAAAAAGQFAAAADm5ldXRyaW5vU3VwcGx5BgkAAGcAAAACAAAAAAAAAAAABQAAAA9kZWZpY2l0UG9zaXRpdmUJAAACAAAAAQkAASwAAAACAgAAAC1kZWZpY2l0IHNob3VsZCBiZSBoaWd0aGVyIG9yIGVxdWFsIHRoYW4gcm9pOiAJAAGkAAAAAQUAAAADcm9pAwkAAAAAAAACBQAAABRhbW91bnRUb0V4ZWN1dGVPcmRlcgAAAAAAAAAAAAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADUZpcnN0T3JkZXJLZXkFAAAACW5leHRPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldFByZXZPcmRlcktleQAAAAEFAAAACW5leHRPcmRlcgIAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA1GaXJzdE9yZGVyS2V5BQAAAAluZXh0T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEFAAAACmZpcnN0T3JkZXIFAAAABkZJTExFRAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkBAAAADWdldE9yZGVyT3duZXIAAAABBQAAAApmaXJzdE9yZGVyBQAAAA1yZW1haW5lZFRvdGFsBQAAAAR1bml0BQAAAANuaWwDCQAAAAAAAAIFAAAAG3RvdGFsT3JkZXJXYXZlbGV0ZXNSZXF1aXJlZAAAAAAAAAAAAAkAAAIAAAABAgAAAB9jYW5ub3QgZmlsbCBvcmRlciBhdCB0aGUgbW9tZW50BAAAAAluZXdTdGF0dXMDAwUAAAASZmlsbE9yZGVyQ29uZGl0aW9uCQAAAAAAAAIFAAAADXJlbWFpbmVkVG90YWwAAAAAAAAAAAAHBQAAAAZGSUxMRUQFAAAAA05FVwkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nZXRQcmV2T3JkZXJLZXkAAAABBQAAAAluZXh0T3JkZXIDCQAAAAAAAAIFAAAACW5ld1N0YXR1cwUAAAAGRklMTEVEAgAAAAAFAAAACmZpcnN0T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADUZpcnN0T3JkZXJLZXkDCQAAAAAAAAIFAAAACW5ld1N0YXR1cwUAAAAGRklMTEVEBQAAAAluZXh0T3JkZXIFAAAACmZpcnN0T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRPcmRlckZpbGxlZFRvdGFsS2V5AAAAAQUAAAAKZmlyc3RPcmRlcgkAAGQAAAACBQAAAAtmaWxsZWRUb3RhbAUAAAAbdG90YWxPcmRlcldhdmVsZXRlc1JlcXVpcmVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0T3JkZXJTdGF0dXNLZXkAAAABBQAAAApmaXJzdE9yZGVyBQAAAAluZXdTdGF0dXMFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAQAAAA1nZXRPcmRlck93bmVyAAAAAQUAAAAKZmlyc3RPcmRlcgUAAAATZmlsbGFibGVPcmRlckFtb3VudAUAAAALYm9uZEFzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAbdG90YWxPcmRlcldhdmVsZXRlc1JlcXVpcmVkBQAAAAR1bml0BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAABBwdWJLZXlBZG1pbnNMaXN0CQAETAAAAAICAAAALEJMRW9ndXpQVktWVGZYeHhUM1c3UnFmOGFVbTJnZ0M5VmVtZDJNUWF3TTJHCQAETAAAAAICAAAALEZXVmZmWXIyQUxtSE1lalptM1dxZUx6NlNkeW0zZ0xGR3RKbjRLVHd5VTV4CQAETAAAAAICAAAALDNXaDJMYVdjYjVnZzdLMnBQY1czRXA2RUF1UkJ6WWtBZ3JkcHQ0M2pUREZhCQAETAAAAAICAAAALDVXUlhGU2p3Y1RiTmZLY0pzOFpxWG1TU1dZc1NWSlV0TXZNcVpqNWhINE5jBQAAAANuaWwEAAAABWNvdW50CQAAZAAAAAIJAABkAAAAAgkAAGQAAAACAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAACAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAMJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAADAAAAAAAAAAACAAAAAAAAAAAACQAAZwAAAAIFAAAABWNvdW50AAAAAAAAAAADN8DAQA==", "chainId": 87, "height": 1977993, "spentComplexity": 0 } View: original | compacted Prev: 9L11W5umyQSajEmJh6mePgYpzuiaWApojz1NCgr8DTdk Next: 5gMK6KRbNrKTgwPe7SiYQVaUUa2GZiQcMpQWckSfytkc Diff:
OldNewDifferences
125125 func O (M,N) = fraction(fraction(M, N, 100), k, j)
126126
127127
128-func P (M) = (M / k)
128+func P (M,N) = O(M, N)
129129
130130
131-func Q (M) = (M * k)
131+func Q (M,N) = L(M, N)
132132
133133
134-func R (M,N) = P(O(M, N))
134+let R = addressFromStringValue("3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo")
135+
136+let S = addressFromStringValue("3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP")
137+
138+let T = addressFromStringValue("3P4PCxsJqMzQBALo8zANHtBDZRRquobHQp7")
139+
140+let U = fromBase58String("DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p")
141+
142+let V = fromBase58String("6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g")
143+
144+let W = f(S, "is_blocked")
145+
146+let X = i(S, s)
147+
148+let Y = i(R, y)
149+
150+let Z = (wavesBalance(R) - i(R, x))
151+
152+let aa = (((Y + extract(assetInfo(U)).quantity) - assetBalance(R, U)) - assetBalance(T, U))
153+
154+let ab = (aa - O(Z, X))
155+
156+let ac = e(A)
157+
158+func ad (ae) = a(D(ae))
135159
136160
137-func S (M,N) = L(Q(M), N)
161+func af (ae) = a(E(ae))
138162
139163
140-let T = addressFromStringValue("3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo")
141-
142-let U = addressFromStringValue("3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP")
143-
144-let V = addressFromStringValue("3P4PCxsJqMzQBALo8zANHtBDZRRquobHQp7")
145-
146-let W = fromBase58String("DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p")
147-
148-let X = fromBase58String("975akZBfnMj513U7MZaHKzQrmsEx5aE3wdWKTrHBhbjF")
149-
150-let Y = f(U, "is_blocked")
151-
152-let Z = i(U, s)
153-
154-let aa = i(T, y)
155-
156-let ab = (wavesBalance(T) - i(T, x))
157-
158-let ac = (((aa + extract(assetInfo(W)).quantity) - assetBalance(T, W)) - assetBalance(V, W))
159-
160-let ad = (ac - O(ab, Z))
161-
162-let ae = e(A)
163-
164-func af (ag) = a(D(ag))
164+func ag (ae) = e(F(ae))
165165
166166
167-func ah (ag) = a(E(ag))
167+func ah (ae) = e(H(ae))
168168
169169
170-func ai (ag) = e(F(ag))
170+func ai (ae) = a(I(ae))
171171
172172
173-func aj (ag) = e(H(ag))
173+func aj (ae) = e(J(ae))
174174
175175
176-func ak (ag) = a(I(ag))
176+func ak (ae) = e(K(ae))
177177
178178
179-func al (ag) = e(J(ag))
180-
181-
182-func am (ag) = e(K(ag))
183-
184-
185-@Callable(an)
186-func addBuyBondOrder (N,ao) = {
187- let ap = extract(an.payment)
188- let C = toBase58String(keccak256(((((toBytes(N) + toBytes(ap.amount)) + an.caller.bytes) + toBytes(height)) + an.transactionId)))
189- let aq = fraction(100, 100, N)
190- let ar = fraction((aq - Z), 100, Z)
191- if (Y)
179+@Callable(al)
180+func addBuyBondOrder (N,am) = {
181+ let an = extract(al.payment)
182+ let C = toBase58String(keccak256(((((toBytes(N) + toBytes(an.amount)) + al.caller.bytes) + toBytes(height)) + al.transactionId)))
183+ let ao = fraction(100, 100, N)
184+ let ap = fraction((ao - X), 100, X)
185+ if (W)
192186 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
193- else if ((0 >= ad))
187+ else if ((0 >= ab))
194188 then throw("there is no ability to add order during proficit")
195- else if ((m > ap.amount))
189+ else if ((m > an.amount))
196190 then throw(("min order total equals " + toString(m)))
197- else if ((ar > n))
191+ else if ((ap > n))
198192 then throw("max setOrder ROI is 100%")
199- else if ((0 >= ar))
193+ else if ((0 >= ap))
200194 then throw("min setOrder ROI is more than 0%")
201- else if (isDefined(ap.assetId))
195+ else if (isDefined(an.assetId))
202196 then throw("can use waves only")
203197 else if ((0 >= N))
204198 then throw("price less zero")
205- else if ((ai(C) != ""))
199+ else if ((ag(C) != ""))
206200 then throw("order exists")
207- else if (if ((ao != ""))
208- then (aj(ao) != p)
201+ else if (if ((am != ""))
202+ then (ah(am) != p)
209203 else false)
210204 then throw("prev order status is not new")
211205 else {
212- let as = toString(an.caller)
213- let at = if ((ao == ""))
214- then ae
215- else am(ao)
216- let au = a(B(at))
217- let av = if (if ((at != ""))
218- then (ar >= au)
206+ let aq = toString(al.caller)
207+ let ar = if ((am == ""))
208+ then ac
209+ else ak(am)
210+ let as = a(B(ar))
211+ let at = if (if ((ar != ""))
212+ then (ap >= as)
219213 else false)
220214 then true
221215 else false
222- let aw = a(B(ao))
223- let ax = if (if ((ao != ""))
224- then (aw > ar)
216+ let au = a(B(am))
217+ let av = if (if ((am != ""))
218+ then (au > ap)
225219 else false)
226220 then true
227221 else false
228- if (if (av)
222+ if (if (at)
229223 then true
230- else ax)
231- then throw(((("invalid order isPrevOrderError:" + toString(ax)) + " isNextOrderError:") + toString(av)))
232- else WriteSet([DataEntry(J(C), ao), DataEntry(K(C), at), DataEntry(K(ao), if ((ao == ""))
224+ else av)
225+ then throw(((("invalid order isPrevOrderError:" + toString(av)) + " isNextOrderError:") + toString(at)))
226+ else WriteSet([DataEntry(J(C), am), DataEntry(K(C), ar), DataEntry(K(am), if ((am == ""))
233227 then ""
234- else C), DataEntry(J(at), if ((at == ""))
228+ else C), DataEntry(J(ar), if ((ar == ""))
235229 then ""
236- else C), DataEntry(A, if (if ((ae == ""))
230+ else C), DataEntry(A, if (if ((ac == ""))
237231 then true
238- else (ae == at))
232+ else (ac == ar))
239233 then C
240- else ae), DataEntry(D(C), N), DataEntry(E(C), ap.amount), DataEntry(F(C), as), DataEntry(G(C), height), DataEntry(H(C), p), DataEntry(("debug_order_currentPrice_" + C), Z), DataEntry(B(C), ar)])
234+ else ac), DataEntry(D(C), N), DataEntry(E(C), an.amount), DataEntry(F(C), aq), DataEntry(G(C), height), DataEntry(H(C), p), DataEntry(("debug_order_currentPrice_" + C), X), DataEntry(B(C), ap)])
241235 }
242236 }
243237
244238
245239
246-@Callable(an)
240+@Callable(al)
247241 func cancelOrder (C) = {
248- let as = ai(C)
249- let M = (ah(C) - ak(C))
250- let ay = toString(an.caller)
251- let at = am(C)
252- let ao = al(C)
253- if (Y)
242+ let aq = ag(C)
243+ let M = (af(C) - ai(C))
244+ let aw = toString(al.caller)
245+ let ar = ak(C)
246+ let am = aj(C)
247+ if (W)
254248 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
255- else if ((as != ay))
249+ else if ((aq != aw))
256250 then throw("permission denied")
257- else if ((aj(C) != p))
251+ else if ((ah(C) != p))
258252 then throw("invalid order status")
259- else ScriptResult(WriteSet([DataEntry(A, if ((ae == C))
260- then at
261- else ae), DataEntry(K(ao), at), DataEntry(J(at), ao), DataEntry(H(C), o)]), TransferSet([ScriptTransfer(an.caller, M, unit)]))
253+ else ScriptResult(WriteSet([DataEntry(A, if ((ac == C))
254+ then ar
255+ else ac), DataEntry(K(am), ar), DataEntry(J(ar), am), DataEntry(H(C), o)]), TransferSet([ScriptTransfer(al.caller, M, unit)]))
262256 }
263257
264258
265259
266-@Callable(an)
260+@Callable(al)
267261 func sellBond () = {
268- let az = assetBalance(this, X)
269- let aA = if ((0 >= ad))
262+ let ax = assetBalance(this, V)
263+ let ay = if ((0 >= ab))
270264 then 0
271- else (ad / k)
272- let aB = if ((aA >= az))
273- then az
274- else aA
275- let aC = if ((aA >= az))
265+ else ab
266+ let az = if ((ay >= ax))
267+ then ax
268+ else ay
269+ let aA = if ((ay >= ax))
276270 then 0
277- else (az - aA)
278- if (if ((aA == 0))
279- then (az == 0)
271+ else (ax - ay)
272+ if (if ((ay == 0))
273+ then (ax == 0)
280274 else false)
281275 then throw("without deficit")
282- else if ((az == 0))
276+ else if ((ax == 0))
283277 then throw("without bonds to sell")
284- else if ((aC > 0))
285- then TransferSet([ScriptTransfer(T, aC, X)])
286- else if ((ae == ""))
278+ else if ((aA > 0))
279+ then TransferSet([ScriptTransfer(R, aA, V)])
280+ else if ((ac == ""))
287281 then throw("empty orderbook")
288282 else {
289- let at = am(ae)
290- let aD = ak(ae)
291- let aE = af(ae)
292- let aq = fraction(100, 100, aE)
293- let ar = a(B(ae))
294- let aF = (ah(ae) - aD)
295- let aG = R(aF, aq)
296- let aH = (aB >= aG)
297- let aI = if (aH)
298- then aG
299- else aB
300- let aJ = S(aI, aq)
301- if (if ((ar > fraction(ad, 100, ac)))
283+ let ar = ak(ac)
284+ let aB = ai(ac)
285+ let aC = ad(ac)
286+ let ao = fraction(100, 100, aC)
287+ let ap = a(B(ac))
288+ let aD = (af(ac) - aB)
289+ let aE = P(aD, ao)
290+ let aF = (az >= aE)
291+ let aG = if (aF)
292+ then aE
293+ else az
294+ let aH = Q(aG, ao)
295+ if (if ((ap > fraction(ab, 100, aa)))
302296 then true
303- else (0 >= aA))
304- then throw(("deficit should be higther or equal than roi: " + toString(ar)))
305- else if ((aG == 0))
306- then ScriptResult(WriteSet([DataEntry(A, at), DataEntry(J(at), ""), DataEntry(A, at), DataEntry(H(ae), q)]), TransferSet([ScriptTransfer(addressFromStringValue(ai(ae)), aF, unit)]))
307- else if ((aJ == 0))
297+ else (0 >= ay))
298+ then throw(("deficit should be higther or equal than roi: " + toString(ap)))
299+ else if ((aE == 0))
300+ then ScriptResult(WriteSet([DataEntry(A, ar), DataEntry(J(ar), ""), DataEntry(A, ar), DataEntry(H(ac), q)]), TransferSet([ScriptTransfer(addressFromStringValue(ag(ac)), aD, unit)]))
301+ else if ((aH == 0))
308302 then throw("cannot fill order at the moment")
309303 else {
310- let aK = if (if (aH)
311- then (aF == 0)
304+ let aI = if (if (aF)
305+ then (aD == 0)
312306 else false)
313307 then q
314308 else p
315- ScriptResult(WriteSet([DataEntry(J(at), if ((aK == q))
309+ ScriptResult(WriteSet([DataEntry(J(ar), if ((aI == q))
316310 then ""
317- else ae), DataEntry(A, if ((aK == q))
318- then at
319- else ae), DataEntry(I(ae), (aD + aJ)), DataEntry(H(ae), aK)]), TransferSet([ScriptTransfer(addressFromStringValue(ai(ae)), aI, X), ScriptTransfer(T, aJ, unit)]))
311+ else ac), DataEntry(A, if ((aI == q))
312+ then ar
313+ else ac), DataEntry(I(ac), (aB + aH)), DataEntry(H(ac), aI)]), TransferSet([ScriptTransfer(addressFromStringValue(ag(ac)), aG, V), ScriptTransfer(R, aH, unit)]))
320314 }
321315 }
322316 }
323317
324318
325-@Verifier(aL)
326-func aM () = {
327- let aN = ["BLEoguzPVKVTfXxxT3W7Rqf8aUm2ggC9Vemd2MQawM2G", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
328- let aO = ((((if (sigVerify(aL.bodyBytes, aL.proofs[0], fromBase58String(aN[0])))
319+@Verifier(aJ)
320+func aK () = {
321+ let aL = ["BLEoguzPVKVTfXxxT3W7Rqf8aUm2ggC9Vemd2MQawM2G", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
322+ let aM = ((((if (sigVerify(aJ.bodyBytes, aJ.proofs[0], fromBase58String(aL[0])))
329323 then 1
330- else 0) + (if (sigVerify(aL.bodyBytes, aL.proofs[1], fromBase58String(aN[1])))
324+ else 0) + (if (sigVerify(aJ.bodyBytes, aJ.proofs[1], fromBase58String(aL[1])))
331325 then 1
332- else 0)) + (if (sigVerify(aL.bodyBytes, aL.proofs[2], fromBase58String(aN[2])))
326+ else 0)) + (if (sigVerify(aJ.bodyBytes, aJ.proofs[2], fromBase58String(aL[2])))
333327 then 1
334- else 0)) + (if (sigVerify(aL.bodyBytes, aL.proofs[3], fromBase58String(aN[3])))
328+ else 0)) + (if (sigVerify(aJ.bodyBytes, aJ.proofs[3], fromBase58String(aL[3])))
335329 then 2
336330 else 0))
337- (aO >= 3)
331+ (aM >= 3)
338332 }
339333
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = {
55 let c = getInteger(this, b)
66 if ($isInstanceOf(c, "Int"))
77 then {
88 let d = c
99 d
1010 }
1111 else 0
1212 }
1313
1414
1515 func e (b) = {
1616 let c = getString(this, b)
1717 if ($isInstanceOf(c, "String"))
1818 then {
1919 let d = c
2020 d
2121 }
2222 else ""
2323 }
2424
2525
2626 func f (g,b) = {
2727 let c = getBoolean(g, b)
2828 if ($isInstanceOf(c, "Boolean"))
2929 then {
3030 let d = c
3131 d
3232 }
3333 else false
3434 }
3535
3636
3737 func h (g,b) = {
3838 let c = getString(g, b)
3939 if ($isInstanceOf(c, "String"))
4040 then {
4141 let d = c
4242 d
4343 }
4444 else ""
4545 }
4646
4747
4848 func i (g,b) = {
4949 let c = getInteger(g, b)
5050 if ($isInstanceOf(c, "Int"))
5151 then {
5252 let d = c
5353 d
5454 }
5555 else 0
5656 }
5757
5858
5959 let j = 100000000
6060
6161 let k = 1000000
6262
6363 let l = 1000
6464
6565 let m = (10 * j)
6666
6767 let n = 100
6868
6969 let o = "canceled"
7070
7171 let p = "new"
7272
7373 let q = "filled"
7474
7575 let r = "neutrino_contract"
7676
7777 let s = "price"
7878
7979 let t = "bond_asset_id"
8080
8181 let u = "neutrino_asset_id"
8282
8383 let v = "control_contract"
8484
8585 let w = "balance_lock_"
8686
8787 let x = (w + "waves")
8888
8989 let y = (w + "neutrino")
9090
9191 let z = "liquidation_contract"
9292
9393 let A = "order_first"
9494
9595 func B (C) = ("debug_order_roi_" + C)
9696
9797
9898 func D (C) = ("order_price_" + C)
9999
100100
101101 func E (C) = ("order_total_" + C)
102102
103103
104104 func F (C) = ("order_owner_" + C)
105105
106106
107107 func G (C) = ("order_height_" + C)
108108
109109
110110 func H (C) = ("order_status_" + C)
111111
112112
113113 func I (C) = ("order_filled_total_" + C)
114114
115115
116116 func J (C) = ("order_prev_" + C)
117117
118118
119119 func K (C) = ("order_next_" + C)
120120
121121
122122 func L (M,N) = fraction(fraction(M, 100, N), j, k)
123123
124124
125125 func O (M,N) = fraction(fraction(M, N, 100), k, j)
126126
127127
128-func P (M) = (M / k)
128+func P (M,N) = O(M, N)
129129
130130
131-func Q (M) = (M * k)
131+func Q (M,N) = L(M, N)
132132
133133
134-func R (M,N) = P(O(M, N))
134+let R = addressFromStringValue("3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo")
135+
136+let S = addressFromStringValue("3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP")
137+
138+let T = addressFromStringValue("3P4PCxsJqMzQBALo8zANHtBDZRRquobHQp7")
139+
140+let U = fromBase58String("DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p")
141+
142+let V = fromBase58String("6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g")
143+
144+let W = f(S, "is_blocked")
145+
146+let X = i(S, s)
147+
148+let Y = i(R, y)
149+
150+let Z = (wavesBalance(R) - i(R, x))
151+
152+let aa = (((Y + extract(assetInfo(U)).quantity) - assetBalance(R, U)) - assetBalance(T, U))
153+
154+let ab = (aa - O(Z, X))
155+
156+let ac = e(A)
157+
158+func ad (ae) = a(D(ae))
135159
136160
137-func S (M,N) = L(Q(M), N)
161+func af (ae) = a(E(ae))
138162
139163
140-let T = addressFromStringValue("3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo")
141-
142-let U = addressFromStringValue("3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP")
143-
144-let V = addressFromStringValue("3P4PCxsJqMzQBALo8zANHtBDZRRquobHQp7")
145-
146-let W = fromBase58String("DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p")
147-
148-let X = fromBase58String("975akZBfnMj513U7MZaHKzQrmsEx5aE3wdWKTrHBhbjF")
149-
150-let Y = f(U, "is_blocked")
151-
152-let Z = i(U, s)
153-
154-let aa = i(T, y)
155-
156-let ab = (wavesBalance(T) - i(T, x))
157-
158-let ac = (((aa + extract(assetInfo(W)).quantity) - assetBalance(T, W)) - assetBalance(V, W))
159-
160-let ad = (ac - O(ab, Z))
161-
162-let ae = e(A)
163-
164-func af (ag) = a(D(ag))
164+func ag (ae) = e(F(ae))
165165
166166
167-func ah (ag) = a(E(ag))
167+func ah (ae) = e(H(ae))
168168
169169
170-func ai (ag) = e(F(ag))
170+func ai (ae) = a(I(ae))
171171
172172
173-func aj (ag) = e(H(ag))
173+func aj (ae) = e(J(ae))
174174
175175
176-func ak (ag) = a(I(ag))
176+func ak (ae) = e(K(ae))
177177
178178
179-func al (ag) = e(J(ag))
180-
181-
182-func am (ag) = e(K(ag))
183-
184-
185-@Callable(an)
186-func addBuyBondOrder (N,ao) = {
187- let ap = extract(an.payment)
188- let C = toBase58String(keccak256(((((toBytes(N) + toBytes(ap.amount)) + an.caller.bytes) + toBytes(height)) + an.transactionId)))
189- let aq = fraction(100, 100, N)
190- let ar = fraction((aq - Z), 100, Z)
191- if (Y)
179+@Callable(al)
180+func addBuyBondOrder (N,am) = {
181+ let an = extract(al.payment)
182+ let C = toBase58String(keccak256(((((toBytes(N) + toBytes(an.amount)) + al.caller.bytes) + toBytes(height)) + al.transactionId)))
183+ let ao = fraction(100, 100, N)
184+ let ap = fraction((ao - X), 100, X)
185+ if (W)
192186 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
193- else if ((0 >= ad))
187+ else if ((0 >= ab))
194188 then throw("there is no ability to add order during proficit")
195- else if ((m > ap.amount))
189+ else if ((m > an.amount))
196190 then throw(("min order total equals " + toString(m)))
197- else if ((ar > n))
191+ else if ((ap > n))
198192 then throw("max setOrder ROI is 100%")
199- else if ((0 >= ar))
193+ else if ((0 >= ap))
200194 then throw("min setOrder ROI is more than 0%")
201- else if (isDefined(ap.assetId))
195+ else if (isDefined(an.assetId))
202196 then throw("can use waves only")
203197 else if ((0 >= N))
204198 then throw("price less zero")
205- else if ((ai(C) != ""))
199+ else if ((ag(C) != ""))
206200 then throw("order exists")
207- else if (if ((ao != ""))
208- then (aj(ao) != p)
201+ else if (if ((am != ""))
202+ then (ah(am) != p)
209203 else false)
210204 then throw("prev order status is not new")
211205 else {
212- let as = toString(an.caller)
213- let at = if ((ao == ""))
214- then ae
215- else am(ao)
216- let au = a(B(at))
217- let av = if (if ((at != ""))
218- then (ar >= au)
206+ let aq = toString(al.caller)
207+ let ar = if ((am == ""))
208+ then ac
209+ else ak(am)
210+ let as = a(B(ar))
211+ let at = if (if ((ar != ""))
212+ then (ap >= as)
219213 else false)
220214 then true
221215 else false
222- let aw = a(B(ao))
223- let ax = if (if ((ao != ""))
224- then (aw > ar)
216+ let au = a(B(am))
217+ let av = if (if ((am != ""))
218+ then (au > ap)
225219 else false)
226220 then true
227221 else false
228- if (if (av)
222+ if (if (at)
229223 then true
230- else ax)
231- then throw(((("invalid order isPrevOrderError:" + toString(ax)) + " isNextOrderError:") + toString(av)))
232- else WriteSet([DataEntry(J(C), ao), DataEntry(K(C), at), DataEntry(K(ao), if ((ao == ""))
224+ else av)
225+ then throw(((("invalid order isPrevOrderError:" + toString(av)) + " isNextOrderError:") + toString(at)))
226+ else WriteSet([DataEntry(J(C), am), DataEntry(K(C), ar), DataEntry(K(am), if ((am == ""))
233227 then ""
234- else C), DataEntry(J(at), if ((at == ""))
228+ else C), DataEntry(J(ar), if ((ar == ""))
235229 then ""
236- else C), DataEntry(A, if (if ((ae == ""))
230+ else C), DataEntry(A, if (if ((ac == ""))
237231 then true
238- else (ae == at))
232+ else (ac == ar))
239233 then C
240- else ae), DataEntry(D(C), N), DataEntry(E(C), ap.amount), DataEntry(F(C), as), DataEntry(G(C), height), DataEntry(H(C), p), DataEntry(("debug_order_currentPrice_" + C), Z), DataEntry(B(C), ar)])
234+ else ac), DataEntry(D(C), N), DataEntry(E(C), an.amount), DataEntry(F(C), aq), DataEntry(G(C), height), DataEntry(H(C), p), DataEntry(("debug_order_currentPrice_" + C), X), DataEntry(B(C), ap)])
241235 }
242236 }
243237
244238
245239
246-@Callable(an)
240+@Callable(al)
247241 func cancelOrder (C) = {
248- let as = ai(C)
249- let M = (ah(C) - ak(C))
250- let ay = toString(an.caller)
251- let at = am(C)
252- let ao = al(C)
253- if (Y)
242+ let aq = ag(C)
243+ let M = (af(C) - ai(C))
244+ let aw = toString(al.caller)
245+ let ar = ak(C)
246+ let am = aj(C)
247+ if (W)
254248 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
255- else if ((as != ay))
249+ else if ((aq != aw))
256250 then throw("permission denied")
257- else if ((aj(C) != p))
251+ else if ((ah(C) != p))
258252 then throw("invalid order status")
259- else ScriptResult(WriteSet([DataEntry(A, if ((ae == C))
260- then at
261- else ae), DataEntry(K(ao), at), DataEntry(J(at), ao), DataEntry(H(C), o)]), TransferSet([ScriptTransfer(an.caller, M, unit)]))
253+ else ScriptResult(WriteSet([DataEntry(A, if ((ac == C))
254+ then ar
255+ else ac), DataEntry(K(am), ar), DataEntry(J(ar), am), DataEntry(H(C), o)]), TransferSet([ScriptTransfer(al.caller, M, unit)]))
262256 }
263257
264258
265259
266-@Callable(an)
260+@Callable(al)
267261 func sellBond () = {
268- let az = assetBalance(this, X)
269- let aA = if ((0 >= ad))
262+ let ax = assetBalance(this, V)
263+ let ay = if ((0 >= ab))
270264 then 0
271- else (ad / k)
272- let aB = if ((aA >= az))
273- then az
274- else aA
275- let aC = if ((aA >= az))
265+ else ab
266+ let az = if ((ay >= ax))
267+ then ax
268+ else ay
269+ let aA = if ((ay >= ax))
276270 then 0
277- else (az - aA)
278- if (if ((aA == 0))
279- then (az == 0)
271+ else (ax - ay)
272+ if (if ((ay == 0))
273+ then (ax == 0)
280274 else false)
281275 then throw("without deficit")
282- else if ((az == 0))
276+ else if ((ax == 0))
283277 then throw("without bonds to sell")
284- else if ((aC > 0))
285- then TransferSet([ScriptTransfer(T, aC, X)])
286- else if ((ae == ""))
278+ else if ((aA > 0))
279+ then TransferSet([ScriptTransfer(R, aA, V)])
280+ else if ((ac == ""))
287281 then throw("empty orderbook")
288282 else {
289- let at = am(ae)
290- let aD = ak(ae)
291- let aE = af(ae)
292- let aq = fraction(100, 100, aE)
293- let ar = a(B(ae))
294- let aF = (ah(ae) - aD)
295- let aG = R(aF, aq)
296- let aH = (aB >= aG)
297- let aI = if (aH)
298- then aG
299- else aB
300- let aJ = S(aI, aq)
301- if (if ((ar > fraction(ad, 100, ac)))
283+ let ar = ak(ac)
284+ let aB = ai(ac)
285+ let aC = ad(ac)
286+ let ao = fraction(100, 100, aC)
287+ let ap = a(B(ac))
288+ let aD = (af(ac) - aB)
289+ let aE = P(aD, ao)
290+ let aF = (az >= aE)
291+ let aG = if (aF)
292+ then aE
293+ else az
294+ let aH = Q(aG, ao)
295+ if (if ((ap > fraction(ab, 100, aa)))
302296 then true
303- else (0 >= aA))
304- then throw(("deficit should be higther or equal than roi: " + toString(ar)))
305- else if ((aG == 0))
306- then ScriptResult(WriteSet([DataEntry(A, at), DataEntry(J(at), ""), DataEntry(A, at), DataEntry(H(ae), q)]), TransferSet([ScriptTransfer(addressFromStringValue(ai(ae)), aF, unit)]))
307- else if ((aJ == 0))
297+ else (0 >= ay))
298+ then throw(("deficit should be higther or equal than roi: " + toString(ap)))
299+ else if ((aE == 0))
300+ then ScriptResult(WriteSet([DataEntry(A, ar), DataEntry(J(ar), ""), DataEntry(A, ar), DataEntry(H(ac), q)]), TransferSet([ScriptTransfer(addressFromStringValue(ag(ac)), aD, unit)]))
301+ else if ((aH == 0))
308302 then throw("cannot fill order at the moment")
309303 else {
310- let aK = if (if (aH)
311- then (aF == 0)
304+ let aI = if (if (aF)
305+ then (aD == 0)
312306 else false)
313307 then q
314308 else p
315- ScriptResult(WriteSet([DataEntry(J(at), if ((aK == q))
309+ ScriptResult(WriteSet([DataEntry(J(ar), if ((aI == q))
316310 then ""
317- else ae), DataEntry(A, if ((aK == q))
318- then at
319- else ae), DataEntry(I(ae), (aD + aJ)), DataEntry(H(ae), aK)]), TransferSet([ScriptTransfer(addressFromStringValue(ai(ae)), aI, X), ScriptTransfer(T, aJ, unit)]))
311+ else ac), DataEntry(A, if ((aI == q))
312+ then ar
313+ else ac), DataEntry(I(ac), (aB + aH)), DataEntry(H(ac), aI)]), TransferSet([ScriptTransfer(addressFromStringValue(ag(ac)), aG, V), ScriptTransfer(R, aH, unit)]))
320314 }
321315 }
322316 }
323317
324318
325-@Verifier(aL)
326-func aM () = {
327- let aN = ["BLEoguzPVKVTfXxxT3W7Rqf8aUm2ggC9Vemd2MQawM2G", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
328- let aO = ((((if (sigVerify(aL.bodyBytes, aL.proofs[0], fromBase58String(aN[0])))
319+@Verifier(aJ)
320+func aK () = {
321+ let aL = ["BLEoguzPVKVTfXxxT3W7Rqf8aUm2ggC9Vemd2MQawM2G", "FWVffYr2ALmHMejZm3WqeLz6Sdym3gLFGtJn4KTwyU5x", "3Wh2LaWcb5gg7K2pPcW3Ep6EAuRBzYkAgrdpt43jTDFa", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
322+ let aM = ((((if (sigVerify(aJ.bodyBytes, aJ.proofs[0], fromBase58String(aL[0])))
329323 then 1
330- else 0) + (if (sigVerify(aL.bodyBytes, aL.proofs[1], fromBase58String(aN[1])))
324+ else 0) + (if (sigVerify(aJ.bodyBytes, aJ.proofs[1], fromBase58String(aL[1])))
331325 then 1
332- else 0)) + (if (sigVerify(aL.bodyBytes, aL.proofs[2], fromBase58String(aN[2])))
326+ else 0)) + (if (sigVerify(aJ.bodyBytes, aJ.proofs[2], fromBase58String(aL[2])))
333327 then 1
334- else 0)) + (if (sigVerify(aL.bodyBytes, aL.proofs[3], fromBase58String(aN[3])))
328+ else 0)) + (if (sigVerify(aJ.bodyBytes, aJ.proofs[3], fromBase58String(aL[3])))
335329 then 2
336330 else 0))
337- (aO >= 3)
331+ (aM >= 3)
338332 }
339333

github/deemru/w8io/873ac7e 
124.30 ms