tx · Abf4tzorDKciVSpFWfGaqGMC239B5iNsKUhHGnRSNo7X

3MpABcPJLQiG9Yxzk3ZV8e2nEbRe1gZHbZe:  -0.02000000 Waves

2020.06.17 15:56 [1047564] smart account 3MpABcPJLQiG9Yxzk3ZV8e2nEbRe1gZHbZe > SELF 0.00000000 Waves

{ "type": 13, "id": "Abf4tzorDKciVSpFWfGaqGMC239B5iNsKUhHGnRSNo7X", "fee": 2000000, "feeAssetId": null, "timestamp": 1592398639438, "version": 1, "sender": "3MpABcPJLQiG9Yxzk3ZV8e2nEbRe1gZHbZe", "senderPublicKey": "AixLFScfYY3rkC6MkFBBW8xXM1a6q3i79CUrcgykP4V3", "proofs": [ "WF1YnSvbzfc6Khw4kw7kChN6LkDKpyg8UXMecqVq4ezht6E98B1xDm74HApJoPRN4R82pZuj5MZ3MaTtMn5wopY", "3JT6KG6V8YSMGxPWZ69zVorJH2K5AACJtsiC63snMdXDvwNaSayAfFAUGveqNbYG1SUWh1qp9yJWNzr16e9p5fQm", "5gHF7N1wfrAvw1SNUhGztDvdL5bCuUA4wkW7RsRG5RmuZrTSm5BuGAfEM22sAqzPYuRvtJ9sZG2ZBkvPWFrAVYhG" ], "script": "base64:AAIDAAAAAAAAABYIARIDCgEBEgQKAgEIEgMKAQgSABIAAAAAOQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAABZnZXRCb29sQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEHAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NBbmRLZXkAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAAAAAAB1dBVkVMRVQAAAAAAAX14QAAAAAABVBBVUxJAAAAAAAAD0JAAAAAAA1NSU5PUkRFUlRPVEFMCQAAaAAAAAIAAAAAAAAAAAoFAAAAB1dBVkVMRVQAAAAABk1BWFJPSQAAAAAAAAAAXwAAAAAIQ0FOQ0VMRUQCAAAACGNhbmNlbGVkAAAAAANORVcCAAAAA25ldwAAAAAGRklMTEVEAgAAAAZmaWxsZWQAAAAAE05ldXRyaW5vQ29udHJhY3RLZXkCAAAAEW5ldXRyaW5vX2NvbnRyYWN0AAAAAAhQcmljZUtleQIAAAAFcHJpY2UAAAAADkJvbmRBc3NldElkS2V5AgAAAA1ib25kX2Fzc2V0X2lkAAAAABJOZXV0cmlub0Fzc2V0SWRLZXkCAAAAEW5ldXRyaW5vX2Fzc2V0X2lkAAAAABJDb250cm9sQ29udHJhY3RLZXkCAAAAEGNvbnRyb2xfY29udHJhY3QAAAAAEUJhbGFuY2VMb2NrZWRrS2V5AgAAAA1iYWxhbmNlX2xvY2tfAAAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkJAAEsAAAAAgUAAAARQmFsYW5jZUxvY2tlZGtLZXkCAAAABXdhdmVzAAAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkJAAEsAAAAAgUAAAARQmFsYW5jZUxvY2tlZGtLZXkCAAAACG5ldXRyaW5vAAAAABZMaXF1aWRhdGlvbkNvbnRyYWN0S2V5AgAAABRsaXF1aWRhdGlvbl9jb250cmFjdAAAAAANRmlyc3RPcmRlcktleQIAAAALb3JkZXJfZmlyc3QBAAAAEmdldFJvaUJ5T3JkZXJJZEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAABBkZWJ1Z19vcmRlcl9yb2lfBQAAAAdvcmRlcklkAQAAABBnZXRPcmRlclByaWNlS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAADG9yZGVyX3ByaWNlXwUAAAAHb3JkZXJJZAEAAAAQZ2V0T3JkZXJUb3RhbEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAAxvcmRlcl90b3RhbF8FAAAAB29yZGVySWQBAAAAEGdldE9yZGVyT3duZXJLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgIAAAAMb3JkZXJfb3duZXJfBQAAAAdvcmRlcklkAQAAABFnZXRPcmRlckhlaWdodEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAA1vcmRlcl9oZWlnaHRfBQAAAAdvcmRlcklkAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAA1vcmRlcl9zdGF0dXNfBQAAAAdvcmRlcklkAQAAABZnZXRPcmRlckZpbGxlZFRvdGFsS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAAE29yZGVyX2ZpbGxlZF90b3RhbF8FAAAAB29yZGVySWQBAAAAD2dldFByZXZPcmRlcktleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACAgAAAAtvcmRlcl9wcmV2XwUAAAAHb3JkZXJJZAEAAAAPZ2V0TmV4dE9yZGVyS2V5AAAAAQAAAAdvcmRlcklkCQABLAAAAAICAAAAC29yZGVyX25leHRfBQAAAAdvcmRlcklkAQAAABZjb252ZXJ0TmV1dHJpbm9Ub1dhdmVzAAAAAgAAAAZhbW91bnQAAAAFcHJpY2UJAABrAAAAAwkAAGsAAAADBQAAAAZhbW91bnQAAAAAAAAAAGQFAAAABXByaWNlBQAAAAdXQVZFTEVUBQAAAAVQQVVMSQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQAAawAAAAMJAABrAAAAAwUAAAAGYW1vdW50BQAAAAVwcmljZQAAAAAAAAAAZAUAAAAFUEFVTEkFAAAAB1dBVkVMRVQBAAAAEmNvbnZlcnRXYXZlc1RvQm9uZAAAAAIAAAAGYW1vdW50AAAABXByaWNlCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAABmFtb3VudAUAAAAFcHJpY2UBAAAAEmNvbnZlcnRCb25kVG9XYXZlcwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIFAAAABmFtb3VudAUAAAAFcHJpY2UAAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVRd6WgnuKiTD3MvecPQSqmMoFYH4YxA2UwAAAAAD2NvbnRyb2xDb250cmFjdAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVHd8mw1x96/NH/LB3/xPiuie+mNXAtxD+AAAAAATbGlxdWlkYXRpb25Db250cmFjdAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVH5rmjazLNShujK2rL9hgVnGxXROJ9RIkgAAAAAPbmV1dHJpbm9Bc3NldElkAQAAACDFV34hsakKgqH6Rs6hDFMTPGwGAdO1UWh8YxHIFkjp3wAAAAALYm9uZEFzc2V0SWQBAAAAIHb4XnbUP1bzlE4BgaOenn6BgBTQ/WsLMlDY68c8F5hNAAAAAAlpc0Jsb2NrZWQJAQAAABZnZXRCb29sQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0AgAAAAppc19ibG9ja2VkAAAAAAxjdXJyZW50UHJpY2UJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9jb250cm9sQ29udHJhY3QFAAAACFByaWNlS2V5AAAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkAAAAAB3Jlc2VydmUJAABlAAAAAgkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkAAAAADm5ldXRyaW5vU3VwcGx5CQAAZQAAAAIJAABlAAAAAgkAAGQAAAACBQAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UICQEAAAAHZXh0cmFjdAAAAAEJAAPsAAAAAQUAAAAPbmV1dHJpbm9Bc3NldElkAAAACHF1YW50aXR5CQAD6wAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAD25ldXRyaW5vQXNzZXRJZAkAA+sAAAACBQAAABNsaXF1aWRhdGlvbkNvbnRyYWN0BQAAAA9uZXV0cmlub0Fzc2V0SWQAAAAAB2RlZmljaXQJAABlAAAAAgUAAAAObmV1dHJpbm9TdXBwbHkJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAHcmVzZXJ2ZQUAAAAMY3VycmVudFByaWNlAAAAAApmaXJzdE9yZGVyCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAAA1GaXJzdE9yZGVyS2V5AQAAAA1nZXRPcmRlclByaWNlAAAAAQAAAAJpZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEGdldE9yZGVyUHJpY2VLZXkAAAABBQAAAAJpZAEAAAANZ2V0T3JkZXJUb3RhbAAAAAEAAAACaWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABBnZXRPcmRlclRvdGFsS2V5AAAAAQUAAAACaWQBAAAADWdldE9yZGVyT3duZXIAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAQZ2V0T3JkZXJPd25lcktleQAAAAEFAAAAAmlkAQAAAA5nZXRPcmRlclN0YXR1cwAAAAEAAAACaWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABFnZXRPcmRlclN0YXR1c0tleQAAAAEFAAAAAmlkAQAAABNnZXRPcmRlckZpbGxlZFRvdGFsAAAAAQAAAAJpZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldE9yZGVyRmlsbGVkVG90YWxLZXkAAAABBQAAAAJpZAEAAAAMZ2V0UHJldk9yZGVyAAAAAQAAAAJpZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAD2dldFByZXZPcmRlcktleQAAAAEFAAAAAmlkAQAAAAxnZXROZXh0T3JkZXIAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAPZ2V0TmV4dE9yZGVyS2V5AAAAAQUAAAACaWQBAAAACW9yZGVyRGF0YQAAAAYAAAAHb3JkZXJJZAAAAA10b3RhbFdhdmVsZXRzAAAABW93bmVyAAAABnN0YXR1cwAAAANyb2kAAAAFcHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABBnZXRPcmRlclByaWNlS2V5AAAAAQUAAAAHb3JkZXJJZAUAAAAFcHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABBnZXRPcmRlclRvdGFsS2V5AAAAAQUAAAAHb3JkZXJJZAUAAAANdG90YWxXYXZlbGV0cwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldE9yZGVyT3duZXJLZXkAAAABBQAAAAdvcmRlcklkBQAAAAVvd25lcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldE9yZGVySGVpZ2h0S2V5AAAAAQUAAAAHb3JkZXJJZAUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0T3JkZXJTdGF0dXNLZXkAAAABBQAAAAdvcmRlcklkBQAAAAZzdGF0dXMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAZZGVidWdfb3JkZXJfY3VycmVudFByaWNlXwUAAAAHb3JkZXJJZAUAAAAMY3VycmVudFByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0Um9pQnlPcmRlcklkS2V5AAAAAQUAAAAHb3JkZXJJZAUAAAADcm9pBQAAAANuaWwBAAAAEGludGVybmFsU2VsbEJvbmQAAAAIAAAAC3BGaXJzdE9yZGVyAAAACnBOZXh0T3JkZXIAAAAMcEZpbGxlZFRvdGFsAAAABHBSb2kAAAAGcFByaWNlAAAAEHBQYXltZW50V2F2ZWxldHMAAAARb3JkZXJPd25lckFkZHJlc3MAAAAMaW5zdGFudE9yZGVyBAAAABVwcmljZVdhdmVzQnlCb25kQ2VudHMJAABrAAAAAwkAAGQAAAACAAAAAAAAAABkBQAAAARwUm9pBQAAAAxjdXJyZW50UHJpY2UAAAAAAAAAAGQEAAAADXJlbWFpbmVkVG90YWwJAABlAAAAAgUAAAAQcFBheW1lbnRXYXZlbGV0cwUAAAAMcEZpbGxlZFRvdGFsBAAAABNmaWxsYWJsZU9yZGVyQW1vdW50CQEAAAASY29udmVydFdhdmVzVG9Cb25kAAAAAgUAAAANcmVtYWluZWRUb3RhbAUAAAAVcHJpY2VXYXZlc0J5Qm9uZENlbnRzBAAAABt0b3RhbE9yZGVyV2F2ZWxldGVzUmVxdWlyZWQJAQAAABJjb252ZXJ0Qm9uZFRvV2F2ZXMAAAACBQAAABNmaWxsYWJsZU9yZGVyQW1vdW50BQAAABVwcmljZVdhdmVzQnlCb25kQ2VudHMEAAAAFW5iVG9rZW5zU2VsbENvbmRpdGlvbgkAAGcAAAACCQAAawAAAAMFAAAAB2RlZmljaXQAAAAAAAAAAGQFAAAADm5ldXRyaW5vU3VwcGx5BQAAAARwUm9pAwkBAAAAASEAAAABBQAAABVuYlRva2Vuc1NlbGxDb25kaXRpb24JAAACAAAAAQkAASwAAAACAgAAABNpbm5hcHJvcHJpYXRlIHJvaTogCQABpAAAAAEFAAAABHBSb2kDCQAAAAAAAAIFAAAAG3RvdGFsT3JkZXJXYXZlbGV0ZXNSZXF1aXJlZAAAAAAAAAAAAAkAAAIAAAABAgAAAB9jYW5ub3QgZmlsbCBvcmRlciBhdCB0aGUgbW9tZW50BAAAAA5jaGFuZ2VXYXZlbGV0cwkAAGUAAAACBQAAAA1yZW1haW5lZFRvdGFsBQAAABt0b3RhbE9yZGVyV2F2ZWxldGVzUmVxdWlyZWQEAAAADHdyaXRlU2V0RGF0YQMFAAAADGluc3RhbnRPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldE9yZGVyUHJpY2VLZXkAAAABBQAAAAtwRmlyc3RPcmRlcgUAAAAGcFByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0T3JkZXJUb3RhbEtleQAAAAEFAAAAC3BGaXJzdE9yZGVyBQAAABBwUGF5bWVudFdhdmVsZXRzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0T3JkZXJPd25lcktleQAAAAEFAAAAC3BGaXJzdE9yZGVyCQACWAAAAAEIBQAAABFvcmRlck93bmVyQWRkcmVzcwAAAAVieXRlcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldE9yZGVySGVpZ2h0S2V5AAAAAQUAAAALcEZpcnN0T3JkZXIFAAAABmhlaWdodAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldE9yZGVyU3RhdHVzS2V5AAAAAQUAAAALcEZpcnN0T3JkZXIFAAAABkZJTExFRAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAABlkZWJ1Z19vcmRlcl9jdXJyZW50UHJpY2VfBQAAAAtwRmlyc3RPcmRlcgUAAAAMY3VycmVudFByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0Um9pQnlPcmRlcklkS2V5AAAAAQUAAAALcEZpcnN0T3JkZXIFAAAABHBSb2kFAAAAA25pbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFmdldE9yZGVyRmlsbGVkVG90YWxLZXkAAAABBQAAAAtwRmlyc3RPcmRlcgkAAGQAAAACBQAAAAxwRmlsbGVkVG90YWwFAAAAG3RvdGFsT3JkZXJXYXZlbGV0ZXNSZXF1aXJlZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldE9yZGVyU3RhdHVzS2V5AAAAAQUAAAALcEZpcnN0T3JkZXIFAAAABkZJTExFRAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldE9yZGVyVG90YWxLZXkAAAABBQAAAAtwRmlyc3RPcmRlcgUAAAAQcFBheW1lbnRXYXZlbGV0cwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldFByZXZPcmRlcktleQAAAAEFAAAACnBOZXh0T3JkZXICAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAANRmlyc3RPcmRlcktleQUAAAAKcE5leHRPcmRlcgUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQUAAAAMd3JpdGVTZXREYXRhCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEW9yZGVyT3duZXJBZGRyZXNzBQAAABNmaWxsYWJsZU9yZGVyQW1vdW50BQAAAAtib25kQXNzZXRJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABt0b3RhbE9yZGVyV2F2ZWxldGVzUmVxdWlyZWQFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARb3JkZXJPd25lckFkZHJlc3MFAAAADmNoYW5nZVdhdmVsZXRzBQAAAAR1bml0BQAAAANuaWwBAAAAF2ludGVybmFsQWRkQnV5Qm9uZE9yZGVyAAAABQAAAANyb2kAAAAFcHJpY2UAAAAJcHJldk9yZGVyAAAAA2ludgAAAAxpbnN0YW50T3JkZXIEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAADaW52AAAAB3BheW1lbnQEAAAACm5ld09yZGVySWQJAAJYAAAAAQgFAAAAA2ludgAAAA10cmFuc2FjdGlvbklkAwUAAAAJaXNCbG9ja2VkCQAAAgAAAAECAAAAWWNvbnRyYWN0IGlzIGJsb2NrZWQgYnkgRU1FUkdFTkNZIFNIVVRET1dOIGFjdGlvbnMgdW50aWwgcmVhY3RpdmF0aW9uIGJ5IGVtZXJnZW5jeSBvcmFjbGVzAwkAAGYAAAACBQAAAA1NSU5PUkRFUlRPVEFMCAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAF21pbiBvcmRlciB0b3RhbCBlcXVhbHMgCQABpAAAAAEFAAAADU1JTk9SREVSVE9UQUwDCQAAZgAAAAIFAAAAA3JvaQUAAAAGTUFYUk9JCQAAAgAAAAECAAAAF21heCBzZXRPcmRlciBST0kgaXMgOTUlAwMJAABmAAAAAgUAAAAHZGVmaWNpdAAAAAAAAAAAAAkAAGYAAAACAAAAAAAAAAAABQAAAANyb2kHCQAAAgAAAAECAAAAMmNhbid0IHBsYWNlIG9yZGVyIHdpdGggbmVnYXRpdmUgcm9pIGR1cmluZyBkZWZpY2l0AwkAAGYAAAACCQEAAAABLQAAAAEFAAAABk1BWFJPSQUAAAADcm9pCQAAAgAAAAECAAAAGG1pbiBzZXRPcmRlciBST0kgaXMgLTk1JQMJAAAAAAAAAgUAAAADcm9pAAAAAAAAAAAACQAAAgAAAAECAAAAHHJvaSBzaG91bGQgbm90IGJlIGVxdWFsIHRvIDADCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAAEmNhbiB1c2Ugd2F2ZXMgb25seQMJAQAAAAIhPQAAAAIJAQAAAA1nZXRPcmRlck93bmVyAAAAAQUAAAAKbmV3T3JkZXJJZAIAAAAACQAAAgAAAAECAAAADG9yZGVyIGV4aXN0cwMDCQEAAAACIT0AAAACBQAAAAlwcmV2T3JkZXICAAAAAAkBAAAAAiE9AAAAAgkBAAAADmdldE9yZGVyU3RhdHVzAAAAAQUAAAAJcHJldk9yZGVyBQAAAANORVcHCQAAAgAAAAECAAAAHHByZXYgb3JkZXIgc3RhdHVzIGlzIG5vdCBuZXcEAAAAGWlzTmV3T3JkZXJBdEZpcnN0UG9zaXRpb24JAAAAAAAAAgUAAAAJcHJldk9yZGVyAgAAAAAEAAAABW93bmVyCQAEJQAAAAEIBQAAAANpbnYAAAAGY2FsbGVyBAAAAAluZXh0T3JkZXIDBQAAABlpc05ld09yZGVyQXRGaXJzdFBvc2l0aW9uBQAAAApmaXJzdE9yZGVyCQEAAAAMZ2V0TmV4dE9yZGVyAAAAAQUAAAAJcHJldk9yZGVyBAAAAAxuZXh0T3JkZXJSb2kJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABJnZXRSb2lCeU9yZGVySWRLZXkAAAABBQAAAAluZXh0T3JkZXIEAAAAEGlzTmV4dE9yZGVyRXJyb3IDAwkBAAAAAiE9AAAAAgUAAAAJbmV4dE9yZGVyAgAAAAAJAABnAAAAAgUAAAADcm9pBQAAAAxuZXh0T3JkZXJSb2kHBgcEAAAADHByZXZPcmRlclJvaQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEmdldFJvaUJ5T3JkZXJJZEtleQAAAAEFAAAACXByZXZPcmRlcgQAAAAQaXNQcmV2T3JkZXJFcnJvcgMDCQEAAAACIT0AAAACBQAAAAlwcmV2T3JkZXICAAAAAAkAAGYAAAACBQAAAAxwcmV2T3JkZXJSb2kFAAAAA3JvaQcGBwMDBQAAABBpc05leHRPcmRlckVycm9yBgUAAAAQaXNQcmV2T3JkZXJFcnJvcgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB9pbnZhbGlkIG9yZGVyIGlzUHJldk9yZGVyRXJyb3I6CQABpQAAAAEFAAAAEGlzUHJldk9yZGVyRXJyb3ICAAAAEiBpc05leHRPcmRlckVycm9yOgkAAaUAAAABBQAAABBpc05leHRPcmRlckVycm9yAwMFAAAAGWlzTmV3T3JkZXJBdEZpcnN0UG9zaXRpb24FAAAADGluc3RhbnRPcmRlcgcJAQAAABBpbnRlcm5hbFNlbGxC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AAEFAAAAB29yZGVySWQDBQAAAAlpc0Jsb2NrZWQJAAACAAAAAQIAAABZY29udHJhY3QgaXMgYmxvY2tlZCBieSBFTUVSR0VOQ1kgU0hVVERPV04gYWN0aW9ucyB1bnRpbCByZWFjdGl2YXRpb24gYnkgZW1lcmdlbmN5IG9yYWNsZXMDCQEAAAACIT0AAAACBQAAAAVvd25lcgUAAAAGY2FsbGVyCQAAAgAAAAECAAAAEXBlcm1pc3Npb24gZGVuaWVkAwkBAAAAAiE9AAAAAgkBAAAADmdldE9yZGVyU3RhdHVzAAAAAQUAAAAHb3JkZXJJZAUAAAADTkVXCQAAAgAAAAECAAAAFGludmFsaWQgb3JkZXIgc3RhdHVzCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAANRmlyc3RPcmRlcktleQMJAAAAAAAAAgUAAAAKZmlyc3RPcmRlcgUAAAAHb3JkZXJJZAUAAAAJbmV4dE9yZGVyBQAAAApmaXJzdE9yZGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0TmV4dE9yZGVyS2V5AAAAAQUAAAAJcHJldk9yZGVyBQAAAAluZXh0T3JkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nZXRQcmV2T3JkZXJLZXkAAAABBQAAAAluZXh0T3JkZXIFAAAACXByZXZPcmRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldE9yZGVyU3RhdHVzS2V5AAAAAQUAAAAHb3JkZXJJZAUAAAAIQ0FOQ0VMRUQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAABmFtb3VudAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAACHNlbGxCb25kAAAAAAMFAAAACWlzQmxvY2tlZAkAAAIAAAABAgAAAFljb250cmFjdCBpcyBibG9ja2VkIGJ5IEVNRVJHRU5DWSBTSFVURE9XTiBhY3Rpb25zIHVudGlsIHJlYWN0aXZhdGlvbiBieSBlbWVyZ2VuY3kgb3JhY2xlcwMJAAAAAAAAAgUAAAAKZmlyc3RPcmRlcgIAAAAACQAAAgAAAAECAAAAD2VtcHR5IG9yZGVyYm9vawQAAAAJbmV4dE9yZGVyCQEAAAAMZ2V0TmV4dE9yZGVyAAAAAQUAAAAKZmlyc3RPcmRlcgQAAAALZmlsbGVkVG90YWwJAQAAABNnZXRPcmRlckZpbGxlZFRvdGFsAAAAAQUAAAAKZmlyc3RPcmRlcgQAAAAKb3JkZXJQcmljZQkBAAAADWdldE9yZGVyUHJpY2UAAAABBQAAAApmaXJzdE9yZGVyBAAAAANyb2kJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABJnZXRSb2lCeU9yZGVySWRLZXkAAAABBQAAAApmaXJzdE9yZGVyBAAAAA9wYXltZW50V2F2ZWxldHMJAQAAAA1nZXRPcmRlclRvdGFsAAAAAQUAAAAKZmlyc3RPcmRlcgQAAAARb3JkZXJPd25lckFkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAANZ2V0T3JkZXJPd25lcgAAAAEFAAAACmZpcnN0T3JkZXIJAQAAABBpbnRlcm5hbFNlbGxCb25kAAAACAUAAAAKZmlyc3RPcmRlcgUAAAAJbmV4dE9yZGVyBQAAAAtmaWxsZWRUb3RhbAUAAAADcm9pBQAAAApvcmRlclByaWNlBQAAAA9wYXltZW50V2F2ZWxldHMFAAAAEW9yZGVyT3duZXJBZGRyZXNzBwAAAAFpAQAAAB91cGRhdGVSZXNlcnZlc0FuZE5ldXRyaW5vU3VwcGx5AAAAAAoBAAAAFmdldE51bWJlckJ5S2V5SW50ZXJuYWwAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAADaWR4CQEAAAAWZ2V0TnVtYmVyQnlLZXlJbnRlcm5hbAAAAAECAAAAInVwZGF0ZVJlc2VydmVzQW5kTmV1dHJpbm9TdXBwbHlJZHgEAAAABm5ld0lkeAkAAGQAAAACBQAAAANpZHgAAAAAAAAAAAEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAInVwZGF0ZVJlc2VydmVzQW5kTmV1dHJpbm9TdXBwbHlJZHgFAAAABm5ld0lkeAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAHcmVzZXJ2ZQUAAAAHcmVzZXJ2ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAObmV1dHJpbm9TdXBwbHkFAAAADm5ldXRyaW5vU3VwcGx5CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAdkZWZpY2l0BQAAAAdkZWZpY2l0BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAABBwdWJLZXlBZG1pbnNMaXN0CQAETAAAAAICAAAALEQ5NlQ1VW9MN0UyRkVSYUV3b3Y5RnJ4OFhGVlBOR3FaNFR5RGlXdm4xdXJKCQAETAAAAAICAAAALEZrMnpnYnJSQThLeXRUVk1WeTZEZjVpNHRURXNLYXFnNnliaDZ4NkhlaGpqCQAETAAAAAICAAAALDM3ZjF5RTU0RnlNS3dFa2c0MTNwZXE1R2J6ZTlzQmF2QVNWZVRZYlFMVHZKCQAETAAAAAICAAAALDVXUlhGU2p3Y1RiTmZLY0pzOFpxWG1TU1dZc1NWSlV0TXZNcVpqNWhINE5jBQAAAANuaWwEAAAABWNvdW50CQAAZAAAAAIJAABkAAAAAgkAAGQAAAACAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAACAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAMJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAADAAAAAAAAAAACAAAAAAAAAAAACQAAZwAAAAIFAAAABWNvdW50AAAAAAAAAAADYUxMwg==", "chainId": 84, "height": 1047564, "spentComplexity": 0 } View: original | compacted Prev: Uh641H7qtkadpTT3Ndz6joFF2dREj6YaHsr4afqdBaK Next: BcDQHzgX3H46jVsu4qEZaxa9oWqHHEtndqNh3LiXG8MH Diff:
OldNewDifferences
6060
6161 let k = 1000000
6262
63-let l = 1000000
63+let l = (10 * j)
6464
65-let m = (10 * j)
65+let m = 95
6666
67-let n = 95
67+let n = "canceled"
6868
69-let o = "canceled"
69+let o = "new"
7070
71-let p = "new"
71+let p = "filled"
7272
73-let q = "filled"
73+let q = "neutrino_contract"
7474
75-let r = "neutrino_contract"
75+let r = "price"
7676
77-let s = "price"
77+let s = "bond_asset_id"
7878
79-let t = "bond_asset_id"
79+let t = "neutrino_asset_id"
8080
81-let u = "neutrino_asset_id"
81+let u = "control_contract"
8282
83-let v = "control_contract"
83+let v = "balance_lock_"
8484
85-let w = "balance_lock_"
85+let w = (v + "waves")
8686
87-let x = (w + "waves")
87+let x = (v + "neutrino")
8888
89-let y = (w + "neutrino")
89+let y = "liquidation_contract"
9090
91-let z = "liquidation_contract"
91+let z = "order_first"
9292
93-let A = "order_first"
94-
95-func B (C) = ("debug_order_roi_" + C)
93+func A (B) = ("debug_order_roi_" + B)
9694
9795
98-func D (C) = ("order_price_" + C)
96+func C (B) = ("order_price_" + B)
9997
10098
101-func E (C) = ("order_total_" + C)
99+func D (B) = ("order_total_" + B)
102100
103101
104-func F (C) = ("order_owner_" + C)
102+func E (B) = ("order_owner_" + B)
105103
106104
107-func G (C) = ("order_height_" + C)
105+func F (B) = ("order_height_" + B)
108106
109107
110-func H (C) = ("order_status_" + C)
108+func G (B) = ("order_status_" + B)
111109
112110
113-func I (C) = ("order_filled_total_" + C)
111+func H (B) = ("order_filled_total_" + B)
114112
115113
116-func J (C) = ("order_prev_" + C)
114+func I (B) = ("order_prev_" + B)
117115
118116
119-func K (C) = ("order_next_" + C)
117+func J (B) = ("order_next_" + B)
120118
121119
122-func L (M,N) = fraction(fraction(M, l, N), j, k)
120+func K (L,M) = fraction(fraction(L, 100, M), j, k)
123121
124122
125-func O (M,N) = fraction(fraction(M, N, l), k, j)
123+func N (L,M) = fraction(fraction(L, M, 100), k, j)
126124
127125
128-func P (M,N) = O(M, N)
126+func O (L,M) = N(L, M)
129127
130128
131-func Q (M,N) = L(M, N)
129+func P (L,M) = K(L, M)
132130
133131
134-let R = Address(base58'3MxUeE9rS9G3ap3kSrw67vkjYyTL3QLJnk3')
132+let Q = Address(base58'3MxUeE9rS9G3ap3kSrw67vkjYyTL3QLJnk3')
135133
136-let S = Address(base58'3MzosTW6DBBjpRwTZUWFhZo6UFW1yrmfdtB')
134+let R = Address(base58'3MzosTW6DBBjpRwTZUWFhZo6UFW1yrmfdtB')
137135
138-let T = Address(base58'3N1SXpSHeCeqSewbXS79otbnmP89uKUkWyf')
136+let S = Address(base58'3N1SXpSHeCeqSewbXS79otbnmP89uKUkWyf')
139137
140-let U = base58'EHLhLVDUufqQytiAjBHzPhsPZgqsX6XfSCrVdxYeC4QN'
138+let T = base58'EHLhLVDUufqQytiAjBHzPhsPZgqsX6XfSCrVdxYeC4QN'
141139
142-let V = base58'91QmVf3hZQJeUX11nurBX76Quf94kQgVMDesqALsjQFN'
140+let U = base58'91QmVf3hZQJeUX11nurBX76Quf94kQgVMDesqALsjQFN'
143141
144-let W = f(S, "is_blocked")
142+let V = f(R, "is_blocked")
145143
146-let X = i(S, s)
144+let W = i(R, r)
147145
148-let Y = i(R, y)
146+let X = i(Q, x)
149147
150-let Z = (wavesBalance(R) - i(R, x))
148+let Y = (wavesBalance(Q) - i(Q, w))
151149
152-let aa = (((Y + extract(assetInfo(U)).quantity) - assetBalance(R, U)) - assetBalance(T, U))
150+let Z = (((X + extract(assetInfo(T)).quantity) - assetBalance(Q, T)) - assetBalance(S, T))
153151
154-let ab = (aa - O(Z, X))
152+let aa = (Z - N(Y, W))
155153
156-let ac = e(A)
154+let ab = e(z)
157155
158-func ad (ae) = a(D(ae))
156+func ac (ad) = a(C(ad))
159157
160158
161-func af (ae) = a(E(ae))
159+func ae (ad) = a(D(ad))
162160
163161
164-func ag (ae) = e(F(ae))
162+func af (ad) = e(E(ad))
165163
166164
167-func ah (ae) = e(H(ae))
165+func ag (ad) = e(G(ad))
168166
169167
170-func ai (ae) = a(I(ae))
168+func ah (ad) = a(H(ad))
171169
172170
173-func aj (ae) = e(J(ae))
171+func ai (ad) = e(I(ad))
174172
175173
176-func ak (ae) = e(K(ae))
174+func aj (ad) = e(J(ad))
177175
178176
179-func al (C,am,an,ao,ap,N) = [DataEntry(D(C), N), DataEntry(E(C), am), DataEntry(F(C), an), DataEntry(G(C), height), DataEntry(H(C), ao), DataEntry(("debug_order_currentPrice_" + C), X), DataEntry(B(C), ap)]
177+func ak (B,al,am,an,ao,M) = [DataEntry(C(B), M), DataEntry(D(B), al), DataEntry(E(B), am), DataEntry(F(B), height), DataEntry(G(B), an), DataEntry(("debug_order_currentPrice_" + B), W), DataEntry(A(B), ao)]
180178
181179
182-func aq (ar,as,at,au,av,aw,ax,ay) = {
183- let az = fraction((100 + au), X, 100)
184- let aA = (aw - at)
185- let aB = P(aA, az)
186- let aC = Q(aB, az)
187- let aD = (fraction(ab, 100, aa) >= au)
188- if (!(aD))
189- then throw(("innapropriate roi: " + toString(au)))
190- else if ((aC == 0))
180+func ap (aq,ar,as,at,au,av,aw,ax) = {
181+ let ay = fraction((100 + at), W, 100)
182+ let az = (av - as)
183+ let aA = O(az, ay)
184+ let aB = P(aA, ay)
185+ let aC = (fraction(aa, 100, Z) >= at)
186+ if (!(aC))
187+ then throw(("innapropriate roi: " + toString(at)))
188+ else if ((aB == 0))
191189 then throw("cannot fill order at the moment")
192190 else {
193- let aE = (aA - aC)
194- let aF = if (ay)
195- then [DataEntry(D(ar), av), DataEntry(E(ar), aw), DataEntry(F(ar), toBase58String(ax.bytes)), DataEntry(G(ar), height), DataEntry(H(ar), q), DataEntry(("debug_order_currentPrice_" + ar), X), DataEntry(B(ar), au)]
196- else [DataEntry(I(ar), (at + aC)), DataEntry(H(ar), q), DataEntry(E(ar), aw), DataEntry(J(as), ""), DataEntry(A, as)]
197- ScriptResult(WriteSet(aF), TransferSet([ScriptTransfer(ax, aB, V), ScriptTransfer(R, aC, unit), ScriptTransfer(ax, aE, unit)]))
191+ let aD = (az - aB)
192+ let aE = if (ax)
193+ then [DataEntry(C(aq), au), DataEntry(D(aq), av), DataEntry(E(aq), toBase58String(aw.bytes)), DataEntry(F(aq), height), DataEntry(G(aq), p), DataEntry(("debug_order_currentPrice_" + aq), W), DataEntry(A(aq), at)]
194+ else [DataEntry(H(aq), (as + aB)), DataEntry(G(aq), p), DataEntry(D(aq), av), DataEntry(I(ar), ""), DataEntry(z, ar)]
195+ ScriptResult(WriteSet(aE), TransferSet([ScriptTransfer(aw, aA, U), ScriptTransfer(Q, aB, unit), ScriptTransfer(aw, aD, unit)]))
198196 }
199197 }
200198
201199
202-func aG (ap,N,aH,aI,ay) = {
203- let aJ = extract(aI.payment)
204- let aK = toBase58String(aI.transactionId)
205- if (W)
200+func aF (ao,M,aG,aH,ax) = {
201+ let aI = extract(aH.payment)
202+ let aJ = toBase58String(aH.transactionId)
203+ if (V)
206204 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
207- else if ((m > aJ.amount))
208- then throw(("min order total equals " + toString(m)))
209- else if ((ap > n))
205+ else if ((l > aI.amount))
206+ then throw(("min order total equals " + toString(l)))
207+ else if ((ao > m))
210208 then throw("max setOrder ROI is 95%")
211- else if (if ((ab > 0))
212- then (0 > ap)
209+ else if (if ((aa > 0))
210+ then (0 > ao)
213211 else false)
214212 then throw("can't place order with negative roi during deficit")
215- else if ((-(n) > ap))
213+ else if ((-(m) > ao))
216214 then throw("min setOrder ROI is -95%")
217- else if ((ap == 0))
215+ else if ((ao == 0))
218216 then throw("roi should not be equal to 0")
219- else if (isDefined(aJ.assetId))
217+ else if (isDefined(aI.assetId))
220218 then throw("can use waves only")
221- else if ((ag(aK) != ""))
219+ else if ((af(aJ) != ""))
222220 then throw("order exists")
223- else if (if ((aH != ""))
224- then (ah(aH) != p)
221+ else if (if ((aG != ""))
222+ then (ag(aG) != o)
225223 else false)
226224 then throw("prev order status is not new")
227225 else {
228- let aL = (aH == "")
229- let an = toString(aI.caller)
230- let aM = if (aL)
231- then ac
232- else ak(aH)
233- let aN = a(B(aM))
234- let aO = if (if ((aM != ""))
235- then (ap >= aN)
226+ let aK = (aG == "")
227+ let am = toString(aH.caller)
228+ let aL = if (aK)
229+ then ab
230+ else aj(aG)
231+ let aM = a(A(aL))
232+ let aN = if (if ((aL != ""))
233+ then (ao >= aM)
236234 else false)
237235 then true
238236 else false
239- let aP = a(B(aH))
240- let aQ = if (if ((aH != ""))
241- then (aP > ap)
237+ let aO = a(A(aG))
238+ let aP = if (if ((aG != ""))
239+ then (aO > ao)
242240 else false)
243241 then true
244242 else false
245- if (if (aO)
243+ if (if (aN)
246244 then true
247- else aQ)
248- then throw(((("invalid order isPrevOrderError:" + toString(aQ)) + " isNextOrderError:") + toString(aO)))
249- else if (if (aL)
250- then ay
245+ else aP)
246+ then throw(((("invalid order isPrevOrderError:" + toString(aP)) + " isNextOrderError:") + toString(aN)))
247+ else if (if (aK)
248+ then ax
251249 else false)
252- then aq(aK, aM, 0, ap, N, aJ.amount, aI.caller, true)
253- else if (ay)
250+ then ap(aJ, aL, 0, ao, M, aI.amount, aH.caller, true)
251+ else if (ax)
254252 then throw("Instant order couldn't be added into waiting queue")
255- else WriteSet([DataEntry(J(aK), aH), DataEntry(K(aK), aM), DataEntry(K(aH), if ((aH == ""))
253+ else WriteSet([DataEntry(I(aJ), aG), DataEntry(J(aJ), aL), DataEntry(J(aG), if ((aG == ""))
256254 then ""
257- else aK), DataEntry(J(aM), if ((aM == ""))
255+ else aJ), DataEntry(I(aL), if ((aL == ""))
258256 then ""
259- else aK), DataEntry(A, if (if ((ac == ""))
257+ else aJ), DataEntry(z, if (if ((ab == ""))
260258 then true
261- else (ac == aM))
262- then aK
263- else ac), al(aK, aJ.amount, an, p, ap, N)])
259+ else (ab == aL))
260+ then aJ
261+ else ab), ak(aJ, aI.amount, am, o, ao, M)])
264262 }
265263 }
266264
267265
268-@Callable(aR)
269-func instantBuyNsbtOrFail (ap) = {
270- let aJ = extract(aR.payment)
271- let az = fraction((100 + ap), X, 100)
272- let N = ((l * l) / az)
273- aG(ap, N, "", aR, true)
266+@Callable(aQ)
267+func instantBuyNsbtOrFail (ao) = {
268+ let aI = extract(aQ.payment)
269+ let ay = fraction((100 + ao), W, 100)
270+ let M = ((100 * 100) / ay)
271+ aF(ao, M, "", aQ, true)
274272 }
275273
276274
277275
278-@Callable(aR)
279-func addBuyBondOrder (N,aH) = {
280- let aJ = extract(aR.payment)
281- let az = fraction(l, l, N)
282- let ap = fraction((az - X), 100, X)
283- if ((0 >= N))
276+@Callable(aQ)
277+func addBuyBondOrder (M,aG) = {
278+ let aI = extract(aQ.payment)
279+ let ay = fraction(100, 100, M)
280+ let ao = fraction((ay - W), 100, W)
281+ if ((0 >= M))
284282 then throw("price less zero")
285- else aG(ap, N, aH, aR, false)
283+ else aF(ao, M, aG, aQ, false)
286284 }
287285
288286
289287
290-@Callable(aR)
291-func cancelOrder (C) = {
292- let an = ag(C)
293- let M = (af(C) - ai(C))
294- let aS = toString(aR.caller)
295- let aM = ak(C)
296- let aH = aj(C)
297- if (W)
288+@Callable(aQ)
289+func cancelOrder (B) = {
290+ let am = af(B)
291+ let L = (ae(B) - ah(B))
292+ let aR = toString(aQ.caller)
293+ let aL = aj(B)
294+ let aG = ai(B)
295+ if (V)
298296 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
299- else if ((an != aS))
297+ else if ((am != aR))
300298 then throw("permission denied")
301- else if ((ah(C) != p))
299+ else if ((ag(B) != o))
302300 then throw("invalid order status")
303- else ScriptResult(WriteSet([DataEntry(A, if ((ac == C))
304- then aM
305- else ac), DataEntry(K(aH), aM), DataEntry(J(aM), aH), DataEntry(H(C), o)]), TransferSet([ScriptTransfer(aR.caller, M, unit)]))
301+ else ScriptResult(WriteSet([DataEntry(z, if ((ab == B))
302+ then aL
303+ else ab), DataEntry(J(aG), aL), DataEntry(I(aL), aG), DataEntry(G(B), n)]), TransferSet([ScriptTransfer(aQ.caller, L, unit)]))
306304 }
307305
308306
309307
310-@Callable(aR)
311-func sellBond () = if (W)
308+@Callable(aQ)
309+func sellBond () = if (V)
312310 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
313- else if ((ac == ""))
311+ else if ((ab == ""))
314312 then throw("empty orderbook")
315313 else {
316- let aM = ak(ac)
317- let aT = ai(ac)
318- let aU = ad(ac)
319- let ap = a(B(ac))
320- let aV = af(ac)
321- let ax = Address(fromBase58String(ag(ac)))
322- aq(ac, aM, aT, ap, aU, aV, ax, false)
314+ let aL = aj(ab)
315+ let aS = ah(ab)
316+ let aT = ac(ab)
317+ let ao = a(A(ab))
318+ let aU = ae(ab)
319+ let aw = Address(fromBase58String(af(ab)))
320+ ap(ab, aL, aS, ao, aT, aU, aw, false)
323321 }
324322
325323
326324
327-@Callable(aR)
325+@Callable(aQ)
328326 func updateReservesAndNeutrinoSupply () = {
329- func aW (b) = {
327+ func aV (b) = {
330328 let c = getInteger(this, b)
331329 if ($isInstanceOf(c, "Int"))
332330 then {
336334 else 0
337335 }
338336
339- let aX = aW("updateReservesAndNeutrinoSupplyIdx")
340- let aY = (aX + 1)
341- WriteSet([DataEntry("updateReservesAndNeutrinoSupplyIdx", aY), DataEntry("reserve", Z), DataEntry("neutrinoSupply", aa), DataEntry("deficit", ab)])
337+ let aW = aV("updateReservesAndNeutrinoSupplyIdx")
338+ let aX = (aW + 1)
339+ WriteSet([DataEntry("updateReservesAndNeutrinoSupplyIdx", aX), DataEntry("reserve", Y), DataEntry("neutrinoSupply", Z), DataEntry("deficit", aa)])
342340 }
343341
344342
345-@Verifier(aZ)
346-func ba () = {
347- let bb = ["D96T5UoL7E2FERaEwov9Frx8XFVPNGqZ4TyDiWvn1urJ", "Fk2zgbrRA8KytTVMVy6Df5i4tTEsKaqg6ybh6x6Hehjj", "37f1yE54FyMKwEkg413peq5Gbze9sBavASVeTYbQLTvJ", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
348- let bc = ((((if (sigVerify(aZ.bodyBytes, aZ.proofs[0], fromBase58String(bb[0])))
343+@Verifier(aY)
344+func aZ () = {
345+ let ba = ["D96T5UoL7E2FERaEwov9Frx8XFVPNGqZ4TyDiWvn1urJ", "Fk2zgbrRA8KytTVMVy6Df5i4tTEsKaqg6ybh6x6Hehjj", "37f1yE54FyMKwEkg413peq5Gbze9sBavASVeTYbQLTvJ", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
346+ let bb = ((((if (sigVerify(aY.bodyBytes, aY.proofs[0], fromBase58String(ba[0])))
349347 then 1
350- else 0) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[1], fromBase58String(bb[1])))
348+ else 0) + (if (sigVerify(aY.bodyBytes, aY.proofs[1], fromBase58String(ba[1])))
351349 then 1
352- else 0)) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[2], fromBase58String(bb[2])))
350+ else 0)) + (if (sigVerify(aY.bodyBytes, aY.proofs[2], fromBase58String(ba[2])))
353351 then 1
354- else 0)) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[3], fromBase58String(bb[3])))
352+ else 0)) + (if (sigVerify(aY.bodyBytes, aY.proofs[3], fromBase58String(ba[3])))
355353 then 2
356354 else 0))
357- (bc >= 3)
355+ (bb >= 3)
358356 }
359357
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 = 1000000
63+let l = (10 * j)
6464
65-let m = (10 * j)
65+let m = 95
6666
67-let n = 95
67+let n = "canceled"
6868
69-let o = "canceled"
69+let o = "new"
7070
71-let p = "new"
71+let p = "filled"
7272
73-let q = "filled"
73+let q = "neutrino_contract"
7474
75-let r = "neutrino_contract"
75+let r = "price"
7676
77-let s = "price"
77+let s = "bond_asset_id"
7878
79-let t = "bond_asset_id"
79+let t = "neutrino_asset_id"
8080
81-let u = "neutrino_asset_id"
81+let u = "control_contract"
8282
83-let v = "control_contract"
83+let v = "balance_lock_"
8484
85-let w = "balance_lock_"
85+let w = (v + "waves")
8686
87-let x = (w + "waves")
87+let x = (v + "neutrino")
8888
89-let y = (w + "neutrino")
89+let y = "liquidation_contract"
9090
91-let z = "liquidation_contract"
91+let z = "order_first"
9292
93-let A = "order_first"
94-
95-func B (C) = ("debug_order_roi_" + C)
93+func A (B) = ("debug_order_roi_" + B)
9694
9795
98-func D (C) = ("order_price_" + C)
96+func C (B) = ("order_price_" + B)
9997
10098
101-func E (C) = ("order_total_" + C)
99+func D (B) = ("order_total_" + B)
102100
103101
104-func F (C) = ("order_owner_" + C)
102+func E (B) = ("order_owner_" + B)
105103
106104
107-func G (C) = ("order_height_" + C)
105+func F (B) = ("order_height_" + B)
108106
109107
110-func H (C) = ("order_status_" + C)
108+func G (B) = ("order_status_" + B)
111109
112110
113-func I (C) = ("order_filled_total_" + C)
111+func H (B) = ("order_filled_total_" + B)
114112
115113
116-func J (C) = ("order_prev_" + C)
114+func I (B) = ("order_prev_" + B)
117115
118116
119-func K (C) = ("order_next_" + C)
117+func J (B) = ("order_next_" + B)
120118
121119
122-func L (M,N) = fraction(fraction(M, l, N), j, k)
120+func K (L,M) = fraction(fraction(L, 100, M), j, k)
123121
124122
125-func O (M,N) = fraction(fraction(M, N, l), k, j)
123+func N (L,M) = fraction(fraction(L, M, 100), k, j)
126124
127125
128-func P (M,N) = O(M, N)
126+func O (L,M) = N(L, M)
129127
130128
131-func Q (M,N) = L(M, N)
129+func P (L,M) = K(L, M)
132130
133131
134-let R = Address(base58'3MxUeE9rS9G3ap3kSrw67vkjYyTL3QLJnk3')
132+let Q = Address(base58'3MxUeE9rS9G3ap3kSrw67vkjYyTL3QLJnk3')
135133
136-let S = Address(base58'3MzosTW6DBBjpRwTZUWFhZo6UFW1yrmfdtB')
134+let R = Address(base58'3MzosTW6DBBjpRwTZUWFhZo6UFW1yrmfdtB')
137135
138-let T = Address(base58'3N1SXpSHeCeqSewbXS79otbnmP89uKUkWyf')
136+let S = Address(base58'3N1SXpSHeCeqSewbXS79otbnmP89uKUkWyf')
139137
140-let U = base58'EHLhLVDUufqQytiAjBHzPhsPZgqsX6XfSCrVdxYeC4QN'
138+let T = base58'EHLhLVDUufqQytiAjBHzPhsPZgqsX6XfSCrVdxYeC4QN'
141139
142-let V = base58'91QmVf3hZQJeUX11nurBX76Quf94kQgVMDesqALsjQFN'
140+let U = base58'91QmVf3hZQJeUX11nurBX76Quf94kQgVMDesqALsjQFN'
143141
144-let W = f(S, "is_blocked")
142+let V = f(R, "is_blocked")
145143
146-let X = i(S, s)
144+let W = i(R, r)
147145
148-let Y = i(R, y)
146+let X = i(Q, x)
149147
150-let Z = (wavesBalance(R) - i(R, x))
148+let Y = (wavesBalance(Q) - i(Q, w))
151149
152-let aa = (((Y + extract(assetInfo(U)).quantity) - assetBalance(R, U)) - assetBalance(T, U))
150+let Z = (((X + extract(assetInfo(T)).quantity) - assetBalance(Q, T)) - assetBalance(S, T))
153151
154-let ab = (aa - O(Z, X))
152+let aa = (Z - N(Y, W))
155153
156-let ac = e(A)
154+let ab = e(z)
157155
158-func ad (ae) = a(D(ae))
156+func ac (ad) = a(C(ad))
159157
160158
161-func af (ae) = a(E(ae))
159+func ae (ad) = a(D(ad))
162160
163161
164-func ag (ae) = e(F(ae))
162+func af (ad) = e(E(ad))
165163
166164
167-func ah (ae) = e(H(ae))
165+func ag (ad) = e(G(ad))
168166
169167
170-func ai (ae) = a(I(ae))
168+func ah (ad) = a(H(ad))
171169
172170
173-func aj (ae) = e(J(ae))
171+func ai (ad) = e(I(ad))
174172
175173
176-func ak (ae) = e(K(ae))
174+func aj (ad) = e(J(ad))
177175
178176
179-func al (C,am,an,ao,ap,N) = [DataEntry(D(C), N), DataEntry(E(C), am), DataEntry(F(C), an), DataEntry(G(C), height), DataEntry(H(C), ao), DataEntry(("debug_order_currentPrice_" + C), X), DataEntry(B(C), ap)]
177+func ak (B,al,am,an,ao,M) = [DataEntry(C(B), M), DataEntry(D(B), al), DataEntry(E(B), am), DataEntry(F(B), height), DataEntry(G(B), an), DataEntry(("debug_order_currentPrice_" + B), W), DataEntry(A(B), ao)]
180178
181179
182-func aq (ar,as,at,au,av,aw,ax,ay) = {
183- let az = fraction((100 + au), X, 100)
184- let aA = (aw - at)
185- let aB = P(aA, az)
186- let aC = Q(aB, az)
187- let aD = (fraction(ab, 100, aa) >= au)
188- if (!(aD))
189- then throw(("innapropriate roi: " + toString(au)))
190- else if ((aC == 0))
180+func ap (aq,ar,as,at,au,av,aw,ax) = {
181+ let ay = fraction((100 + at), W, 100)
182+ let az = (av - as)
183+ let aA = O(az, ay)
184+ let aB = P(aA, ay)
185+ let aC = (fraction(aa, 100, Z) >= at)
186+ if (!(aC))
187+ then throw(("innapropriate roi: " + toString(at)))
188+ else if ((aB == 0))
191189 then throw("cannot fill order at the moment")
192190 else {
193- let aE = (aA - aC)
194- let aF = if (ay)
195- then [DataEntry(D(ar), av), DataEntry(E(ar), aw), DataEntry(F(ar), toBase58String(ax.bytes)), DataEntry(G(ar), height), DataEntry(H(ar), q), DataEntry(("debug_order_currentPrice_" + ar), X), DataEntry(B(ar), au)]
196- else [DataEntry(I(ar), (at + aC)), DataEntry(H(ar), q), DataEntry(E(ar), aw), DataEntry(J(as), ""), DataEntry(A, as)]
197- ScriptResult(WriteSet(aF), TransferSet([ScriptTransfer(ax, aB, V), ScriptTransfer(R, aC, unit), ScriptTransfer(ax, aE, unit)]))
191+ let aD = (az - aB)
192+ let aE = if (ax)
193+ then [DataEntry(C(aq), au), DataEntry(D(aq), av), DataEntry(E(aq), toBase58String(aw.bytes)), DataEntry(F(aq), height), DataEntry(G(aq), p), DataEntry(("debug_order_currentPrice_" + aq), W), DataEntry(A(aq), at)]
194+ else [DataEntry(H(aq), (as + aB)), DataEntry(G(aq), p), DataEntry(D(aq), av), DataEntry(I(ar), ""), DataEntry(z, ar)]
195+ ScriptResult(WriteSet(aE), TransferSet([ScriptTransfer(aw, aA, U), ScriptTransfer(Q, aB, unit), ScriptTransfer(aw, aD, unit)]))
198196 }
199197 }
200198
201199
202-func aG (ap,N,aH,aI,ay) = {
203- let aJ = extract(aI.payment)
204- let aK = toBase58String(aI.transactionId)
205- if (W)
200+func aF (ao,M,aG,aH,ax) = {
201+ let aI = extract(aH.payment)
202+ let aJ = toBase58String(aH.transactionId)
203+ if (V)
206204 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
207- else if ((m > aJ.amount))
208- then throw(("min order total equals " + toString(m)))
209- else if ((ap > n))
205+ else if ((l > aI.amount))
206+ then throw(("min order total equals " + toString(l)))
207+ else if ((ao > m))
210208 then throw("max setOrder ROI is 95%")
211- else if (if ((ab > 0))
212- then (0 > ap)
209+ else if (if ((aa > 0))
210+ then (0 > ao)
213211 else false)
214212 then throw("can't place order with negative roi during deficit")
215- else if ((-(n) > ap))
213+ else if ((-(m) > ao))
216214 then throw("min setOrder ROI is -95%")
217- else if ((ap == 0))
215+ else if ((ao == 0))
218216 then throw("roi should not be equal to 0")
219- else if (isDefined(aJ.assetId))
217+ else if (isDefined(aI.assetId))
220218 then throw("can use waves only")
221- else if ((ag(aK) != ""))
219+ else if ((af(aJ) != ""))
222220 then throw("order exists")
223- else if (if ((aH != ""))
224- then (ah(aH) != p)
221+ else if (if ((aG != ""))
222+ then (ag(aG) != o)
225223 else false)
226224 then throw("prev order status is not new")
227225 else {
228- let aL = (aH == "")
229- let an = toString(aI.caller)
230- let aM = if (aL)
231- then ac
232- else ak(aH)
233- let aN = a(B(aM))
234- let aO = if (if ((aM != ""))
235- then (ap >= aN)
226+ let aK = (aG == "")
227+ let am = toString(aH.caller)
228+ let aL = if (aK)
229+ then ab
230+ else aj(aG)
231+ let aM = a(A(aL))
232+ let aN = if (if ((aL != ""))
233+ then (ao >= aM)
236234 else false)
237235 then true
238236 else false
239- let aP = a(B(aH))
240- let aQ = if (if ((aH != ""))
241- then (aP > ap)
237+ let aO = a(A(aG))
238+ let aP = if (if ((aG != ""))
239+ then (aO > ao)
242240 else false)
243241 then true
244242 else false
245- if (if (aO)
243+ if (if (aN)
246244 then true
247- else aQ)
248- then throw(((("invalid order isPrevOrderError:" + toString(aQ)) + " isNextOrderError:") + toString(aO)))
249- else if (if (aL)
250- then ay
245+ else aP)
246+ then throw(((("invalid order isPrevOrderError:" + toString(aP)) + " isNextOrderError:") + toString(aN)))
247+ else if (if (aK)
248+ then ax
251249 else false)
252- then aq(aK, aM, 0, ap, N, aJ.amount, aI.caller, true)
253- else if (ay)
250+ then ap(aJ, aL, 0, ao, M, aI.amount, aH.caller, true)
251+ else if (ax)
254252 then throw("Instant order couldn't be added into waiting queue")
255- else WriteSet([DataEntry(J(aK), aH), DataEntry(K(aK), aM), DataEntry(K(aH), if ((aH == ""))
253+ else WriteSet([DataEntry(I(aJ), aG), DataEntry(J(aJ), aL), DataEntry(J(aG), if ((aG == ""))
256254 then ""
257- else aK), DataEntry(J(aM), if ((aM == ""))
255+ else aJ), DataEntry(I(aL), if ((aL == ""))
258256 then ""
259- else aK), DataEntry(A, if (if ((ac == ""))
257+ else aJ), DataEntry(z, if (if ((ab == ""))
260258 then true
261- else (ac == aM))
262- then aK
263- else ac), al(aK, aJ.amount, an, p, ap, N)])
259+ else (ab == aL))
260+ then aJ
261+ else ab), ak(aJ, aI.amount, am, o, ao, M)])
264262 }
265263 }
266264
267265
268-@Callable(aR)
269-func instantBuyNsbtOrFail (ap) = {
270- let aJ = extract(aR.payment)
271- let az = fraction((100 + ap), X, 100)
272- let N = ((l * l) / az)
273- aG(ap, N, "", aR, true)
266+@Callable(aQ)
267+func instantBuyNsbtOrFail (ao) = {
268+ let aI = extract(aQ.payment)
269+ let ay = fraction((100 + ao), W, 100)
270+ let M = ((100 * 100) / ay)
271+ aF(ao, M, "", aQ, true)
274272 }
275273
276274
277275
278-@Callable(aR)
279-func addBuyBondOrder (N,aH) = {
280- let aJ = extract(aR.payment)
281- let az = fraction(l, l, N)
282- let ap = fraction((az - X), 100, X)
283- if ((0 >= N))
276+@Callable(aQ)
277+func addBuyBondOrder (M,aG) = {
278+ let aI = extract(aQ.payment)
279+ let ay = fraction(100, 100, M)
280+ let ao = fraction((ay - W), 100, W)
281+ if ((0 >= M))
284282 then throw("price less zero")
285- else aG(ap, N, aH, aR, false)
283+ else aF(ao, M, aG, aQ, false)
286284 }
287285
288286
289287
290-@Callable(aR)
291-func cancelOrder (C) = {
292- let an = ag(C)
293- let M = (af(C) - ai(C))
294- let aS = toString(aR.caller)
295- let aM = ak(C)
296- let aH = aj(C)
297- if (W)
288+@Callable(aQ)
289+func cancelOrder (B) = {
290+ let am = af(B)
291+ let L = (ae(B) - ah(B))
292+ let aR = toString(aQ.caller)
293+ let aL = aj(B)
294+ let aG = ai(B)
295+ if (V)
298296 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
299- else if ((an != aS))
297+ else if ((am != aR))
300298 then throw("permission denied")
301- else if ((ah(C) != p))
299+ else if ((ag(B) != o))
302300 then throw("invalid order status")
303- else ScriptResult(WriteSet([DataEntry(A, if ((ac == C))
304- then aM
305- else ac), DataEntry(K(aH), aM), DataEntry(J(aM), aH), DataEntry(H(C), o)]), TransferSet([ScriptTransfer(aR.caller, M, unit)]))
301+ else ScriptResult(WriteSet([DataEntry(z, if ((ab == B))
302+ then aL
303+ else ab), DataEntry(J(aG), aL), DataEntry(I(aL), aG), DataEntry(G(B), n)]), TransferSet([ScriptTransfer(aQ.caller, L, unit)]))
306304 }
307305
308306
309307
310-@Callable(aR)
311-func sellBond () = if (W)
308+@Callable(aQ)
309+func sellBond () = if (V)
312310 then throw("contract is blocked by EMERGENCY SHUTDOWN actions until reactivation by emergency oracles")
313- else if ((ac == ""))
311+ else if ((ab == ""))
314312 then throw("empty orderbook")
315313 else {
316- let aM = ak(ac)
317- let aT = ai(ac)
318- let aU = ad(ac)
319- let ap = a(B(ac))
320- let aV = af(ac)
321- let ax = Address(fromBase58String(ag(ac)))
322- aq(ac, aM, aT, ap, aU, aV, ax, false)
314+ let aL = aj(ab)
315+ let aS = ah(ab)
316+ let aT = ac(ab)
317+ let ao = a(A(ab))
318+ let aU = ae(ab)
319+ let aw = Address(fromBase58String(af(ab)))
320+ ap(ab, aL, aS, ao, aT, aU, aw, false)
323321 }
324322
325323
326324
327-@Callable(aR)
325+@Callable(aQ)
328326 func updateReservesAndNeutrinoSupply () = {
329- func aW (b) = {
327+ func aV (b) = {
330328 let c = getInteger(this, b)
331329 if ($isInstanceOf(c, "Int"))
332330 then {
333331 let d = c
334332 d
335333 }
336334 else 0
337335 }
338336
339- let aX = aW("updateReservesAndNeutrinoSupplyIdx")
340- let aY = (aX + 1)
341- WriteSet([DataEntry("updateReservesAndNeutrinoSupplyIdx", aY), DataEntry("reserve", Z), DataEntry("neutrinoSupply", aa), DataEntry("deficit", ab)])
337+ let aW = aV("updateReservesAndNeutrinoSupplyIdx")
338+ let aX = (aW + 1)
339+ WriteSet([DataEntry("updateReservesAndNeutrinoSupplyIdx", aX), DataEntry("reserve", Y), DataEntry("neutrinoSupply", Z), DataEntry("deficit", aa)])
342340 }
343341
344342
345-@Verifier(aZ)
346-func ba () = {
347- let bb = ["D96T5UoL7E2FERaEwov9Frx8XFVPNGqZ4TyDiWvn1urJ", "Fk2zgbrRA8KytTVMVy6Df5i4tTEsKaqg6ybh6x6Hehjj", "37f1yE54FyMKwEkg413peq5Gbze9sBavASVeTYbQLTvJ", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
348- let bc = ((((if (sigVerify(aZ.bodyBytes, aZ.proofs[0], fromBase58String(bb[0])))
343+@Verifier(aY)
344+func aZ () = {
345+ let ba = ["D96T5UoL7E2FERaEwov9Frx8XFVPNGqZ4TyDiWvn1urJ", "Fk2zgbrRA8KytTVMVy6Df5i4tTEsKaqg6ybh6x6Hehjj", "37f1yE54FyMKwEkg413peq5Gbze9sBavASVeTYbQLTvJ", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
346+ let bb = ((((if (sigVerify(aY.bodyBytes, aY.proofs[0], fromBase58String(ba[0])))
349347 then 1
350- else 0) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[1], fromBase58String(bb[1])))
348+ else 0) + (if (sigVerify(aY.bodyBytes, aY.proofs[1], fromBase58String(ba[1])))
351349 then 1
352- else 0)) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[2], fromBase58String(bb[2])))
350+ else 0)) + (if (sigVerify(aY.bodyBytes, aY.proofs[2], fromBase58String(ba[2])))
353351 then 1
354- else 0)) + (if (sigVerify(aZ.bodyBytes, aZ.proofs[3], fromBase58String(bb[3])))
352+ else 0)) + (if (sigVerify(aY.bodyBytes, aY.proofs[3], fromBase58String(ba[3])))
355353 then 2
356354 else 0))
357- (bc >= 3)
355+ (bb >= 3)
358356 }
359357

github/deemru/w8io/026f985 
136.40 ms