tx · 8RumJAyh4zLqXRY71uxucByWVHNgqQqFtxLKWAsKvtGn

3MyDtNTkCNyRCw3o2qv5BPPS7vvUosiQe6F:  -0.01400000 Waves

2019.11.19 00:49 [771139] smart account 3MyDtNTkCNyRCw3o2qv5BPPS7vvUosiQe6F > SELF 0.00000000 Waves

{ "type": 13, "id": "8RumJAyh4zLqXRY71uxucByWVHNgqQqFtxLKWAsKvtGn", "fee": 1400000, "feeAssetId": null, "timestamp": 1574113749818, "version": 1, "sender": "3MyDtNTkCNyRCw3o2qv5BPPS7vvUosiQe6F", "senderPublicKey": "3z5txV1G5GKezwMRCHZDkLThqb1Yggepxvi2wq6iP6oz", "proofs": [ "3xGZ7hfzxg814jPacnVvV2fgyzZQcuJrqi7Lkiybs7Lagybkoz8xWhNRPQpkkZm9EokstSNXBkSHrdybJpGr3Tdz" ], "script": "base64:AAIDAAAAAAAAABUIARIAEgASBAoCCAESABIDCgEIEgAAAABpAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADGdldEJvb2xCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQcBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAFmdldEJvb2xCeUFkZHJlc3NBbmRLZXkAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBwAAAAAMU0VORFRYRVhQSVJFAAAAAAAAAAAeAAAAAA9MSVNUU1BMSVRTWU1CT0wCAAAAAV8AAAAADkxJU1REQVRBU1lNQk9MAgAAAAErAAAAAAdXQVZFTEVUAAAAAAAF9eEAAAAAAAVQQVVMSQAAAAAAAAAAZAAAAAANQ1JZVElDQUxTSEFSRQAAAAAAAAAAFAAAAAAMTEVBU0lOR1NIQVJFAAAAAAAAAABaAAAAAA1MRUFTSU5UWENPVU5UAAAAAAAAAAAKAAAAAA1ERUZJQ0lUT0ZGU0VUAAAAAAAAAAAKAAAAAAxXQVZFU0FTU0VUSUQCAAAABXdhdmVzAAAAAAhDQU5DRUxFRAIAAAAIY2FuY2VsZWQAAAAAA05FVwIAAAADbmV3AAAAABJOZXV0cmlub0Fzc2V0SWRLZXkCAAAAEW5ldXRyaW5vX2Fzc2V0X2lkAAAAAA5Cb25kQXNzZXRJZEtleQIAAAANYm9uZF9hc3NldF9pZAAAAAASUmVzZXJ2ZUNvbnRyYWN0S2V5AgAAABByZXNlcnZlX2NvbnRyYWN0AAAAABJBdWN0aW9uQ29udHJhY3RLZXkCAAAAEGF1Y3Rpb25fY29udHJhY3QAAAAAFkxpcXVpZGF0aW9uQ29udHJhY3RLZXkCAAAAFGxpcXVpZGF0aW9uX2NvbnRyYWN0AAAAAA5SUERDb250cmFjdEtleQIAAAAMcnBkX2NvbnRyYWN0AAAAABFDb250b2xDb250cmFjdEtleQIAAAAQY29udHJvbF9jb250cmFjdAAAAAAWQmFsYW5jZUxvY2tJbnRlcnZhbEtleQIAAAAVYmFsYW5jZV9sb2NrX2ludGVydmFsAAAAABVNaW5XYXZlc1N3YXBBbW91bnRLZXkCAAAAFW1pbl93YXZlc19zd2FwX2Ftb3VudAAAAAAYTWluTmV1dHJpbm9Td2FwQW1vdW50S2V5AgAAABhtaW5fbmV1dHJpbm9fc3dhcF9hbW91bnQAAAAADk5vZGVBZGRyZXNzS2V5AgAAAAxub2RlX2FkZHJlc3MAAAAAFU5vZGVPcmFjbGVQcm92aWRlcktleQIAAAAUb3JhY2xlX25vZGVfcHJvdmlkZXIAAAAAEkxlYXNpbmdJbnRlcnZhbEtleQIAAAAQbGVhc2luZ19pbnRlcnZhbAAAAAANUlBEQmFsYW5jZUtleQIAAAALcnBkX2JhbGFuY2UBAAAAGGdldFJQRENvbnRyYWN0QmFsYW5jZUtleQAAAAEAAAAHYXNzZXRJZAkAASwAAAACCQABLAAAAAIFAAAADVJQREJhbGFuY2VLZXkCAAAAAV8JAAJYAAAAAQUAAAAHYXNzZXRJZAAAAAARVG90YWxPcmRlcmJvb2tLZXkCAAAAD3RvdGFsX29yZGVyYm9vawAAAAAcVG90YWxMaXF1aWRhdGlvbk9yZGVyYm9va0tleQIAAAAbdG90YWxfbGlxdWlkYXRpb25fb3JkZXJib29rAAAAAAhQcmljZUtleQIAAAAFcHJpY2UAAAAADVByaWNlSW5kZXhLZXkCAAAAC3ByaWNlX2luZGV4AAAAAAxJc0Jsb2NrZWRLZXkCAAAACmlzX2Jsb2NrZWQAAAAAFUxlYXNpbmdFeHBpcmVCbG9ja0tleQIAAAAUbGVhc2luZ19leHBpcmVfYmxvY2sAAAAAEUxlYXNpbmdUeENvdW50S2V5AgAAAA1sZWFzaW5nX2luZGV4AAAAABBMZWFzaW5nQW1vdW50S2V5AgAAAA5sZWFzaW5nX2Ftb3VudAEAAAASZ2V0UHJpY2VIaXN0b3J5S2V5AAAAAQAAAAVibG9jawkAASwAAAACCQABLAAAAAIFAAAACFByaWNlS2V5AgAAAAFfCQABpAAAAAEFAAAABWJsb2NrAQAAABhnZXRIZWlnaHRQcmljZUJ5SW5kZXhLZXkAAAABAAAABWluZGV4CQABLAAAAAIJAAEsAAAAAgUAAAANUHJpY2VJbmRleEtleQIAAAABXwkAAaQAAAABBQAAAAVpbmRleAAAAAAPUlBEU3luY0luZGV4S2V5AgAAAA5ycGRfc3luY19pbmRleAAAAAAQQmFsYW5jZUxvY2Vka0tleQIAAAANYmFsYW5jZV9sb2NrXwAAAAAVV2F2ZXNMb2NrZWRCYWxhbmNlS2V5CQABLAAAAAIFAAAAEEJhbGFuY2VMb2NlZGtLZXkCAAAABXdhdmVzAAAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkJAAEsAAAAAgUAAAAQQmFsYW5jZUxvY2Vka0tleQIAAAAIbmV1dHJpbm8BAAAAIGdldFJQRFNuYXBzaG90Q29udHJhY3RCYWxhbmNlS2V5AAAAAgAAAAVjb3VudAAAAAdhc3NldElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAADVJQREJhbGFuY2VLZXkCAAAAAV8JAAJYAAAAAQUAAAAHYXNzZXRJZAIAAAABXwkAAaQAAAABBQAAAAVjb3VudAEAAAAdZ2V0Q2FuY2VsTGVhc2VUeFJlc2VydmVGZWVLZXkAAAABAAAABGhhc2gJAAEsAAAAAgkAASwAAAACAgAAABtjYW5jZWxfbGVhc2VfdHhfcmVzZXJ2ZV9mZWUCAAAAAV8FAAAABGhhc2gBAAAAGGdldFdhdmVzTG9ja2VkQmFsYW5jZUtleQAAAAEAAAAFb3duZXIJAAEsAAAAAgkAASwAAAACBQAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkCAAAAAV8FAAAABW93bmVyAQAAABtnZXROZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkAAAABAAAABW93bmVyCQABLAAAAAIJAAEsAAAAAgUAAAAYTmV1dHJpbm9Mb2NrZWRCYWxhbmNlS2V5AgAAAAFfBQAAAAVvd25lcgEAAAAYZ2V0QmFsYW5jZVVubG9ja0Jsb2NrS2V5AAAAAQAAAAVvd25lcgkAASwAAAACAgAAABViYWxhbmNlX3VubG9ja19ibG9ja18FAAAABW93bmVyAQAAAA9nZXRSUERQcm9maXRLZXkAAAABAAAABWNvdW50CQABLAAAAAIJAAEsAAAAAgIAAAAKcnBkX3Byb2ZpdAIAAAABXwkAAaQAAAABBQAAAAVjb3VudAEAAAATZ2V0TGVhc2VUeFN0YXR1c0tleQAAAAEAAAAEaGFzaAkAASwAAAACCQABLAAAAAICAAAAD2xlYXNlX3R4X3N0YXR1cwIAAAABXwUAAAAEaGFzaAEAAAAZZ2V0TGVhc2VUeEFtb3VudEJ5SGFzaEtleQAAAAEAAAAEaGFzaAkAASwAAAACCQABLAAAAAIFAAAAEExlYXNpbmdBbW91bnRLZXkCAAAAAV8FAAAABGhhc2gBAAAAGGdldExlYXNlVHhCeXRlc0J5SGFzaEtleQAAAAEAAAAEaGFzaAkAASwAAAACCQABLAAAAAICAAAACGxlYXNlX3R4AgAAAAFfBQAAAARoYXNoAQAAABxnZXRMZWFzZVR4RXhwaXJlU2VuZEJsb2NrS2V5AAAAAQAAAARoYXNoCQABLAAAAAIJAAEsAAAAAgIAAAATbGVhc2luZ19leHBpcmVfc2VuZAIAAAABXwUAAAAEaGFzaAEAAAAWY29udmVydE5ldXRyaW5vVG9XYXZlcwAAAAIAAAAGYW1vdW50AAAABXByaWNlCQAAaQAAAAIJAABoAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAABmFtb3VudAAAAAAAAAAAZAUAAAAFcHJpY2UFAAAAB1dBVkVMRVQFAAAABVBBVUxJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgAAAAZhbW91bnQAAAAFcHJpY2UJAABpAAAAAgkAAGgAAAACCQAAaQAAAAIJAABoAAAAAgUAAAAGYW1vdW50BQAAAAVwcmljZQAAAAAAAAAAZAUAAAAFUEFVTEkFAAAAB1dBVkVMRVQBAAAAFWNvbnZlcnROZXV0cmlub1RvQm9uZAAAAAEAAAAGYW1vdW50CQAAaQAAAAIFAAAABmFtb3VudAUAAAAFUEFVTEkBAAAAFWNvbnZlcnRCb25kVG9OZXV0cmlubwAAAAEAAAAGYW1vdW50CQAAaAAAAAIFAAAABmFtb3VudAUAAAAFUEFVTEkBAAAAEmNvbnZlcnRXYXZlc1RvQm9uZAAAAAIAAAAGYW1vdW50AAAABXByaWNlCQEAAAAVY29udmVydE5ldXRyaW5vVG9Cb25kAAAAAQkBAAAAFmNvbnZlcnRXYXZlc1RvTmV1dHJpbm8AAAACBQAAAAZhbW91bnQFAAAABXByaWNlAAAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAGE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQAAAAASd2F2ZXNMb2NrZWRCYWxhbmNlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkAAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAFkxpcXVpZGF0aW9uQ29udHJhY3RLZXkAAAAAFW5ldXRyaW5vQXNzZXRJZFN0cmluZwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAASTmV1dHJpbm9Bc3NldElkS2V5AAAAAA9uZXV0cmlub0Fzc2V0SWQJAAJZAAAAAQUAAAAVbmV1dHJpbm9Bc3NldElkU3RyaW5nAAAAAA9yZXNlcnZlQ29udHJhY3QJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAElJlc2VydmVDb250cmFjdEtleQAAAAAPYXVjdGlvbkNvbnRyYWN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABJBdWN0aW9uQ29udHJhY3RLZXkAAAAAC3JwZENvbnRyYWN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAAA5SUERDb250cmFjdEtleQAAAAAPY29udHJvbENvbnRyYWN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABFDb250b2xDb250cmFjdEtleQAAAAAMY3VycmVudFByaWNlCQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0BQAAAAhQcmljZUtleQAAAAAKcHJpY2VJbmRleAkBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAUAAAANUHJpY2VJbmRleEtleQAAAAAJaXNCbG9ja2VkCQEAAAAWZ2V0Qm9vbEJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAUAAAAMSXNCbG9ja2VkS2V5AAAAAA5sZWFzaW5nVHhDb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAARTGVhc2luZ1R4Q291bnRLZXkAAAAAD2xlYXNpbmdJbnRlcnZhbAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAASTGVhc2luZ0ludGVydmFsS2V5AAAAABJsZWFzaW5nRXhwaXJlQmxvY2sJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAFUxlYXNpbmdFeHBpcmVCbG9ja0tleQAAAAANbGVhc2luZ0Ftb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAQTGVhc2luZ0Ftb3VudEtleQAAAAALbm9kZUFkZHJlc3MJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAADk5vZGVBZGRyZXNzS2V5AAAAABJub2RlT3JhY2xlUHJvdmlkZXIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAAFU5vZGVPcmFjbGVQcm92aWRlcktleQAAAAAMcnBkU3luY0luZGV4CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAA9SUERTeW5jSW5kZXhLZXkAAAAAE2JhbGFuY2VMb2NrSW50ZXJ2YWwJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAFkJhbGFuY2VMb2NrSW50ZXJ2YWxLZXkAAAAAEm1pbldhdmVzU3dhcEFtb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAVTWluV2F2ZXNTd2FwQW1vdW50S2V5AAAAABVtaW5OZXV0cmlub1N3YXBBbW91bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAGE1pbk5ldXRyaW5vU3dhcEFtb3VudEtleQAAAAAHcmVzZXJ2ZQkAAGUAAAACCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwUAAAASd2F2ZXNMb2NrZWRCYWxhbmNlAAAAABVyZXNlcnZlV2l0aG91dExlYXNpbmcJAABlAAAAAgUAAAAHcmVzZXJ2ZQUAAAANbGVhc2luZ0Ftb3VudAAAAAALYm9uZEFzc2V0SWQJAAJZAAAAAQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAOQm9uZEFzc2V0SWRLZXkAAAAACmJvbmRTdXBwbHkJAABlAAAAAggJAQAAAAdleHRyYWN0AAAAAQkAA+wAAAABBQAAAAtib25kQXNzZXRJZAAAAAhxdWFudGl0eQkAA+sAAAACBQAAAAR0aGlzBQAAAAtib25kQXNzZXRJZAAAAAAObmV1dHJpbm9TdXBwbHkJAABkAAAAAgkAAGUAAAACCAkBAAAAB2V4dHJhY3QAAAABCQAD7AAAAAEFAAAAD25ldXRyaW5vQXNzZXRJZAAAAAhxdWFudGl0eQkAA+sAAAACBQAAAAR0aGlzBQAAAA9uZXV0cmlub0Fzc2V0SWQFAAAAFW5ldXRyaW5vTG9ja2VkQmFsYW5jZQAAAAAHc3VycGx1cwkAAGUAAAACCQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAAB3Jlc2VydmUFAAAADGN1cnJlbnRQcmljZQUAAAAObmV1dHJpbm9TdXBwbHkAAAAAB2RlZmljaXQJAABlAAAAAgUAAAAObmV1dHJpbm9TdXBwbHkJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAgUAAAAHcmVzZXJ2ZQUAAAAMY3VycmVudFByaWNlAQAAABVnZXRSUERDb250cmFjdEJhbGFuY2UAAAABAAAAB2Fzc2V0SWQJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAAtycGRDb250cmFjdAkBAAAAGGdldFJQRENvbnRyYWN0QmFsYW5jZUtleQAAAAEFAAAAB2Fzc2V0SWQAAAAAGXRvdGFsTGlxdWlkYXRpb25PcmRlcmJvb2sJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAA9hdWN0aW9uQ29udHJhY3QFAAAAHFRvdGFsTGlxdWlkYXRpb25PcmRlcmJvb2tLZXkAAAAADnRvdGFsT3JkZXJib29rCQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPYXVjdGlvbkNvbnRyYWN0BQAAABFUb3RhbE9yZGVyYm9va0tleQEAAAAPZ2V0UHJpY2VIaXN0b3J5AAAAAQAAAAVibG9jawkBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAD2NvbnRyb2xDb250cmFjdAkBAAAAEmdldFByaWNlSGlzdG9yeUtleQAAAAEFAAAABWJsb2NrAQAAABVnZXRIZWlnaHRQcmljZUJ5SW5kZXgAAAABAAAABWluZGV4CQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAPY29udHJvbENvbnRyYWN0CQEAAAAYZ2V0SGVpZ2h0UHJpY2VCeUluZGV4S2V5AAAAAQUAAAAFaW5kZXgBAAAAGmdldENhbmNlbExlYXNlVHhSZXNlcnZlRmVlAAAAAQAAAARoYXNoCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAdZ2V0Q2FuY2VsTGVhc2VUeFJlc2VydmVGZWVLZXkAAAABBQAAAARoYXNoAQAAABVnZXRXYXZlc0xvY2tlZEJhbGFuY2UAAAABAAAABW93bmVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0V2F2ZXNMb2NrZWRCYWxhbmNlS2V5AAAAAQUAAAAFb3duZXIBAAAAGGdldE5ldXRyaW5vTG9ja2VkQmFsYW5jZQAAAAEAAAAFb3duZXIJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABtnZXROZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkAAAABBQAAAAVvd25lcgEAAAAVZ2V0VW5sb2NrQmFsYW5jZUJsb2NrAAAAAQAAAAVvd25lcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGGdldEJhbGFuY2VVbmxvY2tCbG9ja0tleQAAAAEFAAAABW93bmVyAQAAAAxnZXRSUERQcm9maXQAAAABAAAABWNvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAPZ2V0UlBEUHJvZml0S2V5AAAAAQUAAAAFY291bnQBAAAAEGdldExlYXNlVHhTdGF0dXMAAAABAAAABGhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABNnZXRMZWFzZVR4U3RhdHVzS2V5AAAAAQUAAAAEaGFzaAEAAAAWZ2V0TGVhc2VUeEFtb3VudEJ5SGFzaAAAAAEAAAAEaGFzaAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGWdldExlYXNlVHhBbW91bnRCeUhhc2hLZXkAAAABBQAAAARoYXNoAQAAABVnZXRMZWFzZVR4Qnl0ZXNCeUhhc2gAAAABAAAABGhhc2gJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABhnZXRMZWFzZVR4Qnl0ZXNCeUhhc2hLZXkAAAABBQAAAARoYXNoAQAAABlnZXRMZWFzZVR4RXhwaXJlU2VuZEJsb2NrAAAAAQAAAARoYXNoCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAcZ2V0TGVhc2VUeEV4cGlyZVNlbmRCbG9ja0tleQAAAAEFAAAABGhhc2gAAAAGAAAAAWkBAAAAE3N3YXBXYXZl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QmFsYW5jZUJsb2NrAAAAAQUAAAAHYWNjb3VudAUAAAAGaGVpZ2h0AgAAAAcgYmxvY2tzAwMJAQAAAAIhPQAAAAIJAQAAABhnZXROZXV0cmlub0xvY2tlZEJhbGFuY2UAAAABBQAAAAdhY2NvdW50AAAAAAAAAAAABgkBAAAAAiE9AAAAAgkBAAAAFWdldFdhdmVzTG9ja2VkQmFsYW5jZQAAAAEFAAAAB2FjY291bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAicGxlYXNlIHdpdGhkcmF3IGxvY2tlZCBmdW5kcyBmaXJzdAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAG2dldE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQAAAAEFAAAAB2FjY291bnQIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0V2F2ZXNMb2NrZWRCYWxhbmNlS2V5AAAAAQUAAAAHYWNjb3VudAkAAGQAAAACBQAAAAZoZWlnaHQFAAAAE2JhbGFuY2VMb2NrSW50ZXJ2YWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGE5ldXRyaW5vTG9ja2VkQmFsYW5jZUtleQkAAGQAAAACBQAAABVuZXV0cmlub0xvY2tlZEJhbGFuY2UIBQAAAANwbXQAAAAGYW1vdW50BQAAAANuaWwAAAABaQEAAAAId2l0aGRyYXcAAAACAAAAB2FjY291bnQAAAAFaW5kZXgEAAAADHVubG9ja0hlaWdodAkBAAAAFWdldFVubG9ja0JhbGFuY2VCbG9jawAAAAEFAAAAB2FjY291bnQEAAAAFnVzZXJXYXZlc0xvY2tlZEJhbGFuY2UJAQAAABVnZXRXYXZlc0xvY2tlZEJhbGFuY2UAAAABBQAAAAdhY2NvdW50BAAAABl1c2VyTmV1dHJpbm9Mb2NrZWRCYWxhbmNlCQEAAAAYZ2V0TmV1dHJpbm9Mb2NrZWRCYWxhbmNlAAAAAQUAAAAHYWNjb3VudAQAAAALaW5kZXhIZWlnaHQJAQAAABVnZXRIZWlnaHRQcmljZUJ5SW5kZXgAAAABBQAAAAVpbmRleAQAAAAPbmV4dEluZGV4SGVpZ2h0CQEAAAAVZ2V0SGVpZ2h0UHJpY2VCeUluZGV4AAAAAQkAAGQAAAACBQAAAAVpbmRleAAAAAAAAAAAAQQAAAAMcHJpY2VCeUluZGV4CQEAAAAPZ2V0UHJpY2VIaXN0b3J5AAAAAQUAAAALaW5kZXhIZWlnaHQEAAAADm5ldXRyaW5vQW1vdW50CQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIFAAAAFnVzZXJXYXZlc0xvY2tlZEJhbGFuY2UFAAAADHByaWNlQnlJbmRleAQAAAALd2F2ZXNBbW91bnQJAQAAABZjb252ZXJ0TmV1dHJpbm9Ub1dhdmVzAAAAAgUAAAAZdXNlck5ldXRyaW5vTG9ja2VkQmFsYW5jZQUAAAAMcHJpY2VCeUluZGV4AwUAAAAJaXNCbG9ja2VkCQAAAgAAAAECAAAAWmNvbnRyYWN0IGlzIGJsb2NrZWQgYnkgRU1FUkdFTkNZIFNIVVRET1dOIGFjdGlvbnMgdW50aWxsIHJlYWN0aXZhdGlvbiBieSBlbWVyZ2VuY3kgb3JhY2xlcwMJAABmAAAAAgUAAAAMdW5sb2NrSGVpZ2h0BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAEXBsZWFzZSB3YWl0IGZvcjogCQABpAAAAAEFAAAADHVubG9ja0hlaWdodAIAAAAlIGJsb2NrIGhlaWdodCB0byB3aXRoZHJhdyBXQVZFUyBmdW5kcwMDAwkAAGYAAAACBQAAAAVpbmRleAUAAAAKcHJpY2VJbmRleAYJAABmAAAAAgUAAAALaW5kZXhIZWlnaHQFAAAADHVubG9ja0hlaWdodAYDCQEAAAACIT0AAAACBQAAAA9uZXh0SW5kZXhIZWlnaHQAAAAAAAAAAAAJAABnAAAAAgUAAAAMdW5sb2NrSGVpZ2h0BQAAAA9uZXh0SW5kZXhIZWlnaHQHCQAAAgAAAAECAAAAG2ludmFsaWQgcHJpY2UgaGlzdG9yeSBpbmRleAMDCQAAZwAAAAIAAAAAAAAAAAAFAAAADm5ldXRyaW5vQW1vdW50CQAAZwAAAAIAAAAAAAAAAAAFAAAAC3dhdmVzQW1vdW50BwkAAAIAAAABAgAAABNiYWxhbmNlIGVxdWFscyB6ZXJvCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGGdldFdhdmVzTG9ja2VkQmFsYW5jZUtleQAAAAEFAAAAB2FjY291bnQAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABtnZXROZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkAAAABBQAAAAdhY2NvdW50AAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABVXYXZlc0xvY2tlZEJhbGFuY2VLZXkJAABlAAAAAgUAAAASd2F2ZXNMb2NrZWRCYWxhbmNlBQAAABZ1c2VyV2F2ZXNMb2NrZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABhOZXV0cmlub0xvY2tlZEJhbGFuY2VLZXkJAABlAAAAAgUAAAAVbmV1dHJpbm9Mb2NrZWRCYWxhbmNlBQAAABl1c2VyTmV1dHJpbm9Mb2NrZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50BQAAAAt3YXZlc0Ftb3VudAUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FjY291bnQFAAAADm5ldXRyaW5vQW1vdW50BQAAAA9uZXV0cmlub0Fzc2V0SWQFAAAAA25pbAAAAAFpAQAAABF0cmFuc2ZlclRvQXVjdGlvbgAAAAAEAAAAEWRlZmljaXRCb25kQW1vdW50CQAAZQAAAAIJAABlAAAAAgkBAAAAFWNvbnZlcnROZXV0cmlub1RvQm9uZAAAAAEFAAAAB2RlZmljaXQJAAPrAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAA9hdWN0aW9uQ29udHJhY3QFAAAAC2JvbmRBc3NldElkBQAAABl0b3RhbExpcXVpZGF0aW9uT3JkZXJib29rBAAAAAtzdXJwbHVzQm9uZAkAAGUAAAACCQAAZQAAAAIJAQAAABVjb252ZXJ0TmV1dHJpbm9Ub0JvbmQAAAABBQAAAAdzdXJwbHVzCQAD6wAAAAIJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAPYXVjdGlvbkNvbnRyYWN0BQAAAA9uZXV0cmlub0Fzc2V0SWQFAAAADnRvdGFsT3JkZXJib29rAwUAAAAJaXNCbG9ja2VkCQAAAgAAAAECAAAAWmNvbnRyYWN0IGlzIGJsb2NrZWQgYnkgRU1FUkdFTkNZIFNIVVRET1dOIGFjdGlvbnMgdW50aWxsIHJlYWN0aXZhdGlvbiBieSBlbWVyZ2VuY3kgb3JhY2xlcwMJAABnAAAAAgUAAAARZGVmaWNpdEJvbmRBbW91bnQJAABpAAAAAgkAAGgAAAACCQEAAAAVY29udmVydE5ldXRyaW5vVG9Cb25kAAAAAQUAAAAObmV1dHJpbm9TdXBwbHkFAAAADURFRklDSVRPRkZTRVQAAAAAAAAAAGQJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAA9hdWN0aW9uQ29udHJhY3QFAAAAEWRlZmljaXRCb25kQW1vdW50BQAAAAtib25kQXNzZXRJZAUAAAADbmlsAwkAAGYAAAACBQAAAAtzdXJwbHVzQm9uZAAAAAAAAAAAAAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAE2xpcXVpZGF0aW9uQ29udHJhY3QJAQAAABVjb252ZXJ0Qm9uZFRvTmV1dHJpbm8AAAABBQAAAAtzdXJwbHVzQm9uZAUAAAAPbmV1dHJpbm9Bc3NldElkBQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAL2JvbmQgd2VyZSBnZW5lcmF0ZWQgb3IgZG8gbm90IG5lZWQgaXQuIERlZmljaXQ6CQABpAAAAAEFAAAAEWRlZmljaXRCb25kQW1vdW50AgAAAAF8CQABpAAAAAEJAABpAAAAAgkAAGgAAAACBQAAAA5uZXV0cmlub1N1cHBseQUAAAANREVGSUNJVE9GRlNFVAAAAAAAAAAAZAIAAAAKLiBTdXJwbHVzOgkAAaQAAAABBQAAAAtzdXJwbHVzQm9uZAAAAAFpAQAAAAh0cmFuc2ZlcgAAAAEAAAAHYWNjb3VudAQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50CAUAAAADcG10AAAABmFtb3VudAgFAAAAA3BtdAAAAAdhc3NldElkBQAAAANuaWwAAAABaQEAAAAKbm9kZVJld2FyZAAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQgFAAAAAWkAAAAHcGF5bWVudAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAtub2RlQWRkcmVzcwkAAAIAAAABAgAAAEdvbmx5IG5vZGUgYWNjb3VudCBpcyBhYmxlIHRvIHRyYW5zZmVyIHN0YWtpbmcgcmV3YXJkcyBmcm9tIG1haW4gYWNjb3VudAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAZd2F2ZXMgdG9rZW5zIG9ubHkgYWxsb3dlZAQAAAAGYW1vdW50CQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAIIBQAAAANwbXQAAAAGYW1vdW50BQAAAAxjdXJyZW50UHJpY2UEAAAAD25ld1JwZFN5bmNJbmRleAkAAGQAAAACBQAAAAxycGRTeW5jSW5kZXgAAAAAAAAAAAEJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA9SUERTeW5jSW5kZXhLZXkFAAAAD25ld1JwZFN5bmNJbmRleAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldFJQRFByb2ZpdEtleQAAAAEFAAAADHJwZFN5bmNJbmRleAUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAgZ2V0UlBEU25hcHNob3RDb250cmFjdEJhbGFuY2VLZXkAAAACBQAAAAxycGRTeW5jSW5kZXgFAAAAD25ldXRyaW5vQXNzZXRJZAkBAAAAFWdldFJQRENvbnRyYWN0QmFsYW5jZQAAAAEFAAAAD25ldXRyaW5vQXNzZXRJZAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAALcnBkQ29udHJhY3QFAAAABmFtb3VudAUAAAAPbmV1dHJpbm9Bc3NldElkBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAJpZAkAAlgAAAABCAUAAAACdHgAAAACaWQEAAAAByRtYXRjaDAFAAAAAnR4AwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAWTGVhc2VDYW5jZWxUcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAQTGVhc2VUcmFuc2FjdGlvbgQAAAAJbGVhc2luZ1R4BQAAAAckbWF0Y2gwAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkJAAAAAAAAAgkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQUAAAASbm9kZU9yYWNsZVByb3ZpZGVyCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkjivit", "chainId": 84, "height": 771139, "spentComplexity": 0 } View: original | compacted Prev: Ak6Sw71rxMuS9tCgNnvEvpTEsAgwyvfvk99iYHHgFP1q Next: HHamjXGthfXmbd4g9usosegLtaR1rCDXzTmzTkj3GvK4 Diff:
OldNewDifferences
122122 func K (L) = ((J + "_") + toBase58String(L))
123123
124124
125-let M = "price"
125+let M = "total_orderbook"
126126
127-let N = "price_index"
127+let N = "total_liquidation_orderbook"
128128
129-let O = "is_blocked"
129+let O = "price"
130130
131-let P = "leasing_expire_block"
131+let P = "price_index"
132132
133-let Q = "is_rebalance"
133+let Q = "is_blocked"
134134
135-let R = "leasing_index"
135+let R = "leasing_expire_block"
136136
137-let S = "leasing_amount"
137+let S = "leasing_index"
138138
139-func T (U) = ((M + "_") + toString(U))
139+let T = "leasing_amount"
140+
141+func U (V) = ((O + "_") + toString(V))
140142
141143
142-func V (W) = ((N + "_") + toString(W))
144+func W (X) = ((P + "_") + toString(X))
143145
144146
145-let X = "rpd_sync_index"
147+let Y = "rpd_sync_index"
146148
147-func Y (Z,L) = ((((J + "_") + toBase58String(L)) + "_") + toString(Z))
149+let Z = "balance_lock_"
150+
151+let aa = (Z + "waves")
152+
153+let ab = (Z + "neutrino")
154+
155+func ac (ad,L) = ((((J + "_") + toBase58String(L)) + "_") + toString(ad))
148156
149157
150-func aa (ab) = (("cancel_lease_tx_reserve_fee" + "_") + ab)
158+func ae (af) = (("cancel_lease_tx_reserve_fee" + "_") + af)
151159
152160
153-func ac (ad,L) = ((("balance_" + L) + "_") + ad)
161+func ag (ah) = ((aa + "_") + ah)
154162
155163
156-func ae (ad) = ("balance_block_" + ad)
164+func ai (ah) = ((ab + "_") + ah)
157165
158166
159-func af (Z) = (("rpd_profit" + "_") + toString(Z))
167+func aj (ah) = ("balance_unlock_block_" + ah)
160168
161169
162-func ag (L) = ("balance_" + L)
170+func ak (ad) = (("rpd_profit" + "_") + toString(ad))
163171
164172
165-func ah (ab) = (("lease_tx_status" + "_") + ab)
173+func al (af) = (("lease_tx_status" + "_") + af)
166174
167175
168-func ai (ab) = ((S + "_") + ab)
176+func am (af) = ((T + "_") + af)
169177
170178
171-func aj (ab) = (("lease_tx" + "_") + ab)
179+func an (af) = (("lease_tx" + "_") + af)
172180
173181
174-func ak (ab) = (("leasing_expire_send" + "_") + ab)
182+func ao (af) = (("leasing_expire_send" + "_") + af)
175183
176184
177-func al (am,an) = ((((am * 100) / an) * n) / o)
185+func ap (aq,ar) = ((((aq * 100) / ar) * n) / o)
178186
179187
180-func ao (am,an) = ((((am * an) / 100) * o) / n)
188+func as (aq,ar) = ((((aq * ar) / 100) * o) / n)
181189
182190
183-func ap (am) = (am / o)
191+func at (aq) = (aq / o)
184192
185193
186-func aq (am) = (am * o)
194+func au (aq) = (aq * o)
187195
188196
189-func ar (am,an) = ap(ao(am, an))
197+func av (aq,ar) = at(as(aq, ar))
190198
191199
192-func as (L) = a(ag(L))
200+let aw = a(ab)
201+
202+let ax = a(aa)
203+
204+let ay = e(A)
205+
206+let az = e(w)
207+
208+let aA = fromBase58String(az)
209+
210+let aB = e(y)
211+
212+let aC = e(z)
213+
214+let aD = e(B)
215+
216+let aE = e(C)
217+
218+let aF = g(aE, O)
219+
220+let aG = g(aE, P)
221+
222+let aH = j(aE, Q)
223+
224+let aI = a(S)
225+
226+let aJ = a(I)
227+
228+let aK = a(R)
229+
230+let aL = a(T)
231+
232+let aM = e(G)
233+
234+let aN = e(H)
235+
236+let aO = a(Y)
237+
238+let aP = a(D)
239+
240+let aQ = a(E)
241+
242+let aR = a(F)
243+
244+let aS = (wavesBalance(this) - ax)
245+
246+let aT = (aS - aL)
247+
248+let aU = fromBase58String(e(x))
249+
250+let aV = (extract(assetInfo(aU)).quantity - assetBalance(this, aU))
251+
252+let aW = ((extract(assetInfo(aA)).quantity - assetBalance(this, aA)) + aw)
253+
254+let aX = (as(aS, aF) - aW)
255+
256+let aY = (aW - as(aS, aF))
257+
258+func aZ (L) = g(aD, K(L))
193259
194260
195-let at = e(A)
261+let ba = g(aC, N)
196262
197-let au = e(w)
263+let bb = g(aC, M)
198264
199-let av = fromBase58String(au)
200-
201-let aw = e(y)
202-
203-let ax = e(z)
204-
205-let ay = e(B)
206-
207-let az = e(C)
208-
209-let aA = g(az, M)
210-
211-let aB = g(az, N)
212-
213-let aC = j(az, O)
214-
215-let aD = a(R)
216-
217-let aE = f(Q)
218-
219-let aF = a(I)
220-
221-let aG = a(P)
222-
223-let aH = a(S)
224-
225-let aI = e(G)
226-
227-let aJ = e(H)
228-
229-let aK = a(X)
230-
231-let aL = a(D)
232-
233-let aM = a(E)
234-
235-let aN = a(F)
236-
237-let aO = (wavesBalance(this) - as(t))
238-
239-let aP = (aO - aH)
240-
241-let aQ = fromBase58String(e(x))
242-
243-let aR = (extract(assetInfo(aQ)).quantity - assetBalance(this, aQ))
244-
245-let aS = ((extract(assetInfo(av)).quantity - assetBalance(this, av)) + as(au))
246-
247-let aT = (ao(aO, aA) - aS)
248-
249-let aU = (aS - ao(aO, aA))
250-
251-func aV (L) = g(ay, K(L))
265+func bc (V) = g(aE, U(V))
252266
253267
254-func aW (U) = g(az, T(U))
268+func bd (X) = g(aE, W(X))
255269
256270
257-func aX (W) = g(az, V(W))
271+func be (af) = a(ae(af))
258272
259273
260-func aY (ab) = a(aa(ab))
274+func bf (ah) = a(ag(ah))
261275
262276
263-func aZ (ad,L) = a(ac(ad, L))
277+func bg (ah) = a(ai(ah))
264278
265279
266-func ba (ad) = a(ae(ad))
280+func bh (ah) = a(aj(ah))
267281
268282
269-func bb (Z) = a(af(Z))
283+func bi (ad) = a(ak(ad))
270284
271285
272-func bc (ab) = e(ah(ab))
286+func bj (af) = e(al(af))
273287
274288
275-func bd (ab) = a(ai(ab))
289+func bk (af) = a(am(af))
276290
277291
278-func be (ab) = e(aj(ab))
292+func bl (af) = e(an(af))
279293
280294
281-func bf (ab) = a(ak(ab))
295+func bm (af) = a(ao(af))
282296
283297
284-@Callable(bg)
298+@Callable(bn)
285299 func swapWavesToNeutrino () = {
286- let bh = extract(bg.payment)
287- let bi = toString(bg.caller)
288- if ((aM > bh.amount))
289- then throw((("an amount is less than min available amount: " + toString(aM)) + " wavelets"))
290- else if (isDefined(bh.assetId))
300+ let bo = extract(bn.payment)
301+ let bp = toString(bn.caller)
302+ if ((aQ > bo.amount))
303+ then throw((("an amount is less than min available amount: " + toString(aQ)) + " wavelets"))
304+ else if (isDefined(bo.assetId))
291305 then throw("can use waves only")
292- else if (aC)
306+ else if (aH)
293307 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
294- else if ((ba(bi) > height))
295- then throw((("await " + toString((ba(bi) - height))) + " blocks"))
296- else if ((aZ(bi, t) != 0))
308+ else if ((bh(bp) > height))
309+ then throw((("await " + toString((bh(bp) - height))) + " blocks"))
310+ else if (if ((bg(bp) != 0))
311+ then true
312+ else (bf(bp) != 0))
297313 then throw("please withdraw locked funds first")
298- else WriteSet([DataEntry(ac(bi, t), bh.amount), DataEntry(ae(bi), (height + aL)), DataEntry(ag(t), (as(t) + bh.amount))])
314+ else WriteSet([DataEntry(ag(bp), bo.amount), DataEntry(aj(bp), (height + aP)), DataEntry(aa, (ax + bo.amount))])
299315 }
300316
301317
302318
303-@Callable(bg)
319+@Callable(bn)
304320 func swapNeutrinoToWaves () = {
305- let bh = extract(bg.payment)
306- let bi = toString(bg.caller)
307- if ((aN > bh.amount))
308- then throw((("an amount is less than min available amount: " + toString(aN)) + " neutrino cents"))
309- else if (aC)
321+ let bo = extract(bn.payment)
322+ let bp = toString(bn.caller)
323+ if ((aR > bo.amount))
324+ then throw((("an amount is less than min available amount: " + toString(aR)) + " neutrino cents"))
325+ else if (aH)
310326 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
311- else if ((bh.assetId != av))
327+ else if ((bo.assetId != aA))
312328 then throw("can use appropriate neutrino tokens only")
313- else if ((ba(bi) > height))
314- then throw((("await " + toString((ba(bi) - height))) + " blocks"))
315- else if ((aZ(bi, au) != 0))
329+ else if ((bh(bp) > height))
330+ then throw((("await " + toString((bh(bp) - height))) + " blocks"))
331+ else if (if ((bg(bp) != 0))
332+ then true
333+ else (bf(bp) != 0))
316334 then throw("please withdraw locked funds first")
317- else {
318- let bj = (as(au) + bh.amount)
319- WriteSet([DataEntry(ac(bi, au), bh.amount), DataEntry(ae(bi), (height + aL)), DataEntry(ag(au), bj), DataEntry(Q, if ((aP >= al(bj, aA)))
320- then false
321- else true)])
322- }
335+ else WriteSet([DataEntry(ai(bp), bo.amount), DataEntry(ag(bp), (height + aP)), DataEntry(ab, (aw + bo.amount))])
323336 }
324337
325338
326339
327-@Callable(bg)
328-func withdraw (bi,W,bk) = {
329- let bl = ba(bi)
330- let bm = aZ(bi, bk)
331- let bn = aX(W)
332- let bo = aX((W + 1))
333- let bp = aW(bn)
334- let am = if ((bk == au))
335- then al(bm, bp)
336- else ao(bm, bp)
337- if (aC)
340+@Callable(bn)
341+func withdraw (bp,X) = {
342+ let bq = bh(bp)
343+ let br = bf(bp)
344+ let bs = bg(bp)
345+ let bt = bd(X)
346+ let bu = bd((X + 1))
347+ let bv = bc(bt)
348+ let bw = as(br, bv)
349+ let bx = ap(bs, bv)
350+ if (aH)
338351 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
339- else if ((0 >= am))
340- then throw((("balance equals zero (" + bk) + ")"))
341- else if ((bl > height))
342- then throw((("please wait for: " + toString(bl)) + " block height to withdraw WAVES funds"))
343- else if (if (if ((W > aB))
344- then true
345- else (bn > bl))
346- then true
347- else if ((bo != 0))
348- then (bl >= bo)
349- else false)
350- then throw("invalid price history index")
351- else ScriptResult(WriteSet([DataEntry(ac(bi, bk), 0), DataEntry(ag(bk), (as(bk) - bm))]), TransferSet([ScriptTransfer(addressFromStringValue(bi), am, if ((bk == au))
352- then unit
353- else av)]))
352+ else if ((bq > height))
353+ then throw((("please wait for: " + toString(bq)) + " block height to withdraw WAVES funds"))
354+ else if (if (if ((X > aG))
355+ then true
356+ else (bt > bq))
357+ then true
358+ else if ((bu != 0))
359+ then (bq >= bu)
360+ else false)
361+ then throw("invalid price history index")
362+ else if (if ((0 >= bw))
363+ then (0 >= bx)
364+ else false)
365+ then throw("balance equals zero")
366+ else ScriptResult(WriteSet([DataEntry(ag(bp), 0), DataEntry(ai(bp), 0), DataEntry(aa, (ax - br)), DataEntry(ab, (aw - bs))]), TransferSet([ScriptTransfer(addressFromStringValue(bp), bx, unit), ScriptTransfer(addressFromStringValue(bp), bw, aA)]))
354367 }
355368
356369
357370
358-@Callable(bg)
371+@Callable(bn)
359372 func transferToAuction () = {
360- let bq = (ap(aU) - assetBalance(addressFromStringValue(ax), aQ))
361- let br = (ap(aT) - assetBalance(addressFromStringValue(ax), av))
362- if (aC)
373+ let by = ((at(aY) - assetBalance(addressFromStringValue(aC), aU)) - ba)
374+ let bz = ((at(aX) - assetBalance(addressFromStringValue(aC), aA)) - bb)
375+ if (aH)
363376 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
364- else if ((bq >= ((ap(aS) * s) / 100)))
365- then TransferSet([ScriptTransfer(addressFromStringValue(ax), bq, aQ)])
366- else if ((br > 0))
367- then TransferSet([ScriptTransfer(addressFromStringValue(at), aq(br), av)])
368- else throw("bond were generated or do not need it")
377+ else if ((by >= ((at(aW) * s) / 100)))
378+ then TransferSet([ScriptTransfer(addressFromStringValue(aC), by, aU)])
379+ else if ((bz > 0))
380+ then TransferSet([ScriptTransfer(addressFromStringValue(ay), au(bz), aA)])
381+ else throw(((((("bond were generated or do not need it. Deficit:" + toString(by)) + "|") + toString(((aW * s) / 100))) + ". Surplus:") + toString(bz)))
369382 }
370383
371384
372385
373-@Callable(bg)
374-func transfer (bi) = {
375- let bh = extract(bg.payment)
376- TransferSet([ScriptTransfer(addressFromStringValue(bi), bh.amount, bh.assetId)])
386+@Callable(bn)
387+func transfer (bp) = {
388+ let bo = extract(bn.payment)
389+ TransferSet([ScriptTransfer(addressFromStringValue(bp), bo.amount, bo.assetId)])
377390 }
378391
379392
380393
381-@Callable(bg)
394+@Callable(bn)
382395 func nodeReward () = {
383- let bh = value(bg.payment)
384- if ((bg.caller != addressFromStringValue(aI)))
396+ let bo = value(bn.payment)
397+ if ((bn.caller != addressFromStringValue(aM)))
385398 then throw("only node account is able to transfer staking rewards from main account")
386- else if (isDefined(bh.assetId))
399+ else if (isDefined(bo.assetId))
387400 then throw("waves tokens only allowed")
388401 else {
389- let am = ao(bh.amount, aA)
390- let bs = (aK + 1)
391- ScriptResult(WriteSet([DataEntry(X, bs), DataEntry(af(aK), am), DataEntry(Y(aK, av), aV(av))]), TransferSet([ScriptTransfer(addressFromStringValue(ay), am, av)]))
402+ let aq = as(bo.amount, aF)
403+ let bA = (aO + 1)
404+ ScriptResult(WriteSet([DataEntry(Y, bA), DataEntry(ak(aO), aq), DataEntry(ac(aO, aA), aZ(aA))]), TransferSet([ScriptTransfer(addressFromStringValue(aD), aq, aA)]))
392405 }
393406 }
394407
395408
396-
397-@Callable(bg)
398-func registrationLeaseTx (bt,bu,bv,bw) = {
399- let bx = (((aO * q) / 100) - al(as(au), aA))
400- let am = (bx / r)
401- let by = (((((base58'3h1H' + fromBase58String(bt)) + fromBase58String(aI)) + toBytes(am)) + toBytes(bu)) + toBytes(bv))
402- let bz = blake2b256(by)
403- let bA = toBase58String(bz)
404- let bh = extract(bg.payment)
405- if ((toString(bg.caller) == aJ))
406- then throw("invalid caller")
407- else if (isDefined(bh.assetId))
408- then throw("invalid paymtn asset")
409- else if ((bw != bA))
410- then throw((("invalid tx hash(amount:" + toString(am)) + ")"))
411- else if ((aD >= r))
412- then throw("the number of leasing transactions is equal to the maximum")
413- else if ((this != addressFromPublicKey(fromBase58String(bt))))
414- then throw("invalid pubKey")
415- else if (if ((lastBlock.timestamp > bv))
416- then true
417- else (bv > (lastBlock.timestamp + 5400000)))
418- then throw((("invalid timestamp(lastBlock: " + toString(lastBlock.timestamp)) + ")"))
419- else if ((bc(bA) != ""))
420- then throw("tx is exist")
421- else if ((bh.amount != (bu * 2)))
422- then throw("invalid payment amount")
423- else if (if ((bu > 1000000))
424- then true
425- else (500000 > bu))
426- then throw("invalid fee")
427- else if (((bx - (aH + am)) > aP))
428- then throw((("invalid amount(result:" + toString(((bx - (aH + am)) > aP))) + ")"))
429- else WriteSet([DataEntry(aa(bA), bu), DataEntry(R, if ((bc(bA) == ""))
430- then (aD + 1)
431- else aD), DataEntry(S, (aH + am)), DataEntry(P, if ((height > aG))
432- then (height + aF)
433- else aG), DataEntry(ah(bA), v), DataEntry(ak(bA), (height + k)), DataEntry(ai(bA), am), DataEntry(aj(bA), toBase64String(by))])
434- }
435-
436-
437-
438-@Callable(bg)
439-func cancelStuckLeaseTx (bA) = if (if (if ((bc(bA) == v))
440- then !(isDefined(transactionHeightById(fromBase58String(bA))))
441- else false)
442- then (height > bf(bA))
443- else false)
444- then {
445- let am = bd(bA)
446- WriteSet([DataEntry(R, (aD - 1)), DataEntry(S, (aH - am)), DataEntry(ah(bA), u), DataEntry(Q, if (((aP - am) >= al(as(au), aA)))
447- then false
448- else true)])
449- }
450- else throw("invalid tx hash")
451-
452-
453-
454-@Callable(bg)
455-func registrationUnleaseTx (bB,bt,bu,bv,bw) = {
456- let by = (((((base58'gm' + toBytes(bB)) + fromBase58String(bt)) + toBytes(bu)) + toBytes(bv)) + fromBase58String(bw))
457- let bA = blake2b256(by)
458- if ((bc(bw) != v))
459- then throw("invalid tx status")
460- else if ((this != addressFromPublicKey(fromBase58String(bt))))
461- then throw("invalid pubKey")
462- else if (!(isDefined(transactionHeightById(bA))))
463- then throw("blockchain does not contain this transaction")
464- else {
465- let am = bd(bw)
466- WriteSet([DataEntry(R, (aD - 1)), DataEntry(S, (aH - am)), DataEntry(ah(bw), u), DataEntry(Q, if (((aP - am) >= al(as(au), aA)))
467- then false
468- else true)])
469- }
470- }
471-
472-
473-@Verifier(bC)
474-func bD () = {
475- let bE = toBase58String(bC.id)
476- let c = bC
477- if ($isInstanceOf(c, "LeaseTransaction"))
409+@Verifier(bB)
410+func bC () = {
411+ let bD = toBase58String(bB.id)
412+ let c = bB
413+ if (if ($isInstanceOf(c, "LeaseCancelTransaction"))
414+ then true
415+ else $isInstanceOf(c, "LeaseTransaction"))
478416 then {
479- let bF = c
480- if (if ((aG >= height))
481- then (bf(bE) >= height)
482- else false)
483- then (bc(bE) == v)
417+ let bE = c
418+ if (sigVerify(bB.bodyBytes, bB.proofs[0], bB.senderPublicKey))
419+ then (addressFromString(aN) == addressFromPublicKey(bB.senderPublicKey))
484420 else false
485421 }
486- else if ($isInstanceOf(c, "LeaseCancelTransaction"))
487- then {
488- let bG = c
489- let bH = toBase58String(bG.leaseId)
490- if (if (if ((height > aG))
491- then true
492- else aE)
493- then (bG.fee == aY(bH))
494- else false)
495- then (bc(bH) == v)
496- else false
497- }
498- else sigVerify(bC.bodyBytes, bC.proofs[0], bC.senderPublicKey)
422+ else sigVerify(bB.bodyBytes, bB.proofs[0], bB.senderPublicKey)
499423 }
500424
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 let k = 30
7171
7272 let l = "_"
7373
7474 let m = "+"
7575
7676 let n = 100000000
7777
7878 let o = 100
7979
8080 let p = 20
8181
8282 let q = 90
8383
8484 let r = 10
8585
8686 let s = 10
8787
8888 let t = "waves"
8989
9090 let u = "canceled"
9191
9292 let v = "new"
9393
9494 let w = "neutrino_asset_id"
9595
9696 let x = "bond_asset_id"
9797
9898 let y = "reserve_contract"
9999
100100 let z = "auction_contract"
101101
102102 let A = "liquidation_contract"
103103
104104 let B = "rpd_contract"
105105
106106 let C = "control_contract"
107107
108108 let D = "balance_lock_interval"
109109
110110 let E = "min_waves_swap_amount"
111111
112112 let F = "min_neutrino_swap_amount"
113113
114114 let G = "node_address"
115115
116116 let H = "oracle_node_provider"
117117
118118 let I = "leasing_interval"
119119
120120 let J = "rpd_balance"
121121
122122 func K (L) = ((J + "_") + toBase58String(L))
123123
124124
125-let M = "price"
125+let M = "total_orderbook"
126126
127-let N = "price_index"
127+let N = "total_liquidation_orderbook"
128128
129-let O = "is_blocked"
129+let O = "price"
130130
131-let P = "leasing_expire_block"
131+let P = "price_index"
132132
133-let Q = "is_rebalance"
133+let Q = "is_blocked"
134134
135-let R = "leasing_index"
135+let R = "leasing_expire_block"
136136
137-let S = "leasing_amount"
137+let S = "leasing_index"
138138
139-func T (U) = ((M + "_") + toString(U))
139+let T = "leasing_amount"
140+
141+func U (V) = ((O + "_") + toString(V))
140142
141143
142-func V (W) = ((N + "_") + toString(W))
144+func W (X) = ((P + "_") + toString(X))
143145
144146
145-let X = "rpd_sync_index"
147+let Y = "rpd_sync_index"
146148
147-func Y (Z,L) = ((((J + "_") + toBase58String(L)) + "_") + toString(Z))
149+let Z = "balance_lock_"
150+
151+let aa = (Z + "waves")
152+
153+let ab = (Z + "neutrino")
154+
155+func ac (ad,L) = ((((J + "_") + toBase58String(L)) + "_") + toString(ad))
148156
149157
150-func aa (ab) = (("cancel_lease_tx_reserve_fee" + "_") + ab)
158+func ae (af) = (("cancel_lease_tx_reserve_fee" + "_") + af)
151159
152160
153-func ac (ad,L) = ((("balance_" + L) + "_") + ad)
161+func ag (ah) = ((aa + "_") + ah)
154162
155163
156-func ae (ad) = ("balance_block_" + ad)
164+func ai (ah) = ((ab + "_") + ah)
157165
158166
159-func af (Z) = (("rpd_profit" + "_") + toString(Z))
167+func aj (ah) = ("balance_unlock_block_" + ah)
160168
161169
162-func ag (L) = ("balance_" + L)
170+func ak (ad) = (("rpd_profit" + "_") + toString(ad))
163171
164172
165-func ah (ab) = (("lease_tx_status" + "_") + ab)
173+func al (af) = (("lease_tx_status" + "_") + af)
166174
167175
168-func ai (ab) = ((S + "_") + ab)
176+func am (af) = ((T + "_") + af)
169177
170178
171-func aj (ab) = (("lease_tx" + "_") + ab)
179+func an (af) = (("lease_tx" + "_") + af)
172180
173181
174-func ak (ab) = (("leasing_expire_send" + "_") + ab)
182+func ao (af) = (("leasing_expire_send" + "_") + af)
175183
176184
177-func al (am,an) = ((((am * 100) / an) * n) / o)
185+func ap (aq,ar) = ((((aq * 100) / ar) * n) / o)
178186
179187
180-func ao (am,an) = ((((am * an) / 100) * o) / n)
188+func as (aq,ar) = ((((aq * ar) / 100) * o) / n)
181189
182190
183-func ap (am) = (am / o)
191+func at (aq) = (aq / o)
184192
185193
186-func aq (am) = (am * o)
194+func au (aq) = (aq * o)
187195
188196
189-func ar (am,an) = ap(ao(am, an))
197+func av (aq,ar) = at(as(aq, ar))
190198
191199
192-func as (L) = a(ag(L))
200+let aw = a(ab)
201+
202+let ax = a(aa)
203+
204+let ay = e(A)
205+
206+let az = e(w)
207+
208+let aA = fromBase58String(az)
209+
210+let aB = e(y)
211+
212+let aC = e(z)
213+
214+let aD = e(B)
215+
216+let aE = e(C)
217+
218+let aF = g(aE, O)
219+
220+let aG = g(aE, P)
221+
222+let aH = j(aE, Q)
223+
224+let aI = a(S)
225+
226+let aJ = a(I)
227+
228+let aK = a(R)
229+
230+let aL = a(T)
231+
232+let aM = e(G)
233+
234+let aN = e(H)
235+
236+let aO = a(Y)
237+
238+let aP = a(D)
239+
240+let aQ = a(E)
241+
242+let aR = a(F)
243+
244+let aS = (wavesBalance(this) - ax)
245+
246+let aT = (aS - aL)
247+
248+let aU = fromBase58String(e(x))
249+
250+let aV = (extract(assetInfo(aU)).quantity - assetBalance(this, aU))
251+
252+let aW = ((extract(assetInfo(aA)).quantity - assetBalance(this, aA)) + aw)
253+
254+let aX = (as(aS, aF) - aW)
255+
256+let aY = (aW - as(aS, aF))
257+
258+func aZ (L) = g(aD, K(L))
193259
194260
195-let at = e(A)
261+let ba = g(aC, N)
196262
197-let au = e(w)
263+let bb = g(aC, M)
198264
199-let av = fromBase58String(au)
200-
201-let aw = e(y)
202-
203-let ax = e(z)
204-
205-let ay = e(B)
206-
207-let az = e(C)
208-
209-let aA = g(az, M)
210-
211-let aB = g(az, N)
212-
213-let aC = j(az, O)
214-
215-let aD = a(R)
216-
217-let aE = f(Q)
218-
219-let aF = a(I)
220-
221-let aG = a(P)
222-
223-let aH = a(S)
224-
225-let aI = e(G)
226-
227-let aJ = e(H)
228-
229-let aK = a(X)
230-
231-let aL = a(D)
232-
233-let aM = a(E)
234-
235-let aN = a(F)
236-
237-let aO = (wavesBalance(this) - as(t))
238-
239-let aP = (aO - aH)
240-
241-let aQ = fromBase58String(e(x))
242-
243-let aR = (extract(assetInfo(aQ)).quantity - assetBalance(this, aQ))
244-
245-let aS = ((extract(assetInfo(av)).quantity - assetBalance(this, av)) + as(au))
246-
247-let aT = (ao(aO, aA) - aS)
248-
249-let aU = (aS - ao(aO, aA))
250-
251-func aV (L) = g(ay, K(L))
265+func bc (V) = g(aE, U(V))
252266
253267
254-func aW (U) = g(az, T(U))
268+func bd (X) = g(aE, W(X))
255269
256270
257-func aX (W) = g(az, V(W))
271+func be (af) = a(ae(af))
258272
259273
260-func aY (ab) = a(aa(ab))
274+func bf (ah) = a(ag(ah))
261275
262276
263-func aZ (ad,L) = a(ac(ad, L))
277+func bg (ah) = a(ai(ah))
264278
265279
266-func ba (ad) = a(ae(ad))
280+func bh (ah) = a(aj(ah))
267281
268282
269-func bb (Z) = a(af(Z))
283+func bi (ad) = a(ak(ad))
270284
271285
272-func bc (ab) = e(ah(ab))
286+func bj (af) = e(al(af))
273287
274288
275-func bd (ab) = a(ai(ab))
289+func bk (af) = a(am(af))
276290
277291
278-func be (ab) = e(aj(ab))
292+func bl (af) = e(an(af))
279293
280294
281-func bf (ab) = a(ak(ab))
295+func bm (af) = a(ao(af))
282296
283297
284-@Callable(bg)
298+@Callable(bn)
285299 func swapWavesToNeutrino () = {
286- let bh = extract(bg.payment)
287- let bi = toString(bg.caller)
288- if ((aM > bh.amount))
289- then throw((("an amount is less than min available amount: " + toString(aM)) + " wavelets"))
290- else if (isDefined(bh.assetId))
300+ let bo = extract(bn.payment)
301+ let bp = toString(bn.caller)
302+ if ((aQ > bo.amount))
303+ then throw((("an amount is less than min available amount: " + toString(aQ)) + " wavelets"))
304+ else if (isDefined(bo.assetId))
291305 then throw("can use waves only")
292- else if (aC)
306+ else if (aH)
293307 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
294- else if ((ba(bi) > height))
295- then throw((("await " + toString((ba(bi) - height))) + " blocks"))
296- else if ((aZ(bi, t) != 0))
308+ else if ((bh(bp) > height))
309+ then throw((("await " + toString((bh(bp) - height))) + " blocks"))
310+ else if (if ((bg(bp) != 0))
311+ then true
312+ else (bf(bp) != 0))
297313 then throw("please withdraw locked funds first")
298- else WriteSet([DataEntry(ac(bi, t), bh.amount), DataEntry(ae(bi), (height + aL)), DataEntry(ag(t), (as(t) + bh.amount))])
314+ else WriteSet([DataEntry(ag(bp), bo.amount), DataEntry(aj(bp), (height + aP)), DataEntry(aa, (ax + bo.amount))])
299315 }
300316
301317
302318
303-@Callable(bg)
319+@Callable(bn)
304320 func swapNeutrinoToWaves () = {
305- let bh = extract(bg.payment)
306- let bi = toString(bg.caller)
307- if ((aN > bh.amount))
308- then throw((("an amount is less than min available amount: " + toString(aN)) + " neutrino cents"))
309- else if (aC)
321+ let bo = extract(bn.payment)
322+ let bp = toString(bn.caller)
323+ if ((aR > bo.amount))
324+ then throw((("an amount is less than min available amount: " + toString(aR)) + " neutrino cents"))
325+ else if (aH)
310326 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
311- else if ((bh.assetId != av))
327+ else if ((bo.assetId != aA))
312328 then throw("can use appropriate neutrino tokens only")
313- else if ((ba(bi) > height))
314- then throw((("await " + toString((ba(bi) - height))) + " blocks"))
315- else if ((aZ(bi, au) != 0))
329+ else if ((bh(bp) > height))
330+ then throw((("await " + toString((bh(bp) - height))) + " blocks"))
331+ else if (if ((bg(bp) != 0))
332+ then true
333+ else (bf(bp) != 0))
316334 then throw("please withdraw locked funds first")
317- else {
318- let bj = (as(au) + bh.amount)
319- WriteSet([DataEntry(ac(bi, au), bh.amount), DataEntry(ae(bi), (height + aL)), DataEntry(ag(au), bj), DataEntry(Q, if ((aP >= al(bj, aA)))
320- then false
321- else true)])
322- }
335+ else WriteSet([DataEntry(ai(bp), bo.amount), DataEntry(ag(bp), (height + aP)), DataEntry(ab, (aw + bo.amount))])
323336 }
324337
325338
326339
327-@Callable(bg)
328-func withdraw (bi,W,bk) = {
329- let bl = ba(bi)
330- let bm = aZ(bi, bk)
331- let bn = aX(W)
332- let bo = aX((W + 1))
333- let bp = aW(bn)
334- let am = if ((bk == au))
335- then al(bm, bp)
336- else ao(bm, bp)
337- if (aC)
340+@Callable(bn)
341+func withdraw (bp,X) = {
342+ let bq = bh(bp)
343+ let br = bf(bp)
344+ let bs = bg(bp)
345+ let bt = bd(X)
346+ let bu = bd((X + 1))
347+ let bv = bc(bt)
348+ let bw = as(br, bv)
349+ let bx = ap(bs, bv)
350+ if (aH)
338351 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
339- else if ((0 >= am))
340- then throw((("balance equals zero (" + bk) + ")"))
341- else if ((bl > height))
342- then throw((("please wait for: " + toString(bl)) + " block height to withdraw WAVES funds"))
343- else if (if (if ((W > aB))
344- then true
345- else (bn > bl))
346- then true
347- else if ((bo != 0))
348- then (bl >= bo)
349- else false)
350- then throw("invalid price history index")
351- else ScriptResult(WriteSet([DataEntry(ac(bi, bk), 0), DataEntry(ag(bk), (as(bk) - bm))]), TransferSet([ScriptTransfer(addressFromStringValue(bi), am, if ((bk == au))
352- then unit
353- else av)]))
352+ else if ((bq > height))
353+ then throw((("please wait for: " + toString(bq)) + " block height to withdraw WAVES funds"))
354+ else if (if (if ((X > aG))
355+ then true
356+ else (bt > bq))
357+ then true
358+ else if ((bu != 0))
359+ then (bq >= bu)
360+ else false)
361+ then throw("invalid price history index")
362+ else if (if ((0 >= bw))
363+ then (0 >= bx)
364+ else false)
365+ then throw("balance equals zero")
366+ else ScriptResult(WriteSet([DataEntry(ag(bp), 0), DataEntry(ai(bp), 0), DataEntry(aa, (ax - br)), DataEntry(ab, (aw - bs))]), TransferSet([ScriptTransfer(addressFromStringValue(bp), bx, unit), ScriptTransfer(addressFromStringValue(bp), bw, aA)]))
354367 }
355368
356369
357370
358-@Callable(bg)
371+@Callable(bn)
359372 func transferToAuction () = {
360- let bq = (ap(aU) - assetBalance(addressFromStringValue(ax), aQ))
361- let br = (ap(aT) - assetBalance(addressFromStringValue(ax), av))
362- if (aC)
373+ let by = ((at(aY) - assetBalance(addressFromStringValue(aC), aU)) - ba)
374+ let bz = ((at(aX) - assetBalance(addressFromStringValue(aC), aA)) - bb)
375+ if (aH)
363376 then throw("contract is blocked by EMERGENCY SHUTDOWN actions untill reactivation by emergency oracles")
364- else if ((bq >= ((ap(aS) * s) / 100)))
365- then TransferSet([ScriptTransfer(addressFromStringValue(ax), bq, aQ)])
366- else if ((br > 0))
367- then TransferSet([ScriptTransfer(addressFromStringValue(at), aq(br), av)])
368- else throw("bond were generated or do not need it")
377+ else if ((by >= ((at(aW) * s) / 100)))
378+ then TransferSet([ScriptTransfer(addressFromStringValue(aC), by, aU)])
379+ else if ((bz > 0))
380+ then TransferSet([ScriptTransfer(addressFromStringValue(ay), au(bz), aA)])
381+ else throw(((((("bond were generated or do not need it. Deficit:" + toString(by)) + "|") + toString(((aW * s) / 100))) + ". Surplus:") + toString(bz)))
369382 }
370383
371384
372385
373-@Callable(bg)
374-func transfer (bi) = {
375- let bh = extract(bg.payment)
376- TransferSet([ScriptTransfer(addressFromStringValue(bi), bh.amount, bh.assetId)])
386+@Callable(bn)
387+func transfer (bp) = {
388+ let bo = extract(bn.payment)
389+ TransferSet([ScriptTransfer(addressFromStringValue(bp), bo.amount, bo.assetId)])
377390 }
378391
379392
380393
381-@Callable(bg)
394+@Callable(bn)
382395 func nodeReward () = {
383- let bh = value(bg.payment)
384- if ((bg.caller != addressFromStringValue(aI)))
396+ let bo = value(bn.payment)
397+ if ((bn.caller != addressFromStringValue(aM)))
385398 then throw("only node account is able to transfer staking rewards from main account")
386- else if (isDefined(bh.assetId))
399+ else if (isDefined(bo.assetId))
387400 then throw("waves tokens only allowed")
388401 else {
389- let am = ao(bh.amount, aA)
390- let bs = (aK + 1)
391- ScriptResult(WriteSet([DataEntry(X, bs), DataEntry(af(aK), am), DataEntry(Y(aK, av), aV(av))]), TransferSet([ScriptTransfer(addressFromStringValue(ay), am, av)]))
402+ let aq = as(bo.amount, aF)
403+ let bA = (aO + 1)
404+ ScriptResult(WriteSet([DataEntry(Y, bA), DataEntry(ak(aO), aq), DataEntry(ac(aO, aA), aZ(aA))]), TransferSet([ScriptTransfer(addressFromStringValue(aD), aq, aA)]))
392405 }
393406 }
394407
395408
396-
397-@Callable(bg)
398-func registrationLeaseTx (bt,bu,bv,bw) = {
399- let bx = (((aO * q) / 100) - al(as(au), aA))
400- let am = (bx / r)
401- let by = (((((base58'3h1H' + fromBase58String(bt)) + fromBase58String(aI)) + toBytes(am)) + toBytes(bu)) + toBytes(bv))
402- let bz = blake2b256(by)
403- let bA = toBase58String(bz)
404- let bh = extract(bg.payment)
405- if ((toString(bg.caller) == aJ))
406- then throw("invalid caller")
407- else if (isDefined(bh.assetId))
408- then throw("invalid paymtn asset")
409- else if ((bw != bA))
410- then throw((("invalid tx hash(amount:" + toString(am)) + ")"))
411- else if ((aD >= r))
412- then throw("the number of leasing transactions is equal to the maximum")
413- else if ((this != addressFromPublicKey(fromBase58String(bt))))
414- then throw("invalid pubKey")
415- else if (if ((lastBlock.timestamp > bv))
416- then true
417- else (bv > (lastBlock.timestamp + 5400000)))
418- then throw((("invalid timestamp(lastBlock: " + toString(lastBlock.timestamp)) + ")"))
419- else if ((bc(bA) != ""))
420- then throw("tx is exist")
421- else if ((bh.amount != (bu * 2)))
422- then throw("invalid payment amount")
423- else if (if ((bu > 1000000))
424- then true
425- else (500000 > bu))
426- then throw("invalid fee")
427- else if (((bx - (aH + am)) > aP))
428- then throw((("invalid amount(result:" + toString(((bx - (aH + am)) > aP))) + ")"))
429- else WriteSet([DataEntry(aa(bA), bu), DataEntry(R, if ((bc(bA) == ""))
430- then (aD + 1)
431- else aD), DataEntry(S, (aH + am)), DataEntry(P, if ((height > aG))
432- then (height + aF)
433- else aG), DataEntry(ah(bA), v), DataEntry(ak(bA), (height + k)), DataEntry(ai(bA), am), DataEntry(aj(bA), toBase64String(by))])
434- }
435-
436-
437-
438-@Callable(bg)
439-func cancelStuckLeaseTx (bA) = if (if (if ((bc(bA) == v))
440- then !(isDefined(transactionHeightById(fromBase58String(bA))))
441- else false)
442- then (height > bf(bA))
443- else false)
444- then {
445- let am = bd(bA)
446- WriteSet([DataEntry(R, (aD - 1)), DataEntry(S, (aH - am)), DataEntry(ah(bA), u), DataEntry(Q, if (((aP - am) >= al(as(au), aA)))
447- then false
448- else true)])
449- }
450- else throw("invalid tx hash")
451-
452-
453-
454-@Callable(bg)
455-func registrationUnleaseTx (bB,bt,bu,bv,bw) = {
456- let by = (((((base58'gm' + toBytes(bB)) + fromBase58String(bt)) + toBytes(bu)) + toBytes(bv)) + fromBase58String(bw))
457- let bA = blake2b256(by)
458- if ((bc(bw) != v))
459- then throw("invalid tx status")
460- else if ((this != addressFromPublicKey(fromBase58String(bt))))
461- then throw("invalid pubKey")
462- else if (!(isDefined(transactionHeightById(bA))))
463- then throw("blockchain does not contain this transaction")
464- else {
465- let am = bd(bw)
466- WriteSet([DataEntry(R, (aD - 1)), DataEntry(S, (aH - am)), DataEntry(ah(bw), u), DataEntry(Q, if (((aP - am) >= al(as(au), aA)))
467- then false
468- else true)])
469- }
470- }
471-
472-
473-@Verifier(bC)
474-func bD () = {
475- let bE = toBase58String(bC.id)
476- let c = bC
477- if ($isInstanceOf(c, "LeaseTransaction"))
409+@Verifier(bB)
410+func bC () = {
411+ let bD = toBase58String(bB.id)
412+ let c = bB
413+ if (if ($isInstanceOf(c, "LeaseCancelTransaction"))
414+ then true
415+ else $isInstanceOf(c, "LeaseTransaction"))
478416 then {
479- let bF = c
480- if (if ((aG >= height))
481- then (bf(bE) >= height)
482- else false)
483- then (bc(bE) == v)
417+ let bE = c
418+ if (sigVerify(bB.bodyBytes, bB.proofs[0], bB.senderPublicKey))
419+ then (addressFromString(aN) == addressFromPublicKey(bB.senderPublicKey))
484420 else false
485421 }
486- else if ($isInstanceOf(c, "LeaseCancelTransaction"))
487- then {
488- let bG = c
489- let bH = toBase58String(bG.leaseId)
490- if (if (if ((height > aG))
491- then true
492- else aE)
493- then (bG.fee == aY(bH))
494- else false)
495- then (bc(bH) == v)
496- else false
497- }
498- else sigVerify(bC.bodyBytes, bC.proofs[0], bC.senderPublicKey)
422+ else sigVerify(bB.bodyBytes, bB.proofs[0], bB.senderPublicKey)
499423 }
500424

github/deemru/w8io/169f3d6 
146.06 ms