tx · LyGaKAz7PEJmzSxEi8J5xcT9qoKCnTJwdSQrDmufB25

3N5nmMvMH8o3RPEyCKCaoWahBTYTexnZy62:  -0.02000000 Waves

2020.07.14 16:44 [1087073] smart account 3N5nmMvMH8o3RPEyCKCaoWahBTYTexnZy62 > SELF 0.00000000 Waves

{ "type": 13, "id": "LyGaKAz7PEJmzSxEi8J5xcT9qoKCnTJwdSQrDmufB25", "fee": 2000000, "feeAssetId": null, "timestamp": 1594734266712, "version": 1, "sender": "3N5nmMvMH8o3RPEyCKCaoWahBTYTexnZy62", "senderPublicKey": "6PBV8fVJwLaUQbCyG7iqoKR3x1nqFRZFNeuN9qodoiTu", "proofs": [ "63XEweLuqCg7HxC1fw2mCNanaUJnUiYig9MtFrTqnQSRQds54HcXLGqZRL2c2FvYAuS5ZbHFhNsLux98M1dzRtca", "s3bCczur5UGauY12xkSfngFtVXe2uF8FjeSoNBRDktgiA2Z1BADCAfYCUQQtTmGg7ufxPK6nJTLVbMu2Cq7dTU4", "67CMXBJUSdBseLyvMKrkjP3EkmFW9sqKpbAAs5aZs1MgYHrCz4Vh8UXYjGB5aFJmPUEbDuHy428zmYpRtEzVAdDx" ], "script": "base64:AAIDAAAAAAAAABMIARIECgIBCBIAEgMKAQgSABIAAAAAOQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAABZnZXRCb29sQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEHAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NBbmRLZXkAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAAAAAAB1dBVkVMRVQAAAAAAAX14QAAAAAABVBBVUxJAAAAAAAAD0JAAAAAAAhQUklDRUxFVAAAAAAAAA9CQAAAAAAIQ0FOQ0VMRUQCAAAACGNhbmNlbGVkAAAAAANORVcCAAAAA25ldwAAAAAGRklMTEVEAgAAAAZmaWxsZWQAAAAAE05ldXRyaW5vQ29udHJhY3RLZXkCAAAAEW5ldXRyaW5vX2NvbnRyYWN0AAAAAAhQcmljZUtleQIAAAAFcHJpY2UAAAAADkJvbmRBc3NldElkS2V5AgAAAA1ib25kX2Fzc2V0X2lkAAAAABJOZXV0cmlub0Fzc2V0SWRLZXkCAAAAEW5ldXRyaW5vX2Fzc2V0X2lkAAAAABJDb250cm9sQ29udHJhY3RLZXkCAAAAEGNvbnRyb2xfY29udHJhY3QAAAAAEUJhbGFuY2VMb2NrZWRrS2V5AgAAAA1iYWxhbmNlX2xvY2tfAAAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkJAAEsAAAAAgUAAAARQmFsYW5jZUxvY2tlZGtLZXkCAAAABXdhdmVzAAAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkJAAEsAAAAAgUAAAARQmFsYW5jZUxvY2tlZGtLZXkCAAAACG5ldXRyaW5vAAAAAA1GaXJzdE9yZGVyS2V5AgAAAAtvcmRlcl9maXJzdAAAAAAWQ3VycmVudERlZmF1bHRPcmRlcktleQIAAAANb3JkZXJfZGVmYXVsdAEAAAAQZ2V0T3JkZXJQcmljZUtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAAxvcmRlcl9wcmljZV8FAAAAB29yZGVySWQBAAAAEGdldE9yZGVyVG90YWxLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAAMb3JkZXJfdG90YWxfBQAAAAdvcmRlcklkAQAAABBnZXRPcmRlck93bmVyS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAADG9yZGVyX293bmVyXwUAAAAHb3JkZXJJZAEAAAARZ2V0T3JkZXJIZWlnaHRLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAANb3JkZXJfaGVpZ2h0XwUAAAAHb3JkZXJJZAEAAAARZ2V0T3JkZXJTdGF0dXNLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAANb3JkZXJfc3RhdHVzXwUAAAAHb3JkZXJJZAEAAAAWZ2V0T3JkZXJGaWxsZWRUb3RhbEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAABNvcmRlcl9maWxsZWRfdG90YWxfBQAAAAdvcmRlcklkAQAAAA9nZXRQcmV2T3JkZXJLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAALb3JkZXJfcHJldl8FAAAAB29yZGVySWQBAAAAD2dldE5leHRPcmRlcktleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAAtvcmRlcl9uZXh0XwUAAAAHb3JkZXJJZAEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQAAawAAAAMJAABrAAAAAwUAAAAGYW1vdW50BQAAAAhQUklDRUxFVAUAAAAFcHJpY2UFAAAAB1dBVkVMRVQFAAAABVBBVUxJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgAAAAZhbW91bnQAAAAFcHJpY2UJAABrAAAAAwkAAGsAAAADBQAAAAZhbW91bnQFAAAABXByaWNlBQAAAAhQUklDRUxFVAUAAAAFUEFVTEkFAAAAB1dBVkVMRVQBAAAAEmNvbnZlcnRXYXZlc1RvQm9uZAAAAAIAAAAGYW1vdW50AAAABXByaWNlCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAABmFtb3VudAUAAAAFcHJpY2UAAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAATTmV1dHJpbm9Db250cmFjdEtleQAAAAAPY29udHJvbENvbnRyYWN0CQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NBbmRLZXkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABJDb250cm9sQ29udHJhY3RLZXkAAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QFAAAABHRoaXMAAAAAD25ldXRyaW5vQXNzZXRJZAkAAlkAAAABCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAASTmV1dHJpbm9Bc3NldElkS2V5AAAAAAtib25kQXNzZXRJZAkAAlkAAAABAgAAACxCR2hQWXF1WFNLNlVZam5QTEVuOTRnRmhldHA0SnZmN3RvZWtFWTR4MVZESAAAAAAKZmlyc3RPcmRlcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAANRmlyc3RPcmRlcktleQAAAAAJaXNCbG9ja2VkCQEAAAAWZ2V0Qm9vbEJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAIAAAAKaXNfYmxvY2tlZAAAAAAMY3VycmVudFByaWNlCQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0BQAAAAhQcmljZUtleQAAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAYTmV1dHJpbm9Mb2NrZWRCYWxhbmNlS2V5AAAAABJ3YXZlc0xvY2tlZEJhbGFuY2UJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkAAAAAB3Jlc2VydmUJAABlAAAAAgkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAEndhdmVzTG9ja2VkQmFsYW5jZQAAAAAObmV1dHJpbm9TdXBwbHkJAABlAAAAAgkAAGUAAAACCQAAZAAAAAIFAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQgJAQAAAAdleHRyYWN0AAAAAQkAA+wAAAABBQAAAA9uZXV0cmlub0Fzc2V0SWQAAAAIcXVhbnRpdHkJAAPrAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAPbmV1dHJpbm9Bc3NldElkCQAD6wAAAAIFAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QFAAAAD25ldXRyaW5vQXNzZXRJZAAAAAAHc3VycGx1cwkAAGUAAAACCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAAB3Jlc2VydmUFAAAADGN1cnJlbnRQcmljZQUAAAAObmV1dHJpbm9TdXBwbHkBAAAADWdldE9yZGVyUHJpY2UAAAABAAAAAmlkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAQZ2V0T3JkZXJQcmljZUtleQAAAAEFAAAAAmlkAQAAAA1nZXRPcmRlclRvdGFsAAAAAQAAAAJpZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEGdldE9yZGVyVG90YWxLZXkAAAABBQAAAAJpZAEAAAANZ2V0T3JkZXJPd25lcgAAAAEAAAACaWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABBnZXRPcmRlck93bmVyS2V5AAAAAQUAAAACaWQBAAAADmdldE9yZGVyU3RhdHVzAAAAAQAAAAJpZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEWdldE9yZGVyU3RhdHVzS2V5AAAAAQUAAAACaWQBAAAAE2dldE9yZGVyRmlsbGVkVG90YWwAAAABAAAAAmlkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAWZ2V0T3JkZXJGaWxsZWRUb3RhbEtleQAAAAEFAAAAAmlkAQAAAA5nZXRPcmRlckhlaWdodAAAAAEAAAACaWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABFnZXRPcmRlckhlaWdodEtleQAAAAEFAAAAAmlkAQAAAAxnZXRQcmV2T3JkZXIAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAPZ2V0UHJldk9yZGVyS2V5AAAAAQUAAAACaWQBAAAADGdldE5leHRPcmRlcgAAAAEAAAACaWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAA9nZXROZXh0T3JkZXJLZXkAAAABBQAAAAJpZAAAAAATY3VycmVudERlZmF1bHRPcmRlcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAWQ3VycmVudERlZmF1bHRPcmRlcktleQEAAAAbZ2VuZXJhdGVEYXRhRW50cnlUb0FkZE9yZGVyAAAABgAAAAVwcmljZQAAAApuZXdPcmRlcklkAAAAAWkAAAAJcHJldk9yZGVyAAAACW5leHRPcmRlcgAAAApmaXJzdE9yZGVyBAAAAAZhbW91bnQICQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQAAAAGYW1vdW50BAAAABBpc09uZUZvck9uZU9yZGVyCQAAAAAAAAIFAAAABXByaWNlAAAAAAAAAABkBAAAABBpc0ZpcnN0T3JkZXJFbXR5CQAAAAAAAAIFAAAACmZpcnN0T3JkZXICAAAAAAQAAAApaXNOZXdPcmRlclByaWNlTG93ZXJUaGFuQ3VycmVudEZpcnN0T3JkZXIJAABmAAAAAgkBAAAADWdldE9yZGVyUHJpY2UAAAABBQAAAApmaXJzdE9yZGVyBQAAAAVwcmljZQQAAAANbmV3Rmlyc3RPcmRlcgMFAAAAEGlzRmlyc3RPcmRlckVtdHkFAAAACm5ld09yZGVySWQDBQAAAClpc05ld09yZGVyUHJpY2VMb3dlclRoYW5DdXJyZW50Rmlyc3RPcmRlcgUAAAAKbmV3T3JkZXJJZAUAAAAKZmlyc3RPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldFByZXZPcmRlcktleQAAAAEFAAAACm5ld09yZGVySWQFAAAACXByZXZPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldE5leHRPcmRlcktleQAAAAEFAAAACm5ld09yZGVySWQFAAAACW5leHRPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldE5leHRPcmRlcktleQAAAAEFAAAACXByZXZPcmRlcgMJAAAAAAAAAgUAAAAJcHJldk9yZGVyAgAAAAAFAAAACXByZXZPcmRlcgUAAAAKbmV3T3JkZXJJZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldFByZXZPcmRlcktleQAAAAEFAAAACW5leHRPcmRlcgMJAAAAAAAAAgUAAAAJbmV4dE9yZGVyAgAAAAAFAAAACW5leHRPcmRlcgUAAAAKbmV3T3JkZXJJZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAANRmlyc3RPcmRlcktleQUAAAANbmV3Rmlyc3RPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldE9yZGVyUHJpY2VLZXkAAAABBQAAAApuZXdPcmRlcklkBQAAAAVwcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAA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RW50cnlUb0FkZE9yZGVyAAAABgUAAAAFcHJpY2UFAAAACm5ld09yZGVySWQFAAAAAWkFAAAACXByZXZPcmRlcgUAAAAJbmV4dE9yZGVyBQAAAApmaXJzdE9yZGVyBAAAAA5uZXh0T3JkZXJQcmljZQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEGdldE9yZGVyUHJpY2VLZXkAAAABBQAAAAluZXh0T3JkZXIEAAAADnByZXZPcmRlclByaWNlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAQZ2V0T3JkZXJQcmljZUtleQAAAAEFAAAACXByZXZPcmRlcgQAAAAQaXNOZXh0T3JkZXJFcnJvcgMJAQAAAAEhAAAAAQUAAAAQaXNFbXB0eU5leHRPcmRlcgkAAGcAAAACBQAAAAVwcmljZQUAAAAObmV4dE9yZGVyUHJpY2UHBAAAABBpc1ByZXZPcmRlckVycm9yAwkBAAAAASEAAAABBQAAABBpc0VtcHR5UHJldk9yZGVyCQAAZgAAAAIFAAAADnByZXZPcmRlclByaWNlBQAAAAVwcmljZQcDAwUAAAAQaXNOZXh0T3JkZXJFcnJvcgYFAAAAEGlzUHJldk9yZGVyRXJyb3IJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAfaW52YWxpZCBvcmRlciBpc1ByZXZPcmRlckVycm9yOgkAAaUAAAABBQAAABBpc1ByZXZPcmRlckVycm9yAgAAABIgaXNOZXh0T3JkZXJFcnJvcjoJAAGlAAAAAQUAAAAQaXNOZXh0T3JkZXJFcnJvcgkBAAAACFdyaXRlU2V0AAAAAQkBAAAAG2dlbmVyYXRlRGF0YUVudHJ5VG9BZGRPcmRlcgAAAAYFAAAABXByaWNlBQAAAApuZXdPcmRlcklkBQAAAAFpBQAAAAlwcmV2T3JkZXIFAAAACW5leHRPcmRlcgUAAAAKZmlyc3RPcmRlcgEAAAAaY29tcHV0ZUN1cnJlbnREZWZhdWx0T3JkZXIAAAABAAAAAmlkAwkBAAAAAiE9AAAAAgUAAAACaWQFAAAAE2N1cnJlbnREZWZhdWx0T3JkZXIFAAAAE2N1cnJlbnREZWZhdWx0T3JkZXICAAAAAAAAAAUAAAABaQEAAAAcYWRkTGlxdWlkYXRpb25PcmRlcldpdGhQcmljZQAAAAIAAAAFcHJpY2UAAAAJcHJldk9yZGVyCQEAAAAbaW50ZXJuYWxBZGRMaXF1aWRhdGlvbk9yZGVyAAAAAwUAAAABaQUAAAAFcHJpY2UFAAAACXByZXZPcmRlcgAAAAFpAQAAABNhZGRMaXF1aWRhdGlvbk9yZGVyAAAAAAkBAAAAG2ludGVybmFsQWRkTGlxdWlkYXRpb25PcmRlcgAAAAMFAAAAAWkAAAAAAAAAAGQFAAAAE2N1cnJlbnREZWZhdWx0T3JkZXIAAAABaQEAAAALY2FuY2VsT3JkZXIAAAABAAAAB29yZGVySWQEAAAABW93bmVyCQEAAAANZ2V0T3JkZXJPd25lcgAAAAEFAAAAB29yZGVySWQEAAAABmFtb3VudAkAAGUAAAACCQEAAAANZ2V0T3JkZXJUb3RhbAAAAAEFAAAAB29yZGVySWQJAQAAABNnZXRPcmRlckZpbGxlZFRvdGFsAAAAAQUAAAAHb3JkZXJJZAQAAAAGY2FsbGVyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAJbmV4dE9yZGVyCQEAAAAMZ2V0TmV4dE9yZGVyAAAAAQUAAAAHb3JkZXJJZAQAAAAJcHJldk9yZGVyCQEAAAAMZ2V0UHJldk9yZGVyAAAAAQUAAAAHb3JkZXJJZAQAAAAOaXNEZWZhdWx0T3JkZXIJAAAAAAAAAgUAAAAHb3JkZXJJZAUAAAATY3VycmVudERlZmF1bHRPcmRlcgQAAAAWaXNQcmV2Q2FuQmVjb21lRGVmYXVsdAkAAAAAAAACCQEAAAAOZ2V0T3JkZXJTdGF0dXMAAAABBQAAAAlwcmV2T3JkZXIFAAAAA05FVwQAAAAPbmV3RGVmYXVsdE9yZGVyAwUAAAAOaXNEZWZhdWx0T3JkZXIDBQAAABZpc1ByZXZDYW5CZWNvbWVEZWZhdWx0BQAAAAlwcmV2T3JkZXICAAAAAAUAAAATY3VycmVudERlZmF1bHRPcmRlcgMFAAAACWlzQmxvY2tlZAkAAAIAAAABAgAAAFljb250cmFjdCBpcyBibG9ja2VkIGJ5IEVNRVJHRU5DWSBTSFVURE9XTiBhY3Rpb25zIHVudGlsIHJlYWN0aXZhdGlvbiBieSBlbWVyZ2VuY3kgb3JhY2xlcwMJAQAAAAIhPQAAAAIFAAAABW93bmVyBQAAAAZjYWxsZXIJAAACAAAAAQIAAAARcGVybWlzc2lvbiBkZW5pZWQDCQEAAAACIT0AAAACCQEAAAAOZ2V0T3JkZXJTdGF0dXMAAAABBQAAAAdvcmRlcklkBQAAAANORVcJAAACAAAAAQIAAAAUaW52YWxpZCBvcmRlciBzdGF0dXMJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABZDdXJyZW50RGVmYXVsdE9yZGVyS2V5BQAAAA9uZXdEZWZhdWx0T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADUZpcnN0T3JkZXJLZXkDCQAAAAAAAAIFAAAACmZpcnN0T3JkZXIFAAAAB29yZGVySWQFAAAACW5leHRPcmRlcgUAAAAKZmlyc3RPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldE5leHRPcmRlcktleQAAAAEFAAAACXByZXZPcmRlcgUAAAAJbmV4dE9yZGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0UHJldk9yZGVyS2V5AAAAAQUAAAAJbmV4dE9yZGVyBQAAAAlwcmV2T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEFAAAAB29yZGVySWQFAAAACENBTkNFTEVEBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZhbW91bnQFAAAAC2JvbmRBc3NldElkBQAAAANuaWwAAAABaQEAAAANbGlxdWlkYXRlQm9uZAAAAAAEAAAAEmxpcXVpZGF0aW9uQmFsYW5jZQkAA+sAAAACBQAAAAR0aGlzBQAAAA9uZXV0cmlub0Fzc2V0SWQEAAAAD3N1cnBsdXNQb3NpdGl2ZQMJAABnAAAAAgAAAAAAAAAAAAUAAAAHc3VycGx1cwAAAAAAAAAAAAUAAAAHc3VycGx1cwQAAAAKdXNkbkFtb3VudAMJAABnAAAAAgUAAAAPc3VycGx1c1Bvc2l0aXZlBQAAABJsaXF1aWRhdGlvbkJhbGFuY2UFAAAAEmxpcXVpZGF0aW9uQmFsYW5jZQUAAAAPc3VycGx1c1Bvc2l0aXZlBAAAAAxyZXR1cm5BbW91bnQDCQAAZwAAAAIFAAAAD3N1cnBsdXNQb3NpdGl2ZQUAAAASbGlxdWlkYXRpb25CYWxhbmNlAAAAAAAAAAAACQAAZQAAAAIFAAAAEmxpcXVpZGF0aW9uQmFsYW5jZQUAAAAPc3VycGx1c1Bvc2l0aXZlAwUAAAAJaXNCbG9ja2VkCQAAAgAAAAECAAAAWWNvbnRyYWN0IGlzIGJsb2NrZWQgYnkgRU1FUkdFTkNZIFNIVVRET1dOIGFjdGlvbnMgdW50aWwgcmVhY3RpdmF0aW9uIGJ5IGVtZXJnZW5jeSBvcmFjbGVzAwkAAAAAAAACBQAAABJsaXF1aWRhdGlvbkJhbGFuY2UAAAAAAAAAAAAJAAACAAAAAQIAAAAgd2l0aG91dCBiYXNlIHRva2VucyB0byBsaXF1aWRhdGUDCQAAZgAAAAIFAAAADHJldHVybkFtb3VudAAAAAAAAAAAAAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAAAxyZXR1cm5BbW91bnQFAAAAD25ldXRyaW5vQXNzZXRJZAUAAAADbmlsAwkAAAAAAAACBQAAAApmaXJzdE9yZGVyAgAAAAAJAAACAAAAAQIAAAAPZW1wdHkgb3JkZXJib29rBAAAAAluZXh0T3JkZXIJAQAAAAxnZXROZXh0T3JkZXIAAAABBQAAAApmaXJzdE9yZGVyBAAAAAtmaWxsZWRUb3RhbAkBAAAAE2dldE9yZGVyRmlsbGVkVG90YWwAAAABBQAAAApmaXJzdE9yZGVyBAAAAA5uc2J0MlVzZG5QcmljZQkBAAAADWdldE9yZGVyUHJpY2UAAAABBQAAAApmaXJzdE9yZGVyBAAAAA1yZW1haW5lZFRvdGFsCQAAZQAAAAIJAQAAAA1nZXRPcmRlclRvdGFsAAAAAQUAAAAKZmlyc3RPcmRlcgUAAAALZmlsbGVkVG90YWwEAAAAHHRvdGFsVVNETlJlcXVpcmVkVG9GaWxsT3JkZXIJAABrAAAAAwUAAAANcmVtYWluZWRUb3RhbAUAAAAObnNidDJVc2RuUHJpY2UAAAAAAAAAAGQEAAAAE2lzT3JkZXJGdWxseUZpbGFibGUJAABnAAAAAgUAAAAKdXNkbkFtb3VudAUAAAAcdG90YWxVU0ROUmVxdWlyZWRUb0ZpbGxPcmRlcgQAAAATZmlsbGFibGVPcmRlckFtb3VudAMFAAAAE2lzT3JkZXJGdWxseUZpbGFibGUFAAAAHHRvdGFsVVNETlJlcXVpcmVkVG9GaWxsT3JkZXIFAAAACnVzZG5BbW91bnQEAAAAEGZpbmFsTkJURmlsbGFibGUJAABrAAAAAwUAAAATZmlsbGFibGVPcmRlckFtb3VudAAAAAAAAAAAZAUAAAAObnNidDJVc2RuUHJpY2UEAAAAGm5iVG9rZW5zTGlxdWlkYXRlQ29uZGl0aW9uCQAAZwAAAAIJAABrAAAAAwkAAGQAAAACBQAAAAdzdXJwbHVzBQAAAA5uZXV0cmlub1N1cHBseQAAAAAAAAAAZAUAAAAObmV1dHJpbm9TdXBwbHkFAAAADm5zYnQyVXNkblByaWNlAwkBAAAAASEAAAABBQAAABpuYlRva2Vuc0xpcXVpZGF0ZUNvbmRpdGlvbgkAAAIAAAABCQABLAAAAAICAAAAF2lubmFwcm9wcmlhdGUgc3VycGx1czogCQABpAAAAAEFAAAAB3N1cnBsdXMEAAAAEmlzTm90aGluZ1RvRmlsbE5vdwkAAAAAAAACBQAAAA1yZW1haW5lZFRvdGFsAAAAAAAAAAAABAAAABRpc05vdGhpbmdUb0ZpbGxBdEFsbAkAAAAAAAACCQAAZAAAAAIFAAAAC2ZpbGxlZFRvdGFsBQAAABBmaW5hbE5CVEZpbGxhYmxlCQEAAAANZ2V0T3JkZXJUb3RhbAAAAAEFAAAACmZpcnN0T3JkZXIEAAAACW5ld1N0YXR1cwMDBQAAABNpc09yZGVyRnVsbHlGaWxhYmxlAwUAAAASaXNOb3RoaW5nVG9GaWxsTm93BgUAAAAUaXNOb3RoaW5nVG9GaWxsQXRBbGwHBQAAAAZGSUxMRUQFAAAAA05FVwkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nZXRQcmV2T3JkZXJLZXkAAAABBQAAAAluZXh0T3JkZXIDCQAAAAAAAAIFAAAACW5ld1N0YXR1cwUAAAAGRklMTEVEAgAAAAAFAAAACmZpcnN0T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADUZpcnN0T3JkZXJLZXkDCQAAAAAAAAIFAAAACW5ld1N0YXR1cwUAAAAGRklMTEVEBQAAAAluZXh0T3JkZXIFAAAACmZpcnN0T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRPcmRlckZpbGxlZFRvdGFsS2V5AAAAAQUAAAAKZmlyc3RPcmRlcgkAAGQAAAACBQAAAAtmaWxsZWRUb3RhbAUAAAAQZmluYWxOQlRGaWxsYWJsZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldE9yZGVyU3RhdHVzS2V5AAAAAQUAAAAKZmlyc3RPcmRlcgUAAAAJbmV3U3RhdHVzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABZDdXJyZW50RGVmYXVsdE9yZGVyS2V5CQEAAAAaY29tcHV0ZUN1cnJlbnREZWZhdWx0T3JkZXIAAAABBQAAAApmaXJzdE9yZGVyBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQEAAAANZ2V0T3JkZXJPd25lcgAAAAEFAAAACmZpcnN0T3JkZXIFAAAAE2ZpbGxhYmxlT3JkZXJBbW91bnQFAAAAD25ldXRyaW5vQXNzZXRJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABBmaW5hbE5CVEZpbGxhYmxlBQAAAAtib25kQXNzZXRJZAUAAAADbmlsAAAAAWkBAAAAH3VwZGF0ZVJlc2VydmVzQW5kTmV1dHJpbm9TdXBwbHkAAAAACgEAAAAWZ2V0TnVtYmVyQnlLZXlJbnRlcm5hbAAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAANpZHgJAQAAABZnZXROdW1iZXJCeUtleUludGVybmFsAAAAAQIAAAAidXBkYXRlUmVzZXJ2ZXNBbmROZXV0cmlub1N1cHBseUlkeAQAAAAGbmV3SWR4CQAAZAAAAAIFAAAAA2lkeAAAAAAAAAAAAQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAidXBkYXRlUmVzZXJ2ZXNBbmROZXV0cmlub1N1cHBseUlkeAUAAAAGbmV3SWR4CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAdyZXNlcnZlBQAAAAdyZXNlcnZlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAA5uZXV0cmlub1N1cHBseQUAAAAObmV1dHJpbm9TdXBwbHkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAB3N1cnBsdXMFAAAAB3N1cnBsdXMFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAEHB1YktleUFkbWluc0xpc3QJAARMAAAAAgIAAAAsR1h4bVphQ2lnUGdKc1Q2ZDFjTHI4blVYQTY1bkdYOFY3RnVBenpyWTh3UUUJAARMAAAAAgIAAAAsM3h1bXg0aHJQcGVlb283OUhMR2JaQ2dmejk1TDM5WkZkeHh3V2VTVUMyUHUJAARMAAAAAgIAAAAsRDRDcXRLNWZCc256Um8zM1pNaHJNN25pTHNlREgydVJvSzZ3ZUJxMkpRM0EJAARMAAAAAgIAAAAsNVdSWEZTandjVGJOZktjSnM4WnFYbVNTV1lzU1ZKVXRNdk1xWmo1aEg0TmMFAAAAA25pbAQAAAAFY291bnQJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAkAAlkAAAABCQABkQAAAAIFAAAAEHB1YktleUFkbWluc0xpc3QAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQkAAlkAAAABCQABkQAAAAIFAAAAEHB1YktleUFkbWluc0xpc3QAAAAAAAAAAAEAAAAAAAAAAAEAAAAAAAAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgkAAlkAAAABCQABkQAAAAIFAAAAEHB1YktleUFkbWluc0xpc3QAAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAwkAAlkAAAABCQABkQAAAAIFAAAAEHB1YktleUFkbWluc0xpc3QAAAAAAAAAAAMAAAAAAAAAAAIAAAAAAAAAAAAJAABnAAAAAgUAAAAFY291bnQAAAAAAAAAAAMVuEv/", "chainId": 84, "height": 1087073, "spentComplexity": 0 } View: original | compacted Prev: 8Ndd4zfTQuici7f1MWLryUR5eCjkK7mcTURfVajovXVa Next: BEbxrNz7J4F1dE5LjzhQQ6oDh2h6Vwo16zsoTRa4GsKF Diff:
OldNewDifferences
6060
6161 let k = 1000000
6262
63-let l = "canceled"
63+let l = 1000000
6464
65-let m = "new"
65+let m = "canceled"
6666
67-let n = "filled"
67+let n = "new"
6868
69-let o = "neutrino_contract"
69+let o = "filled"
7070
71-let p = "price"
71+let p = "neutrino_contract"
7272
73-let q = "bond_asset_id"
73+let q = "price"
7474
75-let r = "neutrino_asset_id"
75+let r = "bond_asset_id"
7676
77-let s = "control_contract"
77+let s = "neutrino_asset_id"
7878
79-let t = "balance_lock_"
79+let t = "control_contract"
8080
81-let u = (t + "waves")
81+let u = "balance_lock_"
8282
83-let v = (t + "neutrino")
83+let v = (u + "waves")
8484
85-let w = "order_first"
85+let w = (u + "neutrino")
8686
87-let x = "order_default"
87+let x = "order_first"
8888
89-func y (z) = ("order_price_" + z)
89+let y = "order_default"
90+
91+func z (A) = ("order_price_" + A)
9092
9193
92-func A (z) = ("order_total_" + z)
94+func B (A) = ("order_total_" + A)
9395
9496
95-func B (z) = ("order_owner_" + z)
97+func C (A) = ("order_owner_" + A)
9698
9799
98-func C (z) = ("order_height_" + z)
100+func D (A) = ("order_height_" + A)
99101
100102
101-func D (z) = ("order_status_" + z)
103+func E (A) = ("order_status_" + A)
102104
103105
104-func E (z) = ("order_filled_total_" + z)
106+func F (A) = ("order_filled_total_" + A)
105107
106108
107-func F (z) = ("order_prev_" + z)
109+func G (A) = ("order_prev_" + A)
108110
109111
110-func G (z) = ("order_next_" + z)
112+func H (A) = ("order_next_" + A)
111113
112114
113-func H (I,J) = fraction(fraction(I, 100, J), j, k)
115+func I (J,K) = fraction(fraction(J, l, K), j, k)
114116
115117
116-func K (I,J) = fraction(fraction(I, J, 100), k, j)
118+func L (J,K) = fraction(fraction(J, K, l), k, j)
117119
118120
119-func L (I,J) = K(I, J)
121+func M (J,K) = L(J, K)
120122
121123
122-let M = addressFromStringValue(e(o))
124+let N = addressFromStringValue(e(p))
123125
124-let N = addressFromStringValue(h(M, s))
126+let O = addressFromStringValue(h(N, t))
125127
126-let O = this
128+let P = this
127129
128-let P = fromBase58String(h(M, r))
130+let Q = fromBase58String(h(N, s))
129131
130-let Q = fromBase58String("BGhPYquXSK6UYjnPLEn94gFhetp4Jvf7toekEY4x1VDH")
132+let R = fromBase58String("BGhPYquXSK6UYjnPLEn94gFhetp4Jvf7toekEY4x1VDH")
131133
132-let R = e(w)
134+let S = e(x)
133135
134-let S = f(N, "is_blocked")
136+let T = f(O, "is_blocked")
135137
136-let T = i(N, p)
138+let U = i(O, q)
137139
138-let U = i(M, v)
140+let V = i(N, w)
139141
140-let V = i(M, u)
142+let W = i(N, v)
141143
142-let W = (wavesBalance(M) - V)
144+let X = (wavesBalance(N) - W)
143145
144-let X = (((U + extract(assetInfo(P)).quantity) - assetBalance(M, P)) - assetBalance(O, P))
146+let Y = (((V + extract(assetInfo(Q)).quantity) - assetBalance(N, Q)) - assetBalance(P, Q))
145147
146-let Y = (K(W, T) - X)
148+let Z = (L(X, U) - Y)
147149
148-func Z (aa) = a(y(aa))
150+func aa (ab) = a(z(ab))
149151
150152
151-func ab (aa) = a(A(aa))
153+func ac (ab) = a(B(ab))
152154
153155
154-func ac (aa) = e(B(aa))
156+func ad (ab) = e(C(ab))
155157
156158
157-func ad (aa) = e(D(aa))
159+func ae (ab) = e(E(ab))
158160
159161
160-func ae (aa) = a(E(aa))
162+func af (ab) = a(F(ab))
161163
162164
163-func af (aa) = a(C(aa))
165+func ag (ab) = a(D(ab))
164166
165167
166-func ag (aa) = e(F(aa))
168+func ah (ab) = e(G(ab))
167169
168170
169-func ah (aa) = e(G(aa))
171+func ai (ab) = e(H(ab))
170172
171173
172-let ai = e(x)
174+let aj = e(y)
173175
174-func aj (J,ak,al,am,an,R) = {
175- let I = extract(al.payment).amount
176- let ao = (J == 100)
177- let ap = (R == "")
178- let aq = (Z(R) > J)
179- let ar = if (ap)
180- then ak
181- else if (aq)
182- then ak
183- else R
184-[DataEntry(F(ak), am), DataEntry(G(ak), an), DataEntry(G(am), if ((am == ""))
185- then am
186- else ak), DataEntry(F(an), if ((an == ""))
176+func ak (K,al,am,an,ao,S) = {
177+ let J = extract(am.payment).amount
178+ let ap = (K == 100)
179+ let aq = (S == "")
180+ let ar = (aa(S) > K)
181+ let as = if (aq)
182+ then al
183+ else if (ar)
184+ then al
185+ else S
186+[DataEntry(G(al), an), DataEntry(H(al), ao), DataEntry(H(an), if ((an == ""))
187187 then an
188- else ak), DataEntry(w, ar), DataEntry(y(ak), J), DataEntry(A(ak), I), DataEntry(B(ak), toString(al.caller)), DataEntry(C(ak), height), DataEntry(D(ak), m), DataEntry(x, if (ao)
189- then ak
190- else ai)]
188+ else al), DataEntry(G(ao), if ((ao == ""))
189+ then ao
190+ else al), DataEntry(x, as), DataEntry(z(al), K), DataEntry(B(al), J), DataEntry(C(al), toString(am.caller)), DataEntry(D(al), height), DataEntry(E(al), n), DataEntry(y, if (ap)
191+ then al
192+ else aj)]
191193 }
192194
193195
194-func as (al,J,am) = {
195- let at = extract(al.payment)
196- let ak = toBase58String(keccak256((((toBytes(at.amount) + al.caller.bytes) + toBytes(height)) + al.transactionId)))
197- let au = toString(al.caller)
198- let av = (am == "")
199- let aw = (R == "")
200- if (S)
196+func at (am,K,an) = {
197+ let au = extract(am.payment)
198+ let al = toBase58String(keccak256((((toBytes(au.amount) + am.caller.bytes) + toBytes(height)) + am.transactionId)))
199+ let av = toString(am.caller)
200+ let aw = (an == "")
201+ let ax = (S == "")
202+ if (T)
201203 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
202- else if ((k > at.amount))
204+ else if ((k > au.amount))
203205 then throw("order amount should be higher than 1 NSBT")
204- else if ((100 > J))
205- then throw(("price should be equal or higher than 1 nsbt for 1 usdn. i.e. >= 100; price: " + toString(J)))
206- else if ((at.assetId != Q))
206+ else if ((100 > K))
207+ then throw(("price should be equal or higher than 1 nsbt for 1 usdn. i.e. >= 100; price: " + toString(K)))
208+ else if ((au.assetId != R))
207209 then throw("can use appropriate neutrino base tokens (nsbt) only")
208- else if ((ac(ak) != ""))
210+ else if ((ad(al) != ""))
209211 then throw("the order already exists")
210- else if (if (!(av))
211- then (ad(am) != m)
212+ else if (if (!(aw))
213+ then (ae(an) != n)
212214 else false)
213215 then throw("prev order status is not new")
214- else if (if (aw)
215- then !(av)
216+ else if (if (ax)
217+ then !(aw)
216218 else false)
217219 then throw("wrong prev order parameter")
218220 else {
219- let an = if (av)
220- then R
221- else ah(am)
222- let ax = (an == "")
223- if (aw)
224- then WriteSet(aj(J, ak, al, am, an, R))
221+ let ao = if (aw)
222+ then S
223+ else ai(an)
224+ let ay = (ao == "")
225+ if (ax)
226+ then WriteSet(ak(K, al, am, an, ao, S))
225227 else {
226- let ay = a(y(an))
227- let az = a(y(am))
228- let aA = if (!(ax))
229- then (J >= ay)
228+ let az = a(z(ao))
229+ let aA = a(z(an))
230+ let aB = if (!(ay))
231+ then (K >= az)
230232 else false
231- let aB = if (!(av))
232- then (az > J)
233+ let aC = if (!(aw))
234+ then (aA > K)
233235 else false
234- if (if (aA)
236+ if (if (aB)
235237 then true
236- else aB)
237- then throw(((("invalid order isPrevOrderError:" + toString(aB)) + " isNextOrderError:") + toString(aA)))
238- else WriteSet(aj(J, ak, al, am, an, R))
238+ else aC)
239+ then throw(((("invalid order isPrevOrderError:" + toString(aC)) + " isNextOrderError:") + toString(aB)))
240+ else WriteSet(ak(K, al, am, an, ao, S))
239241 }
240242 }
241243 }
242244
243245
244-func aC (aa) = if ((aa != ai))
245- then ai
246+func aD (ab) = if ((ab != aj))
247+ then aj
246248 else ""
247249
248250
249-@Callable(al)
250-func addLiquidationOrderWithPrice (J,am) = as(al, J, am)
251+@Callable(am)
252+func addLiquidationOrderWithPrice (K,an) = at(am, K, an)
251253
252254
253255
254-@Callable(al)
255-func addLiquidationOrder () = as(al, 100, ai)
256+@Callable(am)
257+func addLiquidationOrder () = at(am, 100, aj)
256258
257259
258260
259-@Callable(al)
260-func cancelOrder (z) = {
261- let au = ac(z)
262- let I = (ab(z) - ae(z))
263- let aD = toString(al.caller)
264- let an = ah(z)
265- let am = ag(z)
266- let aE = (z == ai)
267- let aF = (ad(am) == m)
268- let aG = if (aE)
269- then if (aF)
270- then am
261+@Callable(am)
262+func cancelOrder (A) = {
263+ let av = ad(A)
264+ let J = (ac(A) - af(A))
265+ let aE = toString(am.caller)
266+ let ao = ai(A)
267+ let an = ah(A)
268+ let aF = (A == aj)
269+ let aG = (ae(an) == n)
270+ let aH = if (aF)
271+ then if (aG)
272+ then an
271273 else ""
272- else ai
273- if (S)
274+ else aj
275+ if (T)
274276 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
275- else if ((au != aD))
277+ else if ((av != aE))
276278 then throw("permission denied")
277- else if ((ad(z) != m))
279+ else if ((ae(A) != n))
278280 then throw("invalid order status")
279- else ScriptResult(WriteSet([DataEntry(x, aG), DataEntry(w, if ((R == z))
280- then an
281- else R), DataEntry(G(am), an), DataEntry(F(an), am), DataEntry(D(z), l)]), TransferSet([ScriptTransfer(al.caller, I, Q)]))
281+ else ScriptResult(WriteSet([DataEntry(y, aH), DataEntry(x, if ((S == A))
282+ then ao
283+ else S), DataEntry(H(an), ao), DataEntry(G(ao), an), DataEntry(E(A), m)]), TransferSet([ScriptTransfer(am.caller, J, R)]))
282284 }
283285
284286
285287
286-@Callable(al)
288+@Callable(am)
287289 func liquidateBond () = {
288- let aH = assetBalance(this, P)
289- let aI = if ((0 >= Y))
290+ let aI = assetBalance(this, Q)
291+ let aJ = if ((0 >= Z))
290292 then 0
291- else Y
292- let aJ = if ((aI >= aH))
293- then aH
294- else aI
295- let aK = if ((aI >= aH))
293+ else Z
294+ let aK = if ((aJ >= aI))
295+ then aI
296+ else aJ
297+ let aL = if ((aJ >= aI))
296298 then 0
297- else (aH - aI)
298- if (S)
299+ else (aI - aJ)
300+ if (T)
299301 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
300- else if ((aH == 0))
302+ else if ((aI == 0))
301303 then throw("without base tokens to liquidate")
302- else if ((aK > 0))
303- then TransferSet([ScriptTransfer(M, aK, P)])
304- else if ((R == ""))
304+ else if ((aL > 0))
305+ then TransferSet([ScriptTransfer(N, aL, Q)])
306+ else if ((S == ""))
305307 then throw("empty orderbook")
306308 else {
307- let an = ah(R)
308- let aL = ae(R)
309- let aM = Z(R)
310- let aN = (ab(R) - aL)
311- let aO = fraction(aN, aM, 100)
312- let aP = (aJ >= aO)
313- let aQ = if (aP)
314- then aO
315- else aJ
316- let aR = fraction(aQ, 100, aM)
317- let aS = (fraction((Y + X), 100, X) >= aM)
318- if (!(aS))
319- then throw(("innapropriate surplus: " + toString(Y)))
309+ let ao = ai(S)
310+ let aM = af(S)
311+ let aN = aa(S)
312+ let aO = (ac(S) - aM)
313+ let aP = fraction(aO, aN, 100)
314+ let aQ = (aK >= aP)
315+ let aR = if (aQ)
316+ then aP
317+ else aK
318+ let aS = fraction(aR, 100, aN)
319+ let aT = (fraction((Z + Y), 100, Y) >= aN)
320+ if (!(aT))
321+ then throw(("innapropriate surplus: " + toString(Z)))
320322 else {
321- let aT = (aN == 0)
322- let aU = ((aL + aR) == ab(R))
323- let aV = if (if (aP)
324- then if (aT)
323+ let aU = (aO == 0)
324+ let aV = ((aM + aS) == ac(S))
325+ let aW = if (if (aQ)
326+ then if (aU)
325327 then true
326- else aU
328+ else aV
327329 else false)
328- then n
329- else m
330- ScriptResult(WriteSet([DataEntry(F(an), if ((aV == n))
330+ then o
331+ else n
332+ ScriptResult(WriteSet([DataEntry(G(ao), if ((aW == o))
331333 then ""
332- else R), DataEntry(w, if ((aV == n))
333- then an
334- else R), DataEntry(E(R), (aL + aR)), DataEntry(D(R), aV), DataEntry(x, aC(R))]), TransferSet([ScriptTransfer(addressFromStringValue(ac(R)), aQ, P), ScriptTransfer(M, aR, Q)]))
334+ else S), DataEntry(x, if ((aW == o))
335+ then ao
336+ else S), DataEntry(F(S), (aM + aS)), DataEntry(E(S), aW), DataEntry(y, aD(S))]), TransferSet([ScriptTransfer(addressFromStringValue(ad(S)), aR, Q), ScriptTransfer(N, aS, R)]))
335337 }
336338 }
337339 }
338340
339341
340342
341-@Callable(al)
343+@Callable(am)
342344 func updateReservesAndNeutrinoSupply () = {
343- func aW (b) = {
345+ func aX (b) = {
344346 let c = getInteger(this, b)
345347 if ($isInstanceOf(c, "Int"))
346348 then {
350352 else 0
351353 }
352354
353- let aX = aW("updateReservesAndNeutrinoSupplyIdx")
354- let aY = (aX + 1)
355- WriteSet([DataEntry("updateReservesAndNeutrinoSupplyIdx", aY), DataEntry("reserve", W), DataEntry("neutrinoSupply", X), DataEntry("surplus", Y)])
355+ let aY = aX("updateReservesAndNeutrinoSupplyIdx")
356+ let aZ = (aY + 1)
357+ WriteSet([DataEntry("updateReservesAndNeutrinoSupplyIdx", aZ), DataEntry("reserve", X), DataEntry("neutrinoSupply", Y), DataEntry("surplus", Z)])
356358 }
357359
358360
359-@Verifier(aZ)
360-func ba () = {
361- let bb = ["GXxmZaCigPgJsT6d1cLr8nUXA65nGX8V7FuAzzrY8wQE", "3xumx4hrPpeeoo79HLGbZCgfz95L39ZFdxxwWeSUC2Pu", "D4CqtK5fBsnzRo33ZMhrM7niLseDH2uRoK6weBq2JQ3A", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
362- let bc = ((((if (sigVerify(aZ.bodyBytes, aZ.proofs[0], fromBase58String(bb[0])))
361+@Verifier(ba)
362+func bb () = {
363+ let bc = ["GXxmZaCigPgJsT6d1cLr8nUXA65nGX8V7FuAzzrY8wQE", "3xumx4hrPpeeoo79HLGbZCgfz95L39ZFdxxwWeSUC2Pu", "D4CqtK5fBsnzRo33ZMhrM7niLseDH2uRoK6weBq2JQ3A", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
364+ let bd = ((((if (sigVerify(ba.bodyBytes, ba.proofs[0], fromBase58String(bc[0])))
363365 then 1
364- else 0) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[1], fromBase58String(bb[1])))
366+ else 0) + (if (sigVerify(ba.bodyBytes, ba.proofs[1], fromBase58String(bc[1])))
365367 then 1
366- else 0)) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[2], fromBase58String(bb[2])))
368+ else 0)) + (if (sigVerify(ba.bodyBytes, ba.proofs[2], fromBase58String(bc[2])))
367369 then 1
368- else 0)) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[3], fromBase58String(bb[3])))
370+ else 0)) + (if (sigVerify(ba.bodyBytes, ba.proofs[3], fromBase58String(bc[3])))
369371 then 2
370372 else 0))
371- (bc >= 3)
373+ (bd >= 3)
372374 }
373375
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
63-let l = "canceled"
63+let l = 1000000
6464
65-let m = "new"
65+let m = "canceled"
6666
67-let n = "filled"
67+let n = "new"
6868
69-let o = "neutrino_contract"
69+let o = "filled"
7070
71-let p = "price"
71+let p = "neutrino_contract"
7272
73-let q = "bond_asset_id"
73+let q = "price"
7474
75-let r = "neutrino_asset_id"
75+let r = "bond_asset_id"
7676
77-let s = "control_contract"
77+let s = "neutrino_asset_id"
7878
79-let t = "balance_lock_"
79+let t = "control_contract"
8080
81-let u = (t + "waves")
81+let u = "balance_lock_"
8282
83-let v = (t + "neutrino")
83+let v = (u + "waves")
8484
85-let w = "order_first"
85+let w = (u + "neutrino")
8686
87-let x = "order_default"
87+let x = "order_first"
8888
89-func y (z) = ("order_price_" + z)
89+let y = "order_default"
90+
91+func z (A) = ("order_price_" + A)
9092
9193
92-func A (z) = ("order_total_" + z)
94+func B (A) = ("order_total_" + A)
9395
9496
95-func B (z) = ("order_owner_" + z)
97+func C (A) = ("order_owner_" + A)
9698
9799
98-func C (z) = ("order_height_" + z)
100+func D (A) = ("order_height_" + A)
99101
100102
101-func D (z) = ("order_status_" + z)
103+func E (A) = ("order_status_" + A)
102104
103105
104-func E (z) = ("order_filled_total_" + z)
106+func F (A) = ("order_filled_total_" + A)
105107
106108
107-func F (z) = ("order_prev_" + z)
109+func G (A) = ("order_prev_" + A)
108110
109111
110-func G (z) = ("order_next_" + z)
112+func H (A) = ("order_next_" + A)
111113
112114
113-func H (I,J) = fraction(fraction(I, 100, J), j, k)
115+func I (J,K) = fraction(fraction(J, l, K), j, k)
114116
115117
116-func K (I,J) = fraction(fraction(I, J, 100), k, j)
118+func L (J,K) = fraction(fraction(J, K, l), k, j)
117119
118120
119-func L (I,J) = K(I, J)
121+func M (J,K) = L(J, K)
120122
121123
122-let M = addressFromStringValue(e(o))
124+let N = addressFromStringValue(e(p))
123125
124-let N = addressFromStringValue(h(M, s))
126+let O = addressFromStringValue(h(N, t))
125127
126-let O = this
128+let P = this
127129
128-let P = fromBase58String(h(M, r))
130+let Q = fromBase58String(h(N, s))
129131
130-let Q = fromBase58String("BGhPYquXSK6UYjnPLEn94gFhetp4Jvf7toekEY4x1VDH")
132+let R = fromBase58String("BGhPYquXSK6UYjnPLEn94gFhetp4Jvf7toekEY4x1VDH")
131133
132-let R = e(w)
134+let S = e(x)
133135
134-let S = f(N, "is_blocked")
136+let T = f(O, "is_blocked")
135137
136-let T = i(N, p)
138+let U = i(O, q)
137139
138-let U = i(M, v)
140+let V = i(N, w)
139141
140-let V = i(M, u)
142+let W = i(N, v)
141143
142-let W = (wavesBalance(M) - V)
144+let X = (wavesBalance(N) - W)
143145
144-let X = (((U + extract(assetInfo(P)).quantity) - assetBalance(M, P)) - assetBalance(O, P))
146+let Y = (((V + extract(assetInfo(Q)).quantity) - assetBalance(N, Q)) - assetBalance(P, Q))
145147
146-let Y = (K(W, T) - X)
148+let Z = (L(X, U) - Y)
147149
148-func Z (aa) = a(y(aa))
150+func aa (ab) = a(z(ab))
149151
150152
151-func ab (aa) = a(A(aa))
153+func ac (ab) = a(B(ab))
152154
153155
154-func ac (aa) = e(B(aa))
156+func ad (ab) = e(C(ab))
155157
156158
157-func ad (aa) = e(D(aa))
159+func ae (ab) = e(E(ab))
158160
159161
160-func ae (aa) = a(E(aa))
162+func af (ab) = a(F(ab))
161163
162164
163-func af (aa) = a(C(aa))
165+func ag (ab) = a(D(ab))
164166
165167
166-func ag (aa) = e(F(aa))
168+func ah (ab) = e(G(ab))
167169
168170
169-func ah (aa) = e(G(aa))
171+func ai (ab) = e(H(ab))
170172
171173
172-let ai = e(x)
174+let aj = e(y)
173175
174-func aj (J,ak,al,am,an,R) = {
175- let I = extract(al.payment).amount
176- let ao = (J == 100)
177- let ap = (R == "")
178- let aq = (Z(R) > J)
179- let ar = if (ap)
180- then ak
181- else if (aq)
182- then ak
183- else R
184-[DataEntry(F(ak), am), DataEntry(G(ak), an), DataEntry(G(am), if ((am == ""))
185- then am
186- else ak), DataEntry(F(an), if ((an == ""))
176+func ak (K,al,am,an,ao,S) = {
177+ let J = extract(am.payment).amount
178+ let ap = (K == 100)
179+ let aq = (S == "")
180+ let ar = (aa(S) > K)
181+ let as = if (aq)
182+ then al
183+ else if (ar)
184+ then al
185+ else S
186+[DataEntry(G(al), an), DataEntry(H(al), ao), DataEntry(H(an), if ((an == ""))
187187 then an
188- else ak), DataEntry(w, ar), DataEntry(y(ak), J), DataEntry(A(ak), I), DataEntry(B(ak), toString(al.caller)), DataEntry(C(ak), height), DataEntry(D(ak), m), DataEntry(x, if (ao)
189- then ak
190- else ai)]
188+ else al), DataEntry(G(ao), if ((ao == ""))
189+ then ao
190+ else al), DataEntry(x, as), DataEntry(z(al), K), DataEntry(B(al), J), DataEntry(C(al), toString(am.caller)), DataEntry(D(al), height), DataEntry(E(al), n), DataEntry(y, if (ap)
191+ then al
192+ else aj)]
191193 }
192194
193195
194-func as (al,J,am) = {
195- let at = extract(al.payment)
196- let ak = toBase58String(keccak256((((toBytes(at.amount) + al.caller.bytes) + toBytes(height)) + al.transactionId)))
197- let au = toString(al.caller)
198- let av = (am == "")
199- let aw = (R == "")
200- if (S)
196+func at (am,K,an) = {
197+ let au = extract(am.payment)
198+ let al = toBase58String(keccak256((((toBytes(au.amount) + am.caller.bytes) + toBytes(height)) + am.transactionId)))
199+ let av = toString(am.caller)
200+ let aw = (an == "")
201+ let ax = (S == "")
202+ if (T)
201203 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
202- else if ((k > at.amount))
204+ else if ((k > au.amount))
203205 then throw("order amount should be higher than 1 NSBT")
204- else if ((100 > J))
205- then throw(("price should be equal or higher than 1 nsbt for 1 usdn. i.e. >= 100; price: " + toString(J)))
206- else if ((at.assetId != Q))
206+ else if ((100 > K))
207+ then throw(("price should be equal or higher than 1 nsbt for 1 usdn. i.e. >= 100; price: " + toString(K)))
208+ else if ((au.assetId != R))
207209 then throw("can use appropriate neutrino base tokens (nsbt) only")
208- else if ((ac(ak) != ""))
210+ else if ((ad(al) != ""))
209211 then throw("the order already exists")
210- else if (if (!(av))
211- then (ad(am) != m)
212+ else if (if (!(aw))
213+ then (ae(an) != n)
212214 else false)
213215 then throw("prev order status is not new")
214- else if (if (aw)
215- then !(av)
216+ else if (if (ax)
217+ then !(aw)
216218 else false)
217219 then throw("wrong prev order parameter")
218220 else {
219- let an = if (av)
220- then R
221- else ah(am)
222- let ax = (an == "")
223- if (aw)
224- then WriteSet(aj(J, ak, al, am, an, R))
221+ let ao = if (aw)
222+ then S
223+ else ai(an)
224+ let ay = (ao == "")
225+ if (ax)
226+ then WriteSet(ak(K, al, am, an, ao, S))
225227 else {
226- let ay = a(y(an))
227- let az = a(y(am))
228- let aA = if (!(ax))
229- then (J >= ay)
228+ let az = a(z(ao))
229+ let aA = a(z(an))
230+ let aB = if (!(ay))
231+ then (K >= az)
230232 else false
231- let aB = if (!(av))
232- then (az > J)
233+ let aC = if (!(aw))
234+ then (aA > K)
233235 else false
234- if (if (aA)
236+ if (if (aB)
235237 then true
236- else aB)
237- then throw(((("invalid order isPrevOrderError:" + toString(aB)) + " isNextOrderError:") + toString(aA)))
238- else WriteSet(aj(J, ak, al, am, an, R))
238+ else aC)
239+ then throw(((("invalid order isPrevOrderError:" + toString(aC)) + " isNextOrderError:") + toString(aB)))
240+ else WriteSet(ak(K, al, am, an, ao, S))
239241 }
240242 }
241243 }
242244
243245
244-func aC (aa) = if ((aa != ai))
245- then ai
246+func aD (ab) = if ((ab != aj))
247+ then aj
246248 else ""
247249
248250
249-@Callable(al)
250-func addLiquidationOrderWithPrice (J,am) = as(al, J, am)
251+@Callable(am)
252+func addLiquidationOrderWithPrice (K,an) = at(am, K, an)
251253
252254
253255
254-@Callable(al)
255-func addLiquidationOrder () = as(al, 100, ai)
256+@Callable(am)
257+func addLiquidationOrder () = at(am, 100, aj)
256258
257259
258260
259-@Callable(al)
260-func cancelOrder (z) = {
261- let au = ac(z)
262- let I = (ab(z) - ae(z))
263- let aD = toString(al.caller)
264- let an = ah(z)
265- let am = ag(z)
266- let aE = (z == ai)
267- let aF = (ad(am) == m)
268- let aG = if (aE)
269- then if (aF)
270- then am
261+@Callable(am)
262+func cancelOrder (A) = {
263+ let av = ad(A)
264+ let J = (ac(A) - af(A))
265+ let aE = toString(am.caller)
266+ let ao = ai(A)
267+ let an = ah(A)
268+ let aF = (A == aj)
269+ let aG = (ae(an) == n)
270+ let aH = if (aF)
271+ then if (aG)
272+ then an
271273 else ""
272- else ai
273- if (S)
274+ else aj
275+ if (T)
274276 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
275- else if ((au != aD))
277+ else if ((av != aE))
276278 then throw("permission denied")
277- else if ((ad(z) != m))
279+ else if ((ae(A) != n))
278280 then throw("invalid order status")
279- else ScriptResult(WriteSet([DataEntry(x, aG), DataEntry(w, if ((R == z))
280- then an
281- else R), DataEntry(G(am), an), DataEntry(F(an), am), DataEntry(D(z), l)]), TransferSet([ScriptTransfer(al.caller, I, Q)]))
281+ else ScriptResult(WriteSet([DataEntry(y, aH), DataEntry(x, if ((S == A))
282+ then ao
283+ else S), DataEntry(H(an), ao), DataEntry(G(ao), an), DataEntry(E(A), m)]), TransferSet([ScriptTransfer(am.caller, J, R)]))
282284 }
283285
284286
285287
286-@Callable(al)
288+@Callable(am)
287289 func liquidateBond () = {
288- let aH = assetBalance(this, P)
289- let aI = if ((0 >= Y))
290+ let aI = assetBalance(this, Q)
291+ let aJ = if ((0 >= Z))
290292 then 0
291- else Y
292- let aJ = if ((aI >= aH))
293- then aH
294- else aI
295- let aK = if ((aI >= aH))
293+ else Z
294+ let aK = if ((aJ >= aI))
295+ then aI
296+ else aJ
297+ let aL = if ((aJ >= aI))
296298 then 0
297- else (aH - aI)
298- if (S)
299+ else (aI - aJ)
300+ if (T)
299301 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
300- else if ((aH == 0))
302+ else if ((aI == 0))
301303 then throw("without base tokens to liquidate")
302- else if ((aK > 0))
303- then TransferSet([ScriptTransfer(M, aK, P)])
304- else if ((R == ""))
304+ else if ((aL > 0))
305+ then TransferSet([ScriptTransfer(N, aL, Q)])
306+ else if ((S == ""))
305307 then throw("empty orderbook")
306308 else {
307- let an = ah(R)
308- let aL = ae(R)
309- let aM = Z(R)
310- let aN = (ab(R) - aL)
311- let aO = fraction(aN, aM, 100)
312- let aP = (aJ >= aO)
313- let aQ = if (aP)
314- then aO
315- else aJ
316- let aR = fraction(aQ, 100, aM)
317- let aS = (fraction((Y + X), 100, X) >= aM)
318- if (!(aS))
319- then throw(("innapropriate surplus: " + toString(Y)))
309+ let ao = ai(S)
310+ let aM = af(S)
311+ let aN = aa(S)
312+ let aO = (ac(S) - aM)
313+ let aP = fraction(aO, aN, 100)
314+ let aQ = (aK >= aP)
315+ let aR = if (aQ)
316+ then aP
317+ else aK
318+ let aS = fraction(aR, 100, aN)
319+ let aT = (fraction((Z + Y), 100, Y) >= aN)
320+ if (!(aT))
321+ then throw(("innapropriate surplus: " + toString(Z)))
320322 else {
321- let aT = (aN == 0)
322- let aU = ((aL + aR) == ab(R))
323- let aV = if (if (aP)
324- then if (aT)
323+ let aU = (aO == 0)
324+ let aV = ((aM + aS) == ac(S))
325+ let aW = if (if (aQ)
326+ then if (aU)
325327 then true
326- else aU
328+ else aV
327329 else false)
328- then n
329- else m
330- ScriptResult(WriteSet([DataEntry(F(an), if ((aV == n))
330+ then o
331+ else n
332+ ScriptResult(WriteSet([DataEntry(G(ao), if ((aW == o))
331333 then ""
332- else R), DataEntry(w, if ((aV == n))
333- then an
334- else R), DataEntry(E(R), (aL + aR)), DataEntry(D(R), aV), DataEntry(x, aC(R))]), TransferSet([ScriptTransfer(addressFromStringValue(ac(R)), aQ, P), ScriptTransfer(M, aR, Q)]))
334+ else S), DataEntry(x, if ((aW == o))
335+ then ao
336+ else S), DataEntry(F(S), (aM + aS)), DataEntry(E(S), aW), DataEntry(y, aD(S))]), TransferSet([ScriptTransfer(addressFromStringValue(ad(S)), aR, Q), ScriptTransfer(N, aS, R)]))
335337 }
336338 }
337339 }
338340
339341
340342
341-@Callable(al)
343+@Callable(am)
342344 func updateReservesAndNeutrinoSupply () = {
343- func aW (b) = {
345+ func aX (b) = {
344346 let c = getInteger(this, b)
345347 if ($isInstanceOf(c, "Int"))
346348 then {
347349 let d = c
348350 d
349351 }
350352 else 0
351353 }
352354
353- let aX = aW("updateReservesAndNeutrinoSupplyIdx")
354- let aY = (aX + 1)
355- WriteSet([DataEntry("updateReservesAndNeutrinoSupplyIdx", aY), DataEntry("reserve", W), DataEntry("neutrinoSupply", X), DataEntry("surplus", Y)])
355+ let aY = aX("updateReservesAndNeutrinoSupplyIdx")
356+ let aZ = (aY + 1)
357+ WriteSet([DataEntry("updateReservesAndNeutrinoSupplyIdx", aZ), DataEntry("reserve", X), DataEntry("neutrinoSupply", Y), DataEntry("surplus", Z)])
356358 }
357359
358360
359-@Verifier(aZ)
360-func ba () = {
361- let bb = ["GXxmZaCigPgJsT6d1cLr8nUXA65nGX8V7FuAzzrY8wQE", "3xumx4hrPpeeoo79HLGbZCgfz95L39ZFdxxwWeSUC2Pu", "D4CqtK5fBsnzRo33ZMhrM7niLseDH2uRoK6weBq2JQ3A", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
362- let bc = ((((if (sigVerify(aZ.bodyBytes, aZ.proofs[0], fromBase58String(bb[0])))
361+@Verifier(ba)
362+func bb () = {
363+ let bc = ["GXxmZaCigPgJsT6d1cLr8nUXA65nGX8V7FuAzzrY8wQE", "3xumx4hrPpeeoo79HLGbZCgfz95L39ZFdxxwWeSUC2Pu", "D4CqtK5fBsnzRo33ZMhrM7niLseDH2uRoK6weBq2JQ3A", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
364+ let bd = ((((if (sigVerify(ba.bodyBytes, ba.proofs[0], fromBase58String(bc[0])))
363365 then 1
364- else 0) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[1], fromBase58String(bb[1])))
366+ else 0) + (if (sigVerify(ba.bodyBytes, ba.proofs[1], fromBase58String(bc[1])))
365367 then 1
366- else 0)) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[2], fromBase58String(bb[2])))
368+ else 0)) + (if (sigVerify(ba.bodyBytes, ba.proofs[2], fromBase58String(bc[2])))
367369 then 1
368- else 0)) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[3], fromBase58String(bb[3])))
370+ else 0)) + (if (sigVerify(ba.bodyBytes, ba.proofs[3], fromBase58String(bc[3])))
369371 then 2
370372 else 0))
371- (bc >= 3)
373+ (bd >= 3)
372374 }
373375

github/deemru/w8io/873ac7e 
166.00 ms