tx · FRFWgxkNd5mPvEhWRkRjAdmrjSGmZ7ZNU4yW7gvsNHSt

3MwMR1ZFfy712trHVLisizYmvRQwsg8z9Bn:  -0.01400000 Waves

2020.03.27 17:02 [927936] smart account 3MwMR1ZFfy712trHVLisizYmvRQwsg8z9Bn > SELF 0.00000000 Waves

{ "type": 13, "id": "FRFWgxkNd5mPvEhWRkRjAdmrjSGmZ7ZNU4yW7gvsNHSt", "fee": 1400000, "feeAssetId": null, "timestamp": 1585317774297, "version": 1, "sender": "3MwMR1ZFfy712trHVLisizYmvRQwsg8z9Bn", "senderPublicKey": "97T1f7qUWzkowGZkQrhKdK7mb6NMiCypcdgw9AJkb7Lx", "proofs": [ "24rGFVcwwTmBtDhNoiuwMuSfmV4VJ6QaUYC6xfr1tQGuxvT9UubJgddtjwk7KQixdHgpN9Lxy1QqeNBgN6Kv1dp2" ], "script": "base64:AAIDAAAAAAAAABUIARIAEgASBAoCCAESABIDCgEIEgAAAABTAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADGdldEJvb2xCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQcBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAFmdldEJvb2xCeUFkZHJlc3NBbmRLZXkAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBwEAAAAVZ2V0TnVtYmVyRnJvbU9wdGlvbmFsAAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAAAAAAMU0VORFRYRVhQSVJFAAAAAAAAAAAeAAAAAA9MSVNUU1BMSVRTWU1CT0wCAAAAAV8AAAAADkxJU1REQVRBU1lNQk9MAgAAAAErAAAAAAdXQVZFTEVUAAAAAAAF9eEAAAAAAAVQQVVMSQAAAAAAAA9CQAAAAAANREVGSUNJVE9GRlNFVAAAAAAAAAAABQAAAAASTmV1dHJpbm9Bc3NldElkS2V5AgAAABFuZXV0cmlub19hc3NldF9pZAAAAAAOQm9uZEFzc2V0SWRLZXkCAAAADWJvbmRfYXNzZXRfaWQAAAAAEkF1Y3Rpb25Db250cmFjdEtleQIAAAAQYXVjdGlvbl9jb250cmFjdAAAAAAWTGlxdWlkYXRpb25Db250cmFjdEtleQIAAAAUbGlxdWlkYXRpb25fY29udHJhY3QAAAAADlJQRENvbnRyYWN0S2V5AgAAAAxycGRfY29udHJhY3QAAAAAEUNvbnRvbENvbnRyYWN0S2V5AgAAABBjb250cm9sX2NvbnRyYWN0AAAAABtCYWxhbmNlV2F2ZXNMb2NrSW50ZXJ2YWxLZXkCAAAAG2JhbGFuY2Vfd2F2ZXNfbG9ja19pbnRlcnZhbAAAAAAeQmFsYW5jZU5ldXRyaW5vTG9ja0ludGVydmFsS2V5AgAAAB5iYWxhbmNlX25ldXRyaW5vX2xvY2tfaW50ZXJ2YWwAAAAAFU1pbldhdmVzU3dhcEFtb3VudEtleQIAAAAVbWluX3dhdmVzX3N3YXBfYW1vdW50AAAAABhNaW5OZXV0cmlub1N3YXBBbW91bnRLZXkCAAAAGG1pbl9uZXV0cmlub19zd2FwX2Ftb3VudAAAAAAbTm9kZU9yYWNsZVByb3ZpZGVyUHViS2V5S2V5AgAAABRub2RlX29yYWNsZV9wcm92aWRlcgAAAAAWU3BvbnNvcmVkRmVlTG93ZXJCb3VuZAAAAAAAAAAAMgAAAAAWU3BvbnNvcmVkRmVlVXBwZXJCb3VuZAAAAAAAAAAAZAAAAAAOTUlOVFJBTlNGRVJGRUUAAAAAAAABhqAAAAAAD2N1cnJlbnRDb25maWdJZAIAAAARY3VycmVudF9jb25maWdfaWQBAAAADmdldEZlZVByaWNlS2V5AAAAAQAAAAJpZAkAASwAAAACAgAAAApwcmljZV9mZWVfBQAAAAJpZAEAAAAMZ2V0TWluRmVlS2V5AAAAAQAAAAJpZAkAASwAAAACAgAAAAttaW5mZWVfZmVlXwUAAAACaWQBAAAAEmdldENvbmZpZ1N0YXR1c0tleQAAAAEAAAACaWQJAAEsAAAAAgIAAAASZmVlX2NvbmZpZ19zdGF0dXNfBQAAAAJpZAAAAAANUlBEQmFsYW5jZUtleQIAAAALcnBkX2JhbGFuY2UBAAAAGGdldFJQRENvbnRyYWN0QmFsYW5jZUtleQAAAAEAAAAHYXNzZXRJZAkAASwAAAACCQABLAAAAAIFAAAADVJQREJhbGFuY2VLZXkCAAAAAV8JAAJYAAAAAQUAAAAHYXNzZXRJZAAAAAAIUHJpY2VLZXkCAAAABXByaWNlAAAAAA1QcmljZUluZGV4S2V5AgAAAAtwcmljZV9pbmRleAAAAAAMSXNCbG9ja2VkS2V5AgAAAAppc19ibG9ja2VkAQAAABJnZXRQcmljZUhpc3RvcnlLZXkAAAABAAAABWJsb2NrCQABLAAAAAIJAAEsAAAAAgUAAAAIUHJpY2VLZXkCAAAAAV8JAAGkAAAAAQUAAAAFYmxvY2sBAAAAGGdldEhlaWdodFByaWNlQnlJbmRleEtleQAAAAEAAAAFaW5kZXgJAAEsAAAAAgkAASwAAAACBQAAAA1QcmljZUluZGV4S2V5AgAAAAFfCQABpAAAAAEFAAAABWluZGV4AAAAABFCYWxhbmNlTG9ja2Vka0tleQIAAAANYmFsYW5jZV9sb2NrXwAAAAAVV2F2ZXNMb2NrZWRCYWxhbmNlS2V5CQABLAAAAAIFAAAAEUJhbGFuY2VMb2NrZWRrS2V5AgAAAAV3YXZlcwAAAAAYTmV1dHJpbm9Mb2NrZWRCYWxhbmNlS2V5CQABLAAAAAIFAAAAEUJhbGFuY2VMb2NrZWRrS2V5AgAAAAhuZXV0cmlubwEAAAAgZ2V0UlBEU25hcHNob3RDb250cmFjdEJhbGFuY2VLZXkAAAACAAAABWNvdW50AAAAB2Fzc2V0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANUlBEQmFsYW5jZUtleQIAAAABXwkAAlgAAAABBQAAAAdhc3NldElkAgAAAAFfCQABpAAAAAEFAAAABWNvdW50AQAAAB1nZXRDYW5jZWxMZWFzZVR4UmVzZXJ2ZUZlZUtleQAAAAEAAAAEaGFzaAkAASwAAAACCQABLAAAAAICAAAAG2NhbmNlbF9sZWFzZV90eF9yZXNlcnZlX2ZlZQIAAAABXwUAAAAEaGFzaAEAAAAYZ2V0V2F2ZXNMb2NrZWRCYWxhbmNlS2V5AAAAAQAAAAVvd25lcgkAASwAAAACCQABLAAAAAIFAAAAFVdhdmVzTG9ja2VkQmFsYW5jZUtleQIAAAABXwUAAAAFb3duZXIBAAAAG2dldE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQAAAAEAAAAFb3duZXIJAAEsAAAAAgkAASwAAAACBQAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkCAAAAAV8FAAAABW93bmVyAQAAABhnZXRCYWxhbmNlVW5sb2NrQmxvY2tLZXkAAAABAAAABW93bmVyCQABLAAAAAICAAAAFWJhbGFuY2VfdW5sb2NrX2Jsb2NrXwUAAAAFb3duZXIBAAAAD2dldFJQRFByb2ZpdEtleQAAAAEAAAAFY291bnQJAAEsAAAAAgkAASwAAAACAgAAAApycGRfcHJvZml0AgAAAAFfCQABpAAAAAEFAAAABWNvdW50AQAAABZjb252ZXJ0TmV1dHJpbm9Ub1dhdmVzAAAAAgAAAAZhbW91bnQAAAAFcHJpY2UJAABrAAAAAwkAAGsAAAADBQAAAAZhbW91bnQAAAAAAAAAAGQFAAAABXByaWNlBQAAAAdXQVZFTEVUBQAAAAVQQVVMSQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQAAawAAAAMJAABrAAAAAwUAAAAGYW1vdW50BQAAAAVwcmljZQAAAAAAAAAAZAUAAAAFUEFVTEkFAAAAB1dBVkVMRVQBAAAAEmNvbnZlcnRXYXZlc1RvQm9uZAAAAAIAAAAGYW1vdW50AAAABXByaWNlCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAABmFtb3VudAUAAAAFcHJpY2UBAAAAFmNvbnZlcnRKc29uQXJyYXlUb0xpc3QAAAABAAAACWpzb25BcnJheQkABLUAAAACBQAAAAlqc29uQXJyYXkCAAAAASwAAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAFkxpcXVpZGF0aW9uQ29udHJhY3RLZXkAAAAAFW5ldXRyaW5vQXNzZXRJZFN0cmluZwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAASTmV1dHJpbm9Bc3NldElkS2V5AAAAAA9uZXV0cmlub0Fzc2V0SWQJAAJZAAAAAQUAAAAVbmV1dHJpbm9Bc3NldElkU3RyaW5nAAAAAA9hdWN0aW9uQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAEkF1Y3Rpb25Db250cmFjdEtleQAAAAALcnBkQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAADlJQRENvbnRyYWN0S2V5AAAAAA9jb250cm9sQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAEUNvbnRvbENvbnRyYWN0S2V5AAAAAApwcmljZUluZGV4CQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0BQAAAA1QcmljZUluZGV4S2V5AAAAAAlpc0Jsb2NrZWQJAQAAABZnZXRCb29sQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0BQAAAAxJc0Jsb2NrZWRLZXkAAAAAGG5vZGVPcmFjbGVQcm92aWRlclB1YktleQkAAlkAAAABCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABtOb2RlT3JhY2xlUHJvdmlkZXJQdWJLZXlLZXkAAAAAGGJhbGFuY2VXYXZlc0xvY2tJbnRlcnZhbAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAbQmFsYW5jZVdhdmVzTG9ja0ludGVydmFsS2V5AAAAABtiYWxhbmNlTmV1dHJpbm9Mb2NrSW50ZXJ2YWwJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAHkJhbGFuY2VOZXV0cmlub0xvY2tJbnRlcnZhbEtleQAAAAASbWluV2F2ZXNTd2FwQW1vdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABVNaW5XYXZlc1N3YXBBbW91bnRLZXkAAAAAFW1pbk5ldXRyaW5vU3dhcEFtb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAYTWluTmV1dHJpbm9Td2FwQW1vdW50S2V5AAAAAAtib25kQXNzZXRJZAkAAlkAAAABAgAAACw2blNwVnlOSDd5TTY5ZWc0NDZ3clFSOTRpcGJiY21aTVUxRU5Qd2FuQzk3ZwAAAAAVZGVwcmVjYXRlZEJvbmRBc3NldElkCQACWQAAAAECAAAALDk3NWFrWkJmbk1qNTEzVTdNWmFIS3pRcm1zRXg1YUUzd2RXS1RySEJoYmpGAAAAABBuZXV0cmlub0NvbnRyYWN0BQAAAAR0aGlzAAAAAAxjdXJyZW50UHJpY2UJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9jb250cm9sQ29udHJhY3QFAAAACFByaWNlS2V5AAAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAGE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQAAAAASd2F2ZXNMb2NrZWRCYWxhbmNlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkAAAAAB3Jlc2VydmUJAABlAAAAAgkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAEndhdmVzTG9ja2VkQmFsYW5jZQAAAAAObmV1dHJpbm9TdXBwbHkJAABlAAAAAgkAAGUAAAACCQAAZAAAAAIFAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQgJAQAAAAdleHRyYWN0AAAAAQkAA+wAAAABBQAAAA9uZXV0cmlub0Fzc2V0SWQAAAAIcXVhbnRpdHkJAAPrAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAPbmV1dHJpbm9Bc3NldElkCQAD6wAAAAIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAATbGlxdWlkYXRpb25Db250cmFjdAUAAAAPbmV1dHJpbm9Bc3NldElkAAAAAAdzdXJwbHVzCQAAZQAAAAIJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAHcmVzZXJ2ZQUAAAAMY3VycmVudFByaWNlBQAAAA5uZXV0cmlub1N1cHBseQAAAAAHZGVmaWNpdAkAAGUAAAACBQAAAA5uZXV0cmlub1N1cHBseQkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAAdyZXNlcnZlBQAAAAxjdXJyZW50UHJpY2UBAAAAG2NoZWNrSXNWYWxpZE1pblNwb25zb3JlZEZlZQAAAAEAAAACdHgEAAAAAmNwAAAAAAAAAABaBAAAAA9yZWFsTmV1dHJpbm9GZWUJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAOTUlOVFJBTlNGRVJGRUUFAAAAAmNwBAAAAA1tZWRpdW1QZXJjZW50CQAAZAAAAAIFAAAAFlNwb25zb3JlZEZlZUxvd2VyQm91bmQJAABrAAAAAwkAAGUAAAACBQAAABZTcG9uc29yZWRGZWVVcHBlckJvdW5kBQAAABZTcG9uc29yZWRGZWVMb3dlckJvdW5kAAAAAAAAAAABAAAAAAAAAAACBAAAAAhleGFjdEZlZQkAAGQAAAACBQAAAA9yZWFsTmV1dHJpbm9GZWUJAABrAAAAAwUAAAAPcmVhbE5ldXRyaW5vRmVlBQAAAA1tZWRpdW1QZXJjZW50AAAAAAAAAABkBAAAAAdjb3JyZWN0CQABpAAAAAEJAQAAABVnZXROdW1iZXJGcm9tT3B0aW9uYWwAAAABCAUAAAACdHgAAAAUbWluU3BvbnNvcmVkQXNzZXRGZWUEAAAABWV4YWN0CQABpAAAAAEFAAAACGV4YWN0RmVlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAANQ29ycmVjdCBmZWU6IAUAAAAHY29ycmVjdAIAAAAJOyBFeGFjdDogBQAAAAVleGFjdAIAAAAROyBSZWFsIFVTRE4gZmVlOiAJAAGkAAAAAQUAAAAPcmVhbE5ldXRyaW5vRmVlAgAAABI7IE1lZGl1bSBwZXJjZW50OiAJAAGkAAAAAQUAAAANbWVkaXVtUGVyY2VudAEAAAAVZ2V0UlBEQ29udHJhY3RCYWxhbmNlAAAAAQAAAAdhc3NldElkCQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAALcnBkQ29udHJhY3QJAQAAABhnZXRSUERDb250cmFjdEJhbGFuY2VLZXkAAAABBQAAAAdhc3NldElkAQAAAA9nZXRQcmljZUhpc3RvcnkAAAABAAAABWJsb2NrCQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0CQEAAAASZ2V0UHJpY2VIaXN0b3J5S2V5AAAAAQUAAAAFYmxvY2sBAAAAFWdldEhlaWdodFByaWNlQnlJbmRleAAAAAEAAAAFaW5kZXgJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9jb250cm9sQ29udHJhY3QJAQAAABhnZXRIZWlnaHRQcmljZUJ5SW5kZXhLZXkAAAABBQAAAAVpbmRleAEAAAAaZ2V0Q2FuY2VsTGVhc2VUeFJlc2VydmVGZWUAAAABAAAABGhhc2gJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAB1nZXRDYW5jZWxMZWFzZVR4UmVzZXJ2ZUZlZUtleQAAAAEFAAAABGhhc2gBAAAAFWdldFdhdmVzTG9ja2VkQmFsYW5jZQAAAAEAAAAFb3duZXIJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABhnZXRXYXZlc0xvY2tlZEJhbGFuY2VLZXkAAAABBQAAAAVvd25lcgEAAAAYZ2V0TmV1dHJpbm9Mb2NrZWRCYWxhbmNlAAAAAQAAAAVvd25lcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAG2dldE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQAAAAEFAAAABW93bmVyAQAAABVnZXRVbmxvY2tCYWxhbmNlQmxvY2sAAAABAAAABW93bmVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0QmFsYW5jZVVubG9ja0Jsb2NrS2V5AAAAAQUAAAAFb3duZXIBAAAADGdldFJQRFByb2ZpdAAAAAEAAAAFY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA9nZXRSUERQcm9maXRLZXkAAAABBQAAAAVjb3VudAAAAAYAAAABaQEAAAATc3dhcFdhdmVzVG9OZXV0cmlubwAAAAAEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAdhY2NvdW50CQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgMJAABmAAAAAgUAAAASbWluV2F2ZXNTd2FwQW1vdW50CAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAABAVGhlIHNwZWNpZmllZCBXYXZlcyBhbW91bnQgaXMgbGVzcyB0aGFuIHRoZSByZXF1aXJlZCBtaW5pbXVtIG9mIAkAAaQAAAABBQAAABJtaW5XYXZlc1N3YXBBbW91bnQCAAAACiB3YXZlbGV0cy4DCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAAKU9ubHkgV2F2ZXMgdG9rZW4gaXMgYWxsb3dlZCBmb3Igc3dhcHBpbmcuAwUAAAAJaXNCbG9ja2VkCQAAAgAAAAECAAAAWmNvbnRyYWN0IGlzIGJsb2NrZWQgYnkgRU1FUkdFTkNZIFNIVVRET1dOIGFjdGlvbnMgdW50aWxsIHJlYWN0aXZhdGlvbiBieSBlbWVyZ2VuY3kgb3JhY2xlcwMJAABmAAAAAgkBAAAAFWdldFVubG9ja0JhbGFuY2VCbG9jawAAAAEFAAAAB2FjY291bnQFAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGYXdhaXQgCQABpAAAAAEJAABlAAAAAgkBAAAAFWdldFVubG9ja0JhbGFuY2VCbG9jawAAAAEFAAAAB2FjY291bnQFAAAABmhlaWdodAIAAAAHIGJsb2NrcwMDCQEAAAACIT0AAAACCQEAAAAYZ2V0TmV1dHJpbm9Mb2NrZWRCYWxhbmNlAAAAAQUAAAAHYWNjb3VudAAAAAAAAAAAAAYJAQAAAAIhPQAAAAIJAQAAABVnZXRXYXZlc0xvY2tlZEJhbGFuY2UAAAABBQAAAAdhY2NvdW50AAAAAAAAAAAACQAAAgAAAAECAAAAInBsZWFzZSB3aXRoZHJhdyBsb2NrZWQgZnVuZHMgZmlyc3QJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRXYXZlc0xvY2tlZEJhbGFuY2VLZXkAAAABBQAAAAdhY2NvdW50CAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGGdldEJhbGFuY2VVbmxvY2tCbG9ja0tleQAAAAEFAAAAB2FjY291bnQJAABkAAAAAgUAAAAGaGVpZ2h0BQAAABhiYWxhbmNlV2F2ZXNMb2NrSW50ZXJ2YWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAFVdhdmVzTG9ja2VkQmFsYW5jZUtleQkAAGQAAAACBQAAABJ3YXZlc0xvY2tlZEJhbGFuY2UIBQAAAANwbXQAAAAGYW1vdW50BQAAAANuaWwAAAABaQEAAAATc3dhcE5ldXRyaW5vVG9XYXZlcwAAAAAEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAdhY2NvdW50CQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgMJAABmAAAAAgUAAAAVbWluTmV1dHJpbm9Td2FwQW1vdW50CAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAABDVGhlIHNwZWNpZmllZCBOZXV0cmlubyBhbW91bnQgaXMgbGVzcyB0aGFuIHRoZSByZXF1aXJlZCBtaW5pbXVtIG9mIAkAAaQAAAABBQAAABVtaW5OZXV0cmlub1N3YXBBbW91bnQCAAAAECBOZXV0cmlubyBjZW50cy4DBQAAAAlpc0Jsb2NrZWQJAAACAAAAAQIAAABhVGhlIGNvbnRyYWN0IGlzIGJsb2NrZWQgYnkgRU1FUkdFTkNZIFNIVVRET1dOLiBQbGVhc2Ugd2FpdCBmb3IgcmVhY3RpdmF0aW9uIGJ5IGVtZXJnZW5jeSBvcmFjbGVzLgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAAPbmV1dHJpbm9Bc3NldElkCQAAAgAAAAECAAAAOk9ubHkgYXBwcm9wcmlhdGUgTmV1dHJpbm8gdG9rZW5zIGFyZSBhbGxvd2VkIGZvciBzd2FwcGluZy4DCQAAZgAAAAIJAQAAABVnZXRVbmxvY2tCYWxhbmNlQmxvY2sAAAABBQAAAAdhY2NvdW50BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAABmF3YWl0IAkAAaQAAAABCQAAZQAAAAIJAQAAABVnZXRVbmxvY2tCYWxhbmNlQmxvY2sAAAABBQAAAAdhY2NvdW50BQAAAAZoZWlnaHQCAAAAByBibG9ja3MDAwkBAAAAAiE9AAAAAgkBAAAAGGdldE5ldXRyaW5vTG9ja2VkQmFsYW5jZQAAAAEFAAAAB2FjY291bnQAAAAAAAAAAAAGCQEAAAACIT0AAAACCQEAAAAVZ2V0V2F2ZXNMb2NrZWRCYWxhbmNlAAAAAQUAAAAHYWNjb3VudAAAAAAAAAAAAAkAAAIAAAABAgAAACJwbGVhc2Ugd2l0aGRyYXcgbG9ja2VkIGZ1bmRzIGZpcnN0CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAbZ2V0TmV1dHJpbm9Mb2NrZWRCYWxhbmNlS2V5AAAAAQUAAAAHYWNjb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRCYWxhbmNlVW5sb2NrQmxvY2tLZXkAAAABBQAAAAdhY2NvdW50CQAAZAAAAAIFAAAABmhlaWdodAUAAAAbYmFsYW5jZU5ldXRyaW5vTG9ja0ludGVydmFsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkJAABkAAAAAgUAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlCAUAAAADcG10AAAABmFtb3VudAUAAAADbmlsAAAAAWkBAAAACHdpdGhkcmF3AAAAAgAAAAdhY2NvdW50AAAABWluZGV4BAAAAAx1bmxvY2tIZWlnaHQJAQAAABVnZXRVbmxvY2tCYWxhbmNlQmxvY2sAAAABBQAAAAdhY2NvdW50BAAAABZ1c2VyV2F2ZXNMb2NrZWRCYWxhbmNlCQEAAAAVZ2V0V2F2ZXNMb2NrZWRCYWxhbmNlAAAAAQUAAAAHYWNjb3VudAQAAAAZdXNlck5ldXRyaW5vTG9ja2VkQmFsYW5jZQkBAAAAGGdldE5ldXRyaW5vTG9ja2VkQmFsYW5jZQAAAAEFAAAAB2FjY291bnQEAAAAC2luZGV4SGVpZ2h0CQEAAAAVZ2V0SGVpZ2h0UHJpY2VCeUluZGV4AAAAAQUAAAAFaW5kZXgEAAAAD3ByZXZJbmRleEhlaWdodAkBAAAAFWdldEhlaWdodFByaWNlQnlJbmRleAAAAAEJAABlAAAAAgUAAAAFaW5kZXgAAAAAAAAAAAEEAAAADHByaWNlQnlJbmRleAkBAAAAD2dldFByaWNlSGlzdG9yeQAAAAEFAAAAC2luZGV4SGVpZ2h0BAAAAA5uZXV0cmlub0Ftb3VudAkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAABZ1c2VyV2F2ZXNMb2NrZWRCYWxhbmNlBQAAAAxwcmljZUJ5SW5kZXgEAAAAC3dhdmVzQW1vdW50CQEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIFAAAAGXVzZXJOZXV0cmlub0xvY2tlZEJhbGFuY2UFAAAADHByaWNlQnlJbmRleAMFAAAACWlzQmxvY2tlZAkAAAIAAAABAgAAAFpjb250cmFjdCBpcyBibG9ja2VkIGJ5IEVNRVJHRU5DWSBTSFVURE9XTiBhY3Rpb25zIHVudGlsbCByZWFjdGl2YXRpb24gYnkgZW1lcmdlbmN5IG9yYWNsZXMDCQAAZgAAAAIFAAAADHVubG9ja0hlaWdodAUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABFwbGVhc2Ugd2FpdCBmb3I6IAkAAaQAAAABBQAAAAx1bmxvY2tIZWlnaHQCAAAAJSBibG9jayBoZWlnaHQgdG8gd2l0aGRyYXcgV0FWRVMgZnVuZHMDAwMJAABmAAAAAgUAAAAFaW5kZXgFAAAACnByaWNlSW5kZXgGCQAAZgAAAAIFAAAADHVubG9ja0hlaWdodAUAAAALaW5kZXhIZWlnaHQGAwkBAAAAAiE9AAAAAgUAAAAPcHJldkluZGV4SGVpZ2h0AAAAAAAAAAAACQAAZwAAAAIFAAAAD3ByZXZJbmRleEhlaWdodAUAAAAMdW5sb2NrSGVpZ2h0BwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAACNpbnZhbGlkIHByaWNlIGhpc3RvcnkgaW5kZXg6IGluZGV4PQkAAaQAAAABBQAAAAVpbmRleAIAAAAMIHByaWNlSW5kZXg9CQABpAAAAAEFAAAACnByaWNlSW5kZXgCAAAADSBpbmRleEhlaWdodD0JAAGkAAAAAQUAAAALaW5kZXhIZWlnaHQCAAAADiB1bmxvY2tIZWlnaHQ9CQABpAAAAAEFAAAADHVubG9ja0hlaWdodAIAAAARIHByZXZJbmRleEhlaWdodD0JAAGkAAAAAQUAAAAPcHJldkluZGV4SGVpZ2h0AwMJAABnAAAAAgAAAAAAAAAAAAUAAAAObmV1dHJpbm9BbW91bnQJAABnAAAAAgAAAAAAAAAAAAUAAAALd2F2ZXNBbW91bnQHCQAAAgAAAAECAAAAE2JhbGFuY2UgZXF1YWxzIHplcm8JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0V2F2ZXNMb2NrZWRCYWxhbmNlS2V5AAAAAQUAAAAHYWNjb3VudAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAG2dldE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQAAAAEFAAAAB2FjY291bnQAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAFVdhdmVzTG9ja2VkQmFsYW5jZUtleQkAAGUAAAACBQAAABJ3YXZlc0xvY2tlZEJhbGFuY2UFAAAAFnVzZXJXYXZlc0xvY2tlZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQkAAGUAAAACBQAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UFAAAAGXVzZXJOZXV0cmlub0xvY2tlZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FjY291bnQFAAAAC3dhdmVzQW1vdW50BQAAAAR1bml0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWNjb3VudAUAAAAObmV1dHJpbm9BbW91bnQFAAAAD25ldXRyaW5vQXNzZXRJZAUAAAADbmlsAAAAAWkBAAAAEXRyYW5zZmVyVG9BdWN0aW9uAAAAAAQAAAARZGVmaWNpdEJvbmRBbW91bnQJAABlAAAAAgUAAAAHZGVmaWNpdAkAA+sAAAACCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAD2F1Y3Rpb25Db250cmFjdAUAAAALYm9uZEFzc2V0SWQEAAAACm1pbkRlZmljaXQJAABrAAAAAwUAAAAObmV1dHJpbm9TdXBwbHkFAAAADURFRklDSVRPRkZTRVQAAAAAAAAAAGQEAAAAFnN1cnBsdXNXaXRoTGlxdWlkYXRpb24JAABlAAAAAgUAAAAHc3VycGx1cwkAA+sAAAACCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QFAAAAD25ldXRyaW5vQXNzZXRJZAMFAAAACWlzQmxvY2tlZAkAAAIAAAABAgAAAFpjb250cmFjdCBpcyBibG9ja2VkIGJ5IEVNRVJHRU5DWSBTSFVURE9XTiBhY3Rpb25zIHVudGlsbCByZWFjdGl2YXRpb24gYnkgZW1lcmdlbmN5IG9yYWNsZXMDAwkAAGYAAAACBQAAABFkZWZpY2l0Qm9uZEFtb3VudAUAAAAKbWluRGVmaWNpdAkA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", "chainId": 84, "height": 927936, "spentComplexity": 0 } View: original | compacted Prev: 9YnL9kgdro8bUWoqvhukvCMwxMAPzPZUcWMwKXAPN8c6 Next: 8A2L7GHpAbsyTw9EkDq5Ed2s5bCTPBNuc7nyiRxkDxZg Diff:
OldNewDifferences
231231 func aL (aM) = {
232232 let aN = 90
233233 let aO = ak(F, aN)
234- let aP = 10
235- let aQ = (fraction(D, aP, 1) + fraction((E - D), aP, 2))
236- let aR = (aO + fraction(aO, aQ, 100))
237- let aS = toString(k(aM.minSponsoredAssetFee))
238- let aT = toString(aR)
239- throw(((((((("Correct fee: " + aS) + "; Exact: ") + aT) + "; Real USDN fee: ") + toString(aO)) + "; Medium percent: ") + toString(aQ)))
234+ let aP = (D + fraction((E - D), 1, 2))
235+ let aQ = (aO + fraction(aO, aP, 100))
236+ let aR = toString(k(aM.minSponsoredAssetFee))
237+ let aS = toString(aQ)
238+ throw(((((((("Correct fee: " + aR) + "; Exact: ") + aS) + "; Real USDN fee: ") + toString(aO)) + "; Medium percent: ") + toString(aP)))
240239 }
241240
242241
243-func aU (N) = g(as, M(N))
242+func aT (N) = g(as, M(N))
244243
245244
246-func aV (S) = g(at, R(S))
245+func aU (S) = g(at, R(S))
247246
248247
249-func aW (U) = g(at, T(U))
248+func aV (U) = g(at, T(U))
250249
251250
252-func aX (ab) = a(aa(ab))
251+func aW (ab) = a(aa(ab))
253252
254253
255-func aY (ad) = a(ac(ad))
254+func aX (ad) = a(ac(ad))
256255
257256
258-func aZ (ad) = a(ae(ad))
257+func aY (ad) = a(ae(ad))
259258
260259
261-func ba (ad) = a(af(ad))
260+func aZ (ad) = a(af(ad))
262261
263262
264-func bb (Z) = a(ag(Z))
263+func ba (Z) = a(ag(Z))
265264
266265
267-@Callable(bc)
266+@Callable(bb)
268267 func swapWavesToNeutrino () = {
269- let bd = extract(bc.payment)
270- let be = toString(bc.caller)
271- if ((az > bd.amount))
268+ let bc = extract(bb.payment)
269+ let bd = toString(bb.caller)
270+ if ((az > bc.amount))
272271 then throw((("The specified Waves amount is less than the required minimum of " + toString(az)) + " wavelets."))
273- else if (isDefined(bd.assetId))
272+ else if (isDefined(bc.assetId))
274273 then throw("Only Waves token is allowed for swapping.")
275274 else if (av)
276275 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
277- else if ((ba(be) > height))
278- then throw((("await " + toString((ba(be) - height))) + " blocks"))
279- else if (if ((aZ(be) != 0))
276+ else if ((aZ(bd) > height))
277+ then throw((("await " + toString((aZ(bd) - height))) + " blocks"))
278+ else if (if ((aY(bd) != 0))
280279 then true
281- else (aY(be) != 0))
280+ else (aX(bd) != 0))
282281 then throw("please withdraw locked funds first")
283- else WriteSet([DataEntry(ac(be), bd.amount), DataEntry(af(be), (height + ax)), DataEntry(W, (aG + bd.amount))])
282+ else WriteSet([DataEntry(ac(bd), bc.amount), DataEntry(af(bd), (height + ax)), DataEntry(W, (aG + bc.amount))])
284283 }
285284
286285
287286
288-@Callable(bc)
287+@Callable(bb)
289288 func swapNeutrinoToWaves () = {
290- let bd = extract(bc.payment)
291- let be = toString(bc.caller)
292- if ((aA > bd.amount))
289+ let bc = extract(bb.payment)
290+ let bd = toString(bb.caller)
291+ if ((aA > bc.amount))
293292 then throw((("The specified Neutrino amount is less than the required minimum of " + toString(aA)) + " Neutrino cents."))
294293 else if (av)
295294 then throw("The contract is blocked by EMERGENCY SHUTDOWN. Please wait for reactivation by emergency oracles.")
296- else if ((bd.assetId != aq))
295+ else if ((bc.assetId != aq))
297296 then throw("Only appropriate Neutrino tokens are allowed for swapping.")
298- else if ((ba(be) > height))
299- then throw((("await " + toString((ba(be) - height))) + " blocks"))
300- else if (if ((aZ(be) != 0))
297+ else if ((aZ(bd) > height))
298+ then throw((("await " + toString((aZ(bd) - height))) + " blocks"))
299+ else if (if ((aY(bd) != 0))
301300 then true
302- else (aY(be) != 0))
301+ else (aX(bd) != 0))
303302 then throw("please withdraw locked funds first")
304- else WriteSet([DataEntry(ae(be), bd.amount), DataEntry(af(be), (height + ay)), DataEntry(X, (aF + bd.amount))])
303+ else WriteSet([DataEntry(ae(bd), bc.amount), DataEntry(af(bd), (height + ay)), DataEntry(X, (aF + bc.amount))])
305304 }
306305
307306
308307
309-@Callable(bc)
310-func withdraw (be,U) = {
311- let bf = ba(be)
312- let bg = aY(be)
313- let bh = aZ(be)
314- let bi = aW(U)
315- let bj = aW((U - 1))
316- let bk = aV(bi)
317- let bl = ak(bg, bk)
318- let bm = ah(bh, bk)
308+@Callable(bb)
309+func withdraw (bd,U) = {
310+ let be = aZ(bd)
311+ let bf = aX(bd)
312+ let bg = aY(bd)
313+ let bh = aV(U)
314+ let bi = aV((U - 1))
315+ let bj = aU(bh)
316+ let bk = ak(bf, bj)
317+ let bl = ah(bg, bj)
319318 if (av)
320319 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
321- else if ((bf > height))
322- then throw((("please wait for: " + toString(bf)) + " block height to withdraw WAVES funds"))
320+ else if ((be > height))
321+ then throw((("please wait for: " + toString(be)) + " block height to withdraw WAVES funds"))
323322 else if (if (if ((U > au))
324323 then true
325- else (bf > bi))
324+ else (be > bh))
326325 then true
327- else if ((bj != 0))
328- then (bj >= bf)
326+ else if ((bi != 0))
327+ then (bi >= be)
329328 else false)
330- then throw(((((((((("invalid price history index: index=" + toString(U)) + " priceIndex=") + toString(au)) + " indexHeight=") + toString(bi)) + " unlockHeight=") + toString(bf)) + " prevIndexHeight=") + toString(bj)))
331- else if (if ((0 >= bl))
332- then (0 >= bm)
329+ then throw(((((((((("invalid price history index: index=" + toString(U)) + " priceIndex=") + toString(au)) + " indexHeight=") + toString(bh)) + " unlockHeight=") + toString(be)) + " prevIndexHeight=") + toString(bi)))
330+ else if (if ((0 >= bk))
331+ then (0 >= bl)
333332 else false)
334333 then throw("balance equals zero")
335- else ScriptResult(WriteSet([DataEntry(ac(be), 0), DataEntry(ae(be), 0), DataEntry(W, (aG - bg)), DataEntry(X, (aF - bh))]), TransferSet([ScriptTransfer(addressFromStringValue(be), bm, unit), ScriptTransfer(addressFromStringValue(be), bl, aq)]))
334+ else ScriptResult(WriteSet([DataEntry(ac(bd), 0), DataEntry(ae(bd), 0), DataEntry(W, (aG - bf)), DataEntry(X, (aF - bg))]), TransferSet([ScriptTransfer(addressFromStringValue(bd), bl, unit), ScriptTransfer(addressFromStringValue(bd), bk, aq)]))
336335 }
337336
338337
339338
340-@Callable(bc)
339+@Callable(bb)
341340 func transferToAuction () = {
342- let bn = (aK - assetBalance(addressFromStringValue(ar), aB))
343- let bo = fraction(aI, r, 100)
344- let bp = (aJ - assetBalance(addressFromStringValue(ao), aq))
341+ let bm = (aK - assetBalance(addressFromStringValue(ar), aB))
342+ let bn = fraction(aI, r, 100)
343+ let bo = (aJ - assetBalance(addressFromStringValue(ao), aq))
345344 if (av)
346345 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
347- else if (if ((bn > bo))
348- then (bn > 0)
346+ else if (if ((bm > bn))
347+ then (bm > 0)
349348 else false)
350- then TransferSet([ScriptTransfer(addressFromStringValue(ar), bn, aB)])
351- else if ((bp >= (1 * q)))
352- then TransferSet([ScriptTransfer(addressFromStringValue(ao), bp, aq)])
353- else throw(((((((("bond were generated or do not need it. Deficit:" + toString(bn)) + "|") + toString(bo)) + ". Surplus:") + toString(bp)) + "|") + toString(aJ)))
349+ then TransferSet([ScriptTransfer(addressFromStringValue(ar), bm, aB)])
350+ else if ((bo >= (1 * q)))
351+ then TransferSet([ScriptTransfer(addressFromStringValue(ao), bo, aq)])
352+ else throw(((((((("bond were generated or do not need it. Deficit:" + toString(bm)) + "|") + toString(bn)) + ". Surplus:") + toString(bo)) + "|") + toString(aJ)))
354353 }
355354
356355
357356
358-@Callable(bc)
359-func transfer (be) = {
360- let bd = extract(bc.payment)
361- TransferSet([ScriptTransfer(addressFromStringValue(be), bd.amount, bd.assetId)])
357+@Callable(bb)
358+func transfer (bd) = {
359+ let bc = extract(bb.payment)
360+ TransferSet([ScriptTransfer(addressFromStringValue(bd), bc.amount, bc.assetId)])
362361 }
363362
364363
365364
366-@Callable(bc)
365+@Callable(bb)
367366 func migrationUSDNB2NSBTSwap () = {
368- let bd = extract(bc.payment)
369- let be = bc.caller
370- if ((aC != bd.assetId))
367+ let bc = extract(bb.payment)
368+ let bd = bb.caller
369+ if ((aC != bc.assetId))
371370 then throw("error: attempt to swap not USDNB tokens")
372- else TransferSet([ScriptTransfer(be, (bd.amount * q), aB)])
371+ else TransferSet([ScriptTransfer(bd, (bc.amount * q), aB)])
373372 }
374373
375374
376375 @Verifier(aM)
377-func bq () = {
376+func bp () = {
378377 let I = toBase58String(aM.id)
379378 let c = aM
380379 if (if ($isInstanceOf(c, "LeaseCancelTransaction"))
381380 then true
382381 else $isInstanceOf(c, "LeaseTransaction"))
383382 then {
384- let br = c
383+ let bq = c
385384 sigVerify(aM.bodyBytes, aM.proofs[0], aw)
386385 }
387386 else if ($isInstanceOf(c, "SponsorFeeTransaction"))
388387 then {
389- let bs = c
390- aL(bs)
388+ let br = c
389+ aL(br)
391390 }
392391 else true
393392 }
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 (b) = {
2727 let c = getBoolean(this, b)
2828 if ($isInstanceOf(c, "Boolean"))
2929 then {
3030 let d = c
3131 d
3232 }
3333 else false
3434 }
3535
3636
3737 func g (h,b) = {
3838 let c = getInteger(addressFromStringValue(h), b)
3939 if ($isInstanceOf(c, "Int"))
4040 then {
4141 let d = c
4242 d
4343 }
4444 else 0
4545 }
4646
4747
4848 func i (h,b) = {
4949 let c = getString(addressFromStringValue(h), b)
5050 if ($isInstanceOf(c, "String"))
5151 then {
5252 let d = c
5353 d
5454 }
5555 else ""
5656 }
5757
5858
5959 func j (h,b) = {
6060 let c = getBoolean(addressFromStringValue(h), b)
6161 if ($isInstanceOf(c, "Boolean"))
6262 then {
6363 let d = c
6464 d
6565 }
6666 else false
6767 }
6868
6969
7070 func k (l) = {
7171 let c = l
7272 if ($isInstanceOf(c, "Int"))
7373 then {
7474 let d = c
7575 d
7676 }
7777 else 0
7878 }
7979
8080
8181 let m = 30
8282
8383 let n = "_"
8484
8585 let o = "+"
8686
8787 let p = 100000000
8888
8989 let q = 1000000
9090
9191 let r = 5
9292
9393 let s = "neutrino_asset_id"
9494
9595 let t = "bond_asset_id"
9696
9797 let u = "auction_contract"
9898
9999 let v = "liquidation_contract"
100100
101101 let w = "rpd_contract"
102102
103103 let x = "control_contract"
104104
105105 let y = "balance_waves_lock_interval"
106106
107107 let z = "balance_neutrino_lock_interval"
108108
109109 let A = "min_waves_swap_amount"
110110
111111 let B = "min_neutrino_swap_amount"
112112
113113 let C = "node_oracle_provider"
114114
115115 let D = 50
116116
117117 let E = 100
118118
119119 let F = 100000
120120
121121 let G = "current_config_id"
122122
123123 func H (I) = ("price_fee_" + I)
124124
125125
126126 func J (I) = ("minfee_fee_" + I)
127127
128128
129129 func K (I) = ("fee_config_status_" + I)
130130
131131
132132 let L = "rpd_balance"
133133
134134 func M (N) = ((L + "_") + toBase58String(N))
135135
136136
137137 let O = "price"
138138
139139 let P = "price_index"
140140
141141 let Q = "is_blocked"
142142
143143 func R (S) = ((O + "_") + toString(S))
144144
145145
146146 func T (U) = ((P + "_") + toString(U))
147147
148148
149149 let V = "balance_lock_"
150150
151151 let W = (V + "waves")
152152
153153 let X = (V + "neutrino")
154154
155155 func Y (Z,N) = ((((L + "_") + toBase58String(N)) + "_") + toString(Z))
156156
157157
158158 func aa (ab) = (("cancel_lease_tx_reserve_fee" + "_") + ab)
159159
160160
161161 func ac (ad) = ((W + "_") + ad)
162162
163163
164164 func ae (ad) = ((X + "_") + ad)
165165
166166
167167 func af (ad) = ("balance_unlock_block_" + ad)
168168
169169
170170 func ag (Z) = (("rpd_profit" + "_") + toString(Z))
171171
172172
173173 func ah (ai,aj) = fraction(fraction(ai, 100, aj), p, q)
174174
175175
176176 func ak (ai,aj) = fraction(fraction(ai, aj, 100), q, p)
177177
178178
179179 func al (ai,aj) = ak(ai, aj)
180180
181181
182182 func am (an) = split(an, ",")
183183
184184
185185 let ao = e(v)
186186
187187 let ap = e(s)
188188
189189 let aq = fromBase58String(ap)
190190
191191 let ar = e(u)
192192
193193 let as = e(w)
194194
195195 let at = e(x)
196196
197197 let au = g(at, P)
198198
199199 let av = j(at, Q)
200200
201201 let aw = fromBase58String(e(C))
202202
203203 let ax = a(y)
204204
205205 let ay = a(z)
206206
207207 let az = a(A)
208208
209209 let aA = a(B)
210210
211211 let aB = fromBase58String("6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g")
212212
213213 let aC = fromBase58String("975akZBfnMj513U7MZaHKzQrmsEx5aE3wdWKTrHBhbjF")
214214
215215 let aD = this
216216
217217 let aE = g(at, O)
218218
219219 let aF = a(X)
220220
221221 let aG = a(W)
222222
223223 let aH = (wavesBalance(aD) - aG)
224224
225225 let aI = (((aF + extract(assetInfo(aq)).quantity) - assetBalance(aD, aq)) - assetBalance(addressFromStringValue(ao), aq))
226226
227227 let aJ = (ak(aH, aE) - aI)
228228
229229 let aK = (aI - ak(aH, aE))
230230
231231 func aL (aM) = {
232232 let aN = 90
233233 let aO = ak(F, aN)
234- let aP = 10
235- let aQ = (fraction(D, aP, 1) + fraction((E - D), aP, 2))
236- let aR = (aO + fraction(aO, aQ, 100))
237- let aS = toString(k(aM.minSponsoredAssetFee))
238- let aT = toString(aR)
239- throw(((((((("Correct fee: " + aS) + "; Exact: ") + aT) + "; Real USDN fee: ") + toString(aO)) + "; Medium percent: ") + toString(aQ)))
234+ let aP = (D + fraction((E - D), 1, 2))
235+ let aQ = (aO + fraction(aO, aP, 100))
236+ let aR = toString(k(aM.minSponsoredAssetFee))
237+ let aS = toString(aQ)
238+ throw(((((((("Correct fee: " + aR) + "; Exact: ") + aS) + "; Real USDN fee: ") + toString(aO)) + "; Medium percent: ") + toString(aP)))
240239 }
241240
242241
243-func aU (N) = g(as, M(N))
242+func aT (N) = g(as, M(N))
244243
245244
246-func aV (S) = g(at, R(S))
245+func aU (S) = g(at, R(S))
247246
248247
249-func aW (U) = g(at, T(U))
248+func aV (U) = g(at, T(U))
250249
251250
252-func aX (ab) = a(aa(ab))
251+func aW (ab) = a(aa(ab))
253252
254253
255-func aY (ad) = a(ac(ad))
254+func aX (ad) = a(ac(ad))
256255
257256
258-func aZ (ad) = a(ae(ad))
257+func aY (ad) = a(ae(ad))
259258
260259
261-func ba (ad) = a(af(ad))
260+func aZ (ad) = a(af(ad))
262261
263262
264-func bb (Z) = a(ag(Z))
263+func ba (Z) = a(ag(Z))
265264
266265
267-@Callable(bc)
266+@Callable(bb)
268267 func swapWavesToNeutrino () = {
269- let bd = extract(bc.payment)
270- let be = toString(bc.caller)
271- if ((az > bd.amount))
268+ let bc = extract(bb.payment)
269+ let bd = toString(bb.caller)
270+ if ((az > bc.amount))
272271 then throw((("The specified Waves amount is less than the required minimum of " + toString(az)) + " wavelets."))
273- else if (isDefined(bd.assetId))
272+ else if (isDefined(bc.assetId))
274273 then throw("Only Waves token is allowed for swapping.")
275274 else if (av)
276275 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
277- else if ((ba(be) > height))
278- then throw((("await " + toString((ba(be) - height))) + " blocks"))
279- else if (if ((aZ(be) != 0))
276+ else if ((aZ(bd) > height))
277+ then throw((("await " + toString((aZ(bd) - height))) + " blocks"))
278+ else if (if ((aY(bd) != 0))
280279 then true
281- else (aY(be) != 0))
280+ else (aX(bd) != 0))
282281 then throw("please withdraw locked funds first")
283- else WriteSet([DataEntry(ac(be), bd.amount), DataEntry(af(be), (height + ax)), DataEntry(W, (aG + bd.amount))])
282+ else WriteSet([DataEntry(ac(bd), bc.amount), DataEntry(af(bd), (height + ax)), DataEntry(W, (aG + bc.amount))])
284283 }
285284
286285
287286
288-@Callable(bc)
287+@Callable(bb)
289288 func swapNeutrinoToWaves () = {
290- let bd = extract(bc.payment)
291- let be = toString(bc.caller)
292- if ((aA > bd.amount))
289+ let bc = extract(bb.payment)
290+ let bd = toString(bb.caller)
291+ if ((aA > bc.amount))
293292 then throw((("The specified Neutrino amount is less than the required minimum of " + toString(aA)) + " Neutrino cents."))
294293 else if (av)
295294 then throw("The contract is blocked by EMERGENCY SHUTDOWN. Please wait for reactivation by emergency oracles.")
296- else if ((bd.assetId != aq))
295+ else if ((bc.assetId != aq))
297296 then throw("Only appropriate Neutrino tokens are allowed for swapping.")
298- else if ((ba(be) > height))
299- then throw((("await " + toString((ba(be) - height))) + " blocks"))
300- else if (if ((aZ(be) != 0))
297+ else if ((aZ(bd) > height))
298+ then throw((("await " + toString((aZ(bd) - height))) + " blocks"))
299+ else if (if ((aY(bd) != 0))
301300 then true
302- else (aY(be) != 0))
301+ else (aX(bd) != 0))
303302 then throw("please withdraw locked funds first")
304- else WriteSet([DataEntry(ae(be), bd.amount), DataEntry(af(be), (height + ay)), DataEntry(X, (aF + bd.amount))])
303+ else WriteSet([DataEntry(ae(bd), bc.amount), DataEntry(af(bd), (height + ay)), DataEntry(X, (aF + bc.amount))])
305304 }
306305
307306
308307
309-@Callable(bc)
310-func withdraw (be,U) = {
311- let bf = ba(be)
312- let bg = aY(be)
313- let bh = aZ(be)
314- let bi = aW(U)
315- let bj = aW((U - 1))
316- let bk = aV(bi)
317- let bl = ak(bg, bk)
318- let bm = ah(bh, bk)
308+@Callable(bb)
309+func withdraw (bd,U) = {
310+ let be = aZ(bd)
311+ let bf = aX(bd)
312+ let bg = aY(bd)
313+ let bh = aV(U)
314+ let bi = aV((U - 1))
315+ let bj = aU(bh)
316+ let bk = ak(bf, bj)
317+ let bl = ah(bg, bj)
319318 if (av)
320319 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
321- else if ((bf > height))
322- then throw((("please wait for: " + toString(bf)) + " block height to withdraw WAVES funds"))
320+ else if ((be > height))
321+ then throw((("please wait for: " + toString(be)) + " block height to withdraw WAVES funds"))
323322 else if (if (if ((U > au))
324323 then true
325- else (bf > bi))
324+ else (be > bh))
326325 then true
327- else if ((bj != 0))
328- then (bj >= bf)
326+ else if ((bi != 0))
327+ then (bi >= be)
329328 else false)
330- then throw(((((((((("invalid price history index: index=" + toString(U)) + " priceIndex=") + toString(au)) + " indexHeight=") + toString(bi)) + " unlockHeight=") + toString(bf)) + " prevIndexHeight=") + toString(bj)))
331- else if (if ((0 >= bl))
332- then (0 >= bm)
329+ then throw(((((((((("invalid price history index: index=" + toString(U)) + " priceIndex=") + toString(au)) + " indexHeight=") + toString(bh)) + " unlockHeight=") + toString(be)) + " prevIndexHeight=") + toString(bi)))
330+ else if (if ((0 >= bk))
331+ then (0 >= bl)
333332 else false)
334333 then throw("balance equals zero")
335- else ScriptResult(WriteSet([DataEntry(ac(be), 0), DataEntry(ae(be), 0), DataEntry(W, (aG - bg)), DataEntry(X, (aF - bh))]), TransferSet([ScriptTransfer(addressFromStringValue(be), bm, unit), ScriptTransfer(addressFromStringValue(be), bl, aq)]))
334+ else ScriptResult(WriteSet([DataEntry(ac(bd), 0), DataEntry(ae(bd), 0), DataEntry(W, (aG - bf)), DataEntry(X, (aF - bg))]), TransferSet([ScriptTransfer(addressFromStringValue(bd), bl, unit), ScriptTransfer(addressFromStringValue(bd), bk, aq)]))
336335 }
337336
338337
339338
340-@Callable(bc)
339+@Callable(bb)
341340 func transferToAuction () = {
342- let bn = (aK - assetBalance(addressFromStringValue(ar), aB))
343- let bo = fraction(aI, r, 100)
344- let bp = (aJ - assetBalance(addressFromStringValue(ao), aq))
341+ let bm = (aK - assetBalance(addressFromStringValue(ar), aB))
342+ let bn = fraction(aI, r, 100)
343+ let bo = (aJ - assetBalance(addressFromStringValue(ao), aq))
345344 if (av)
346345 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
347- else if (if ((bn > bo))
348- then (bn > 0)
346+ else if (if ((bm > bn))
347+ then (bm > 0)
349348 else false)
350- then TransferSet([ScriptTransfer(addressFromStringValue(ar), bn, aB)])
351- else if ((bp >= (1 * q)))
352- then TransferSet([ScriptTransfer(addressFromStringValue(ao), bp, aq)])
353- else throw(((((((("bond were generated or do not need it. Deficit:" + toString(bn)) + "|") + toString(bo)) + ". Surplus:") + toString(bp)) + "|") + toString(aJ)))
349+ then TransferSet([ScriptTransfer(addressFromStringValue(ar), bm, aB)])
350+ else if ((bo >= (1 * q)))
351+ then TransferSet([ScriptTransfer(addressFromStringValue(ao), bo, aq)])
352+ else throw(((((((("bond were generated or do not need it. Deficit:" + toString(bm)) + "|") + toString(bn)) + ". Surplus:") + toString(bo)) + "|") + toString(aJ)))
354353 }
355354
356355
357356
358-@Callable(bc)
359-func transfer (be) = {
360- let bd = extract(bc.payment)
361- TransferSet([ScriptTransfer(addressFromStringValue(be), bd.amount, bd.assetId)])
357+@Callable(bb)
358+func transfer (bd) = {
359+ let bc = extract(bb.payment)
360+ TransferSet([ScriptTransfer(addressFromStringValue(bd), bc.amount, bc.assetId)])
362361 }
363362
364363
365364
366-@Callable(bc)
365+@Callable(bb)
367366 func migrationUSDNB2NSBTSwap () = {
368- let bd = extract(bc.payment)
369- let be = bc.caller
370- if ((aC != bd.assetId))
367+ let bc = extract(bb.payment)
368+ let bd = bb.caller
369+ if ((aC != bc.assetId))
371370 then throw("error: attempt to swap not USDNB tokens")
372- else TransferSet([ScriptTransfer(be, (bd.amount * q), aB)])
371+ else TransferSet([ScriptTransfer(bd, (bc.amount * q), aB)])
373372 }
374373
375374
376375 @Verifier(aM)
377-func bq () = {
376+func bp () = {
378377 let I = toBase58String(aM.id)
379378 let c = aM
380379 if (if ($isInstanceOf(c, "LeaseCancelTransaction"))
381380 then true
382381 else $isInstanceOf(c, "LeaseTransaction"))
383382 then {
384- let br = c
383+ let bq = c
385384 sigVerify(aM.bodyBytes, aM.proofs[0], aw)
386385 }
387386 else if ($isInstanceOf(c, "SponsorFeeTransaction"))
388387 then {
389- let bs = c
390- aL(bs)
388+ let br = c
389+ aL(br)
391390 }
392391 else true
393392 }
394393

github/deemru/w8io/169f3d6 
82.75 ms