tx · D5ACfPU2pD8u68txzcjrEATedxkXyZJTcEMxCbshGPpU

3N4Pj4MutKVgrmcuX7jgyVGWoBhDyKYFZBj:  -0.01400000 Waves

2019.10.08 13:44 [710719] smart account 3N4Pj4MutKVgrmcuX7jgyVGWoBhDyKYFZBj > SELF 0.00000000 Waves

{ "type": 13, "id": "D5ACfPU2pD8u68txzcjrEATedxkXyZJTcEMxCbshGPpU", "fee": 1400000, "feeAssetId": null, "timestamp": 1570531455426, "version": 1, "sender": "3N4Pj4MutKVgrmcuX7jgyVGWoBhDyKYFZBj", "senderPublicKey": "7YuxEiQSearE3DvFS84DXzV5gad9qxsq4bTy633SAYBj", "proofs": [ "44Z5xduJACeyY5QQjK3nLqJc8ighfCf4S6ZufWVJPUEkubr1s4W6E9MMHWYrLozfn1pbszkehA3QUcxQYs8dBvZg" ], "script": "base64:AAIDAAAAAAAAAAAAAAB3AQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADGdldEJvb2xCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQcBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAAAAAA9MSVNUU1BMSVRTWU1CT0wCAAAAAV8AAAAADkxJU1REQVRBU1lNQk9MAgAAAAErAAAAAAdXQVZFTEVUAAAAAAAF9eEAAAAAAA1DRU5UU0lORE9MTEFSAAAAAAAAAABkAAAAAAhDQU5DRUxFRAIAAAAIY2FuY2VsZWQAAAAAA05FVwIAAAADbmV3AAAAAAZGSUxMRUQCAAAABmZpbGxlZAAAAAASTmV1dHJpbm9Bc3NldElkS2V5AgAAABFuZXV0cmlub19hc3NldF9pZAAAAAAOQm9uZEFzc2V0SWRLZXkCAAAADWJvbmRfYXNzZXRfaWQAAAAAEkF1Y3Rpb25Db250cmFjdEtleQIAAAAQYXVjdGlvbl9jb250cmFjdAAAAAAOUlBEQ29udHJhY3RLZXkCAAAADHJwZF9jb250cmFjdAAAAAAWQmFsYW5jZUxvY2tJbnRlcnZhbEtleQIAAAAVYmFsYW5jZV9sb2NrX2ludGVydmFsAAAAAA9Wb3RlSW50ZXJ2YWxLZXkCAAAADXZvdGVfaW50ZXJ2YWwAAAAAFU1pbldhdmVzU3dhcEFtb3VudEtleQIAAAAVbWluX3dhdmVzX3N3YXBfYW1vdW50AAAAABhNaW5OZXV0cmlub1N3YXBBbW91bnRLZXkCAAAAGG1pbl9uZXV0cmlub19zd2FwX2Ftb3VudAAAAAAOUHJpY2VPZmZzZXRLZXkCAAAADHByaWNlX29mZnNldAAAAAAUUHJvdmlkaW5nSW50ZXJ2YWxLZXkCAAAAEnByb3ZpZGluZ19pbnRlcnZhbAAAAAAIUHJpY2VLZXkCAAAABXByaWNlAAAAABJOZXV0cmlub0JhbGFuY2VLZXkCAAAACW5ldXRyaW5vXwAAAAAPV2F2ZXNCYWxhbmNlS2V5AgAAAAZ3YXZlc18AAAAAFUJhbGFuY2VVbmxvY2tCbG9ja0tleQIAAAAOYmFsYW5jZV9ibG9ja18AAAAADE9yZGVyYm9va0tleQIAAAAJb3JkZXJib29rAAAAAA1PcmRlclRvdGFsS2V5AgAAAAxvcmRlcl90b3RhbF8AAAAADU9yZGVyT3duZXJLZXkCAAAADG9yZGVyX293bmVyXwAAAAAOT3JkZXJIZWlnaHRLZXkCAAAADW9yZGVyX2hlaWdodF8AAAAAE09yZGVyRmlsbGVkVG90YWxLZXkCAAAAE29yZGVyX2ZpbGxlZF90b3RhbF8AAAAADk9yZGVyU3RhdHVzS2V5AgAAAA1vcmRlcl9zdGF0dXNfAAAAAA9SUERTeW5jSW5kZXhLZXkCAAAADnJwZF9zeW5jX2luZGV4AAAAAAxSUERQcm9maXRLZXkCAAAACnJwZF9wcm9maXQAAAAADVJQREJhbGFuY2VLZXkCAAAAC3JwZF9iYWxhbmNlAAAAAAxJc0Jsb2NrZWRLZXkCAAAACmlzX2Jsb2NrZWQAAAAAEkJsYWNrU3dhcm1QcmljZUtleQIAAAARYmxhY2tfc3dhcm1fcHJpY2UAAAAADEFkbWluVm90ZUtleQIAAAALYWRtaW5fdm90ZV8AAAAAEUFkbWluVm90ZVByaWNlS2V5AgAAABFhZG1pbl92b3RlX3ByaWNlXwAAAAASQmxvY2tFeHBpcmVWb3RlS2V5AgAAABF2b3RlX2V4cGlyZV9ibG9jawAAAAAIQWRtaW5LZXkCAAAABmFkbWluXwAAAAARSXNQcmljZVBlbmRpbmdLZXkCAAAAEGlzX3BlbmRpbmdfcHJpY2UAAAAACU9yYWNsZUtleQIAAAAHb3JhY2xlXwAAAAAST3JhY2xlSXNQcm92aWRlS2V5AgAAABJvcmFjbGVfaXNfcHJvdmlkZV8AAAAAFU9yYWNsZVByb3ZpZGVQcmljZUtleQIAAAAVb3JhY2xlX3ByaWNlX3Byb3ZpZGVfAAAAABdCbG9ja0V4cGlyZVByb3ZpZGluZ0tleQIAAAAWcHJvdmlkaW5nX2V4cGlyZV9ibG9jawAAAAASQXBwcm92ZWRMZWFzZVR4S2V5AgAAAAdsZWFzZXR4AAAAABlJc0xlYXNpbmdQcm9maXRUeEV4aXN0S2V5AgAAABFpc19sZWFzaW5nX3Byb2ZpdAEAAAALZ2V0QWRtaW5LZXkAAAABAAAABWNvdW50CQABLAAAAAIFAAAACEFkbWluS2V5CQABpAAAAAEFAAAABWNvdW50AQAAAA9nZXRBZG1pblZvdGVLZXkAAAABAAAABW93bmVyCQABLAAAAAIFAAAADEFkbWluVm90ZUtleQUAAAAFb3duZXIBAAAAFGdldEFkbWluVm90ZVByaWNlS2V5AAAAAQAAAAVvd25lcgkAASwAAAACBQAAABFBZG1pblZvdGVQcmljZUtleQUAAAAFb3duZXIBAAAADGdldE9yYWNsZUtleQAAAAEAAAAFY291bnQJAAEsAAAAAgUAAAAJT3JhY2xlS2V5CQABpAAAAAEFAAAABWNvdW50AQAAABVnZXRPcmFjbGVJc1Byb3ZpZGVLZXkAAAABAAAABW93bmVyCQABLAAAAAIFAAAAEk9yYWNsZUlzUHJvdmlkZUtleQUAAAAFb3duZXIBAAAAGGdldE9yYWNsZVByb3ZpZGVQcmljZUtleQAAAAEAAAAFb3duZXIJAAEsAAAAAgUAAAAVT3JhY2xlUHJvdmlkZVByaWNlS2V5BQAAAAVvd25lcgEAAAAgZ2V0UlBEU25hcHNob3RDb250cmFjdEJhbGFuY2VLZXkAAAACAAAABWNvdW50AAAAB2Fzc2V0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANUlBEQmFsYW5jZUtleQIAAAABXwkAAlgAAAABBQAAAAdhc3NldElkAgAAAAFfCQABpAAAAAEFAAAABWNvdW50AQAAABhnZXRSUERDb250cmFjdEJhbGFuY2VLZXkAAAABAAAAB2Fzc2V0SWQJAAEsAAAAAgkAASwAAAACBQAAAA1SUERCYWxhbmNlS2V5AgAAAAFfCQACWAAAAAEFAAAAB2Fzc2V0SWQBAAAAD2dldFJQRFByb2ZpdEtleQAAAAEAAAAFY291bnQJAAEsAAAAAgkAASwAAAACBQAAAAxSUERQcm9maXRLZXkCAAAAAV8JAAGkAAAAAQUAAAAFY291bnQBAAAAFWdldE5ldXRyaW5vQmFsYW5jZUtleQAAAAEAAAAFb3duZXIJAAEsAAAAAgUAAAASTmV1dHJpbm9CYWxhbmNlS2V5BQAAAAVvd25lcgEAAAASZ2V0V2F2ZXNCYWxhbmNlS2V5AAAAAQAAAAVvd25lcgkAASwAAAACBQAAAA9XYXZlc0JhbGFuY2VLZXkFAAAABW93bmVyAQAAABhnZXRCYWxhbmNlVW5sb2NrQmxvY2tLZXkAAAABAAAABW93bmVyCQABLAAAAAIFAAAAFUJhbGFuY2VVbmxvY2tCbG9ja0tleQUAAAAFb3duZXIBAAAAFWdldEJsYWNrU3dhcm1QcmljZUtleQAAAAEAAAAFYmxvY2sJAAEsAAAAAgkAASwAAAACBQAAABJCbGFja1N3YXJtUHJpY2VLZXkCAAAAAV8JAAGkAAAAAQUAAAAFYmxvY2sBAAAAEmdldFByaWNlSGlzdG9yeUtleQAAAAEAAAAFYmxvY2sJAAEsAAAAAgkAASwAAAACBQAAAAhQcmljZUtleQIAAAABXwkAAaQAAAABBQAAAAVibG9jawEAAAAcZ2V0T3duZXJQdWJLZXlCeUxlYXNlVHhJZEtleQAAAAEAAAAEdHhJZAkAASwAAAACCQABLAAAAAIFAAAAEkFwcHJvdmVkTGVhc2VUeEtleQIAAAABXwUAAAAEdHhJZAEAAAAcZ2V0SXNMZWFzaW5nUHJvZml0VHhFeGlzdEtleQAAAAEAAAAEdHhJZAkAASwAAAACCQABLAAAAAIFAAAAGUlzTGVhc2luZ1Byb2ZpdFR4RXhpc3RLZXkCAAAAAV8FAAAABHR4SWQBAAAAEGdldE9yZGVyVG90YWxLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgUAAAANT3JkZXJUb3RhbEtleQUAAAAHb3JkZXJJZAEAAAAQZ2V0T3JkZXJPd25lcktleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACBQAAAA1PcmRlck93bmVyS2V5BQAAAAdvcmRlcklkAQAAABFnZXRPcmRlckhlaWdodEtleQAAAAEAAAAHb3JkZXJJZAkAASwAAAACBQAAAA5PcmRlckhlaWdodEtleQUAAAAHb3JkZXJJZAEAAAARZ2V0T3JkZXJTdGF0dXNLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgUAAAAOT3JkZXJTdGF0dXNLZXkFAAAAB29yZGVySWQBAAAAFmdldE9yZGVyRmlsbGVkVG90YWxLZXkAAAABAAAAB29yZGVySWQJAAEsAAAAAgUAAAATT3JkZXJGaWxsZWRUb3RhbEtleQUAAAAHb3JkZXJJZAAAAAAFcHJpY2UJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAACFByaWNlS2V5AQAAABZjb252ZXJ0TmV1dHJpbm9Ub1dhdmVzAAAAAQAAAAZhbW91bnQJAABpAAAAAgkAAGgAAAACCQAAaQAAAAIJAABoAAAAAgUAAAAGYW1vdW50AAAAAAAAAABkBQAAAAVwcmljZQUAAAAHV0FWRUxFVAUAAAANQ0VOVFNJTkRPTExBUgEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAEAAAAGYW1vdW50CQAAaQAAAAIJAABoAAAAAgkAAGkAAAACCQAAaAAAAAIFAAAABmFtb3VudAUAAAAFcHJpY2UAAAAAAAAAAGQFAAAADUNFTlRTSU5ET0xMQVIFAAAAB1dBVkVMRVQBAAAAFWNvbnZlcnROZXV0cmlub1RvQm9uZAAAAAEAAAAGYW1vdW50CQAAaQAAAAIFAAAABmFtb3VudAUAAAANQ0VOVFNJTkRPTExBUgEAAAAVY29udmVydEJvbmRUb05ldXRyaW5vAAAAAQAAAAZhbW91bnQJAABoAAAAAgUAAAAGYW1vdW50BQAAAA1DRU5UU0lORE9MTEFSAQAAABJjb252ZXJ0V2F2ZXNUb0JvbmQAAAABAAAABmFtb3VudAkBAAAAFWNvbnZlcnROZXV0cmlub1RvQm9uZAAAAAEJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAQUAAAAGYW1vdW50AAAAABFwcm92aWRpbmdJbnRlcnZhbAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAUUHJvdmlkaW5nSW50ZXJ2YWxLZXkAAAAAFGJsb2NrRXhwaXJlUHJvdmlkaW5nCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABdCbG9ja0V4cGlyZVByb3ZpZGluZ0tleQAAAAAOaXNQcmljZVBlbmRpbmcJAQAAAAxnZXRCb29sQnlLZXkAAAABBQAAABFJc1ByaWNlUGVuZGluZ0tleQAAAAAScGVyY2VudFByaWNlT2Zmc2V0CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAA5QcmljZU9mZnNldEtleQAAAAAMcnBkU3luY0luZGV4CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAAA9SUERTeW5jSW5kZXhLZXkAAAAADHZvdGVJbnRlcnZhbAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAPVm90ZUludGVydmFsS2V5AAAAAA9ibG9ja0V4cGlyZVZvdGUJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAEkJsb2NrRXhwaXJlVm90ZUtleQAAAAATYmFsYW5jZUxvY2tJbnRlcnZhbAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQUAAAAWQmFsYW5jZUxvY2tJbnRlcnZhbEtleQAAAAAJaXNCbG9ja2VkCQEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQUAAAAMSXNCbG9ja2VkS2V5AAAAABJtaW5XYXZlc1N3YXBBbW91bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEFAAAAFU1pbldhdmVzU3dhcEFtb3VudEtleQAAAAAVbWluTmV1dHJpbm9Td2FwQW1vdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABBQAAABhNaW5OZXV0cmlub1N3YXBBbW91bnRLZXkAAAAAD25ldXRyaW5vQXNzZXRJZAkAAlkAAAABCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABJOZXV0cmlub0Fzc2V0SWRLZXkAAAAAD2F1Y3Rpb25Db250cmFjdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAASQXVjdGlvbkNvbnRyYWN0S2V5AAAAAAtycGRDb250cmFjdAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAOUlBEQ29udHJhY3RLZXkAAAAAB3Jlc2VydmUJAQAAAAx3YXZlc0JhbGFuY2UAAAABBQAAAAR0aGlzAAAAAAlvcmRlcmJvb2sJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAADE9yZGVyYm9va0tleQAAAAALYm9uZEFzc2V0SWQJAAJZAAAAAQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAOQm9uZEFzc2V0SWRLZXkAAAAACmJvbmRTdXBwbHkEAAAABGluZm8JAQAAAAdleHRyYWN0AAAAAQkAA+wAAAABBQAAAAtib25kQXNzZXRJZAkAAGUAAAACCAUAAAAEaW5mbwAAAAhxdWFudGl0eQkAA+sAAAACBQAAAAR0aGlzBQAAAAtib25kQXNzZXRJZAAAAAAObmV1dHJpbm9TdXBwbHkEAAAABGluZm8JAQAAAAdleHRyYWN0AAAAAQkAA+wAAAABBQAAAA9uZXV0cmlub0Fzc2V0SWQJAABlAAAAAggFAAAABGluZm8AAAAIcXVhbnRpdHkJAAPrAAAAAgUAAAAEdGhpcwUAAAAPbmV1dHJpbm9Bc3NldElkAAAAAAdzdXJwbHVzCQAAZQAAAAIJAQAAABZjb252ZXJ0V2F2ZXNUb05ldXRyaW5vAAAAAQUAAAAHcmVzZXJ2ZQUAAAAObmV1dHJpbm9TdXBwbHkAAAAACW9yYWNsZU9uZQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADGdldE9yYWNsZUtleQAAAAEAAAAAAAAAAAAAAAAACW9yYWNsZVR3bwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAADGdldE9yYWNsZUtleQAAAAEAAAAAAAAAAAEAAAAAC29yYWNsZVRocmVlCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAMZ2V0T3JhY2xlS2V5AAAAAQAAAAAAAAAAAgAAAAAIYWRtaW5PbmUJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAAtnZXRBZG1pbktleQAAAAEAAAAAAAAAAAAAAAAACGFkbWluVHdvCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAALZ2V0QWRtaW5LZXkAAAABAAAAAAAAAAABAAAAAAphZG1pblRocmVlCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAALZ2V0QWRtaW5LZXkAAAABAAAAAAAAAAACAQAAABlnZXRPd25lclB1YktleUJ5TGVhc2VUeElkAAAAAQAAAAVvd25lcgkBAAAAGGdldFN0cmluZ0J5QWRkcmVzc0FuZEtleQAAAAIFAAAAC3JwZENvbnRyYWN0CQEAAAAcZ2V0T3duZXJQdWJLZXlCeUxlYXNlVHhJZEtleQAAAAEFAAAABW93bmVyAQAAABVnZXRSUERDb250cmFjdEJhbGFuY2UAAAABAAAAB2Fzc2V0SWQJAQAAABhnZXROdW1iZXJCeUFkZHJlc3NBbmRLZXkAAAACBQAAAAtycGRDb250cmFjdAkBAAAAGGdldFJQRENvbnRyYWN0QmFsYW5jZUtleQAAAAEFAAAAB2Fzc2V0SWQBAAAAFmlzTGVhc2luZ1Byb2ZpdFR4RXhpc3QAAAABAAAABHR4SWQJAQAAAAxnZXRCb29sQnlLZXkAAAABCQEAAAAcZ2V0SXNMZWFzaW5nUHJvZml0VHhFeGlzdEtleQAAAAEFAAAABHR4SWQBAAAAD2dldEFkbWluVm90ZUludAAAAAEAAAAFb3duZXIDCQEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQkBAAAAD2dldEFkbWluVm90ZUtleQAAAAEFAAAABW93bmVyAAAAAAAAAAABAAAAAAAAAAAAAQAAABFnZXRBZG1pblZvdGVQcmljZQAAAAEAAAAFb3duZXIJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABRnZXRBZG1pblZvdGVQcmljZUtleQAAAAEFAAAABW93bmVyAQAAAA9pc09yYWNsZVByb3ZpZGUAAAABAAAABW93bmVyCQEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQkBAAAAFWdldE9yYWNsZUlzUHJvdmlkZUtleQAAAAEFAAAABW93bmVyAQAAABJpc09yYWNsZVByb3ZpZGVJbnQAAAABAAAABW93bmVyAwkBAAAAD2lzT3JhY2xlUHJvdmlkZQAAAAEFAAAABW93bmVyAAAAAAAAAAABAAAAAAAAAAAAAQAAABVnZXRPcmFjbGVQcm92aWRlUHJpY2UAAAABAAAABW93bmVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0T3JhY2xlUHJvdmlkZVByaWNlS2V5AAAAAQUAAAAFb3duZXIBAAAAD2dldFdhdmVzQmFsYW5jZQAAAAEAAAAFb3duZXIJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABJnZXRXYXZlc0JhbGFuY2VLZXkAAAABBQAAAAVvd25lcgEAAAASZ2V0TmV1dHJpbm9CYWxhbmNlAAAAAQAAAAVvd25lcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFWdldE5ldXRyaW5vQmFsYW5jZUtleQAAAAEFAAAABW93bmVyAQAAABVnZXRVbmxvY2tCYWxhbmNlQmxvY2sAAAABAAAABW93bmVyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0QmFsYW5jZVVubG9ja0Jsb2NrS2V5AAAAAQUAAAAFb3duZXIBAAAADWdldE9yZGVyVG90YWwAAAABAAAAAmlkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAQZ2V0T3JkZXJUb3RhbEtleQAAAAEFAAAAAmlkAQAAAA1nZXRPcmRlck93bmVyAAAAAQAAAAJpZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGdldE9yZGVyT3duZXJLZXkAAAABBQAAAAJpZAEAAAATZ2V0T3JkZXJGaWxsZWRUb3RhbAAAAAEAAAACaWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZnZXRPcmRlckZpbGxlZFRvdGFsS2V5AAAAAQUAAAACaWQBAAAADGdldFJQRFByb2ZpdAAAAAEAAAAFY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA9nZXRSUERQcm9maXRLZXkAAAABBQAAAAVjb3VudAEAAAATZ2V0T3JkZXJFbGVtZW50QnlJZAAAAAEAAAACaWQJAAEsAAAAAgUAAAACaWQFAAAAD0xJU1RTUExJVFNZTUJPTAEAAAAIYWRkT3JkZXIAAAABAAAAB29yZGVySWQJAAEsAAAAAgUAAAAJb3JkZXJib29rCQEAAAATZ2V0T3JkZXJFbGVtZW50QnlJZAAAAAEFAAAAB29yZGVySWQBAAAACWRyb3BPcmRlcgAAAAEAAAAHb3JkZXJJZAQAAAAFcGFydHMJAAS1AAAAAgUAAAAJb3JkZXJib29rCQEAAAATZ2V0T3JkZXJFbGVtZW50QnlJZAAAAAEFAAAAB29yZGVySWQJAAEsAAAAAgkAAZEAAAACBQAAAAVwYXJ0cwAAAAAAAAAAAAkAAZEAAAACBQAAAAVwYXJ0cwAAAAAAAAAAAQAAAA0AAAABaQEAAAAPc2V0Q3VycmVudFByaWNlAAAAAQAAAAhuZXdQcmljZQQAAAAHYWNjb3VudAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAE3ByaWNlUHJvdmlkaW5nQ291bnQJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIJAQAAABJpc09yYWNsZVByb3ZpZGVJbnQAAAABBQAAAAlvcmFjbGVPbmUJAQAAABJpc09yYWNsZVByb3ZpZGVJbnQAAAABBQAAAAlvcmFjbGVUd28JAQAAABJpc09yYWNsZVByb3ZpZGVJbnQAAAABBQAAAAtvcmFjbGVUaHJlZQAAAAAAAAAAAQMFAAAACWlzQmxvY2tlZAkAAAIAAAABAgAAABNjb250cmFjdCBpcyBibG9ja2VkAwMDCQEAAAACIT0AAAACBQAAAAdhY2NvdW50BQAAAAlvcmFjbGVPbmUJAQAAAAIhPQAAAAIFAAAAB2FjY291bnQFAAAACW9yYWNsZVR3bwcJAQAAAAIhPQAAAAIFAAAAB2FjY291bnQFAAAAC29yYWNsZVRocmVlBwkAAAIAAAABAgAAABFwZXJtaXNzaW9uIGRlbmllZAMDCQAAZwAAAAIFAAAAFGJsb2NrRXhwaXJlUHJvdmlkaW5nBQAAAAZoZWlnaHQJAQAAAA9pc09yYWNsZVByb3ZpZGUAAAABBQAAAAdhY2NvdW50BwkAAAIAAAABAgAAABlwcmljZSBpcyBhbHJlYWR5IHByb3ZpZGVkAwMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAABRibG9ja0V4cGlyZVByb3ZpZGluZwUAAAAOaXNQcmljZVBlbmRpbmcHCQAAAgAAAAECAAAAGHVzZSBmaW5pbGl6ZUN1cnJlbnRQcmljZQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGGdldE9yYWNsZVByb3ZpZGVQcmljZUtleQAAAAEFAAAAB2FjY291bnQFAAAACG5ld1ByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABdCbG9ja0V4cGlyZVByb3ZpZGluZ0tleQMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAABRibG9ja0V4cGlyZVByb3ZpZGluZwkAAGQAAAACBQAAAAZoZWlnaHQFAAAAEXByb3ZpZGluZ0ludGVydmFsBQAAABRibG9ja0V4cGlyZVByb3ZpZGluZwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldE9yYWNsZUlzUHJvdmlkZUtleQAAAAEFAAAACW9yYWNsZU9uZQMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAABRibG9ja0V4cGlyZVByb3ZpZGluZwcJAQAAAA9pc09yYWNsZVByb3ZpZGUAAAABBQAAAAlvcmFjbGVPbmUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRPcmFjbGVJc1Byb3ZpZGVLZXkAAAABBQAAAAlvcmFjbGVUd28DCQAAZgAAAAIFAAAABmhlaWdodAUAAAAUYmxvY2tFeHBpcmVQcm92aWRpbmcHCQEAAAAPaXNPcmFjbGVQcm92aWRlAAAAAQUAAAAJb3JhY2xlVHdvCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0T3JhY2xlSXNQcm92aWRlS2V5AAAAAQUAAAALb3JhY2xlVGhyZWUDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAUYmxvY2tFeHBpcmVQcm92aWRpbmcHCQEAAAAPaXNPcmFjbGVQcm92aWRlAAAAAQUAAAALb3JhY2xlVGhyZWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRPcmFjbGVJc1Byb3ZpZGVLZXkAAAABBQAAAAdhY2NvdW50BgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAARSXNQcmljZVBlbmRpbmdLZXkDAwkAAGcAAAACBQAAABRibG9ja0V4cGlyZVByb3ZpZGluZwUAAAAGaGVpZ2h0CQAAZwAAAAIFAAAAE3ByaWNlUHJvdmlkaW5nQ291bnQAAAAAAAAAAAIHBgUAAAAOaXNQcmljZVBlbmRpbmcFAAAAA25pbAAAAAFpAQAAABRmaW5pbGl6ZUN1cnJlbnRQcmljZQAAAAAEAAAAB2FjY291bnQJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABNwcmljZVByb3ZpZGluZ0NvdW50CQAAZAAAAAIJAABkAAAAAgkBAAAAEmlzT3JhY2xlUHJvdmlkZUludAAAAAEFAAAACW9yYWNsZU9uZQkBAAAAEmlzT3JhY2xlUHJvdmlkZUludAAAAAEFAAAACW9yYWNsZVR3bwkBAAAAEmlzT3JhY2xlUHJvdmlkZUludAAAAAEFAAAAC29yYWNsZVRocmVlBAAAAAhuZXdQcmljZQkAAGkAAAACCQAAZAAAAAIJAABkAAAAAgkAAGgAAAACCQEAAAAVZ2V0T3JhY2xlUHJvdmlkZVByaWNlAAAAAQUAAAAJb3JhY2xlT25lCQEAAAASaXNPcmFjbGVQcm92aWRlSW50AAAAAQUAAAAJb3JhY2xlT25lCQAAaAAAAAIJAQAAABVnZXRPcmFjbGVQcm92aWRlUHJpY2UAAAABBQAAAAlvcmFjbGVUd28JAQAAABJpc09yYWNsZVByb3ZpZGVJbnQAAAABBQAAAAlvcmFjbGVUd28JAABoAAAAAgkBAAAAFWdldE9yYWNsZVByb3ZpZGVQcmljZQAAAAEFAAAAC29yYWNsZVRocmVlCQEAAAASaXNPcmFjbGVQcm92aWRlSW50AAAAAQUAAAALb3JhY2xlVGhyZWUFAAAAE3ByaWNlUHJvdmlkaW5nQ291bnQDBQAAAAlpc0Jsb2NrZWQJAAACAAAAAQIAAAATY29udHJhY3QgaXMgYmxvY2tlZAMD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CAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAZhbW91bnQJAQAAABZjb252ZXJ0TmV1dHJpbm9Ub1dhdmVzAAAAAQgFAAAAA3BtdAAAAAZhbW91bnQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABJnZXRXYXZlc0JhbGFuY2VLZXkAAAABBQAAAAdhY2NvdW50CQAAZAAAAAIJAQAAAA9nZXRXYXZlc0JhbGFuY2UAAAABBQAAAAdhY2NvdW50BQAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRCYWxhbmNlVW5sb2NrQmxvY2tLZXkAAAABBQAAAAdhY2NvdW50CQAAZAAAAAIFAAAABmhlaWdodAUAAAATYmFsYW5jZUxvY2tJbnRlcnZhbAUAAAADbmlsAAAAAWkBAAAACHdpdGhkcmF3AAAAAQAAAAdhY2NvdW50AwkAAGYAAAACCQEAAAAVZ2V0VW5sb2NrQmFsYW5jZUJsb2NrAAAAAQUAAAAHYWNjb3VudAUAAAAGaGVpZ2h0CQAAAgAAAAECAAAAJHdhaXQgYSBjb3VwbGUgb2YgYmxvY2tzIGZvciB3aXRoZHJhdwkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABJnZXRXYXZlc0JhbGFuY2VLZXkAAAABBQAAAAdhY2NvdW50AAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0TmV1dHJpbm9CYWxhbmNlS2V5AAAAAQUAAAAHYWNjb3VudAAAAAAAAAAAAAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWNjb3VudAkBAAAAEmdldE5ldXRyaW5vQmFsYW5jZQAAAAEFAAAAB2FjY291bnQFAAAAD25ldXRyaW5vQXNzZXRJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEA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ZXIAAAABBQAAAAdvcmRlcklkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0T3JkZXJTdGF0dXNLZXkAAAABBQAAAAdvcmRlcklkBQAAAAhDQU5DRUxFRAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50BQAAAAtib25kQXNzZXRJZAUAAAADbmlsAAAAAWkBAAAAD2FkZExlYXNpbmdDaGVjawAAAAEAAAACaWQEAAAAAnR4CQEAAAAFdmFsdWUAAAABCQAD7gAAAAEJAAJZAAAAAQUAAAACaWQDAwkBAAAAAiE9AAAAAggFAAAAAnR4AAAACXJlY2lwaWVudAkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAtycGRDb250cmFjdAYJAQAAABZpc0xlYXNpbmdQcm9maXRUeEV4aXN0AAAAAQUAAAACaWQJAAACAAAAAQIAAAAWaW52YWxpZCB0cmFuc2FjdGlvbiBpZAQAAAAGYW1vdW50CQEAAAAWY29udmVydFdhdmVzVG9OZXV0cmlubwAAAAEIBQAAAAJ0eAAAAAZhbW91bnQEAAAAD25ld1JwZFN5bmNJbmRleAkAAGQAAAACBQAAAAxycGRTeW5jSW5kZXgAAAAAAAAAAAEJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA9SUERTeW5jSW5kZXhLZXkFAAAAD25ld1JwZFN5bmNJbmRleAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldFJQRFByb2ZpdEtleQAAAAEFAAAADHJwZFN5bmNJbmRleAUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAgZ2V0UlBEU25hcHNob3RDb250cmFjdEJhbGFuY2VLZXkAAAACBQAAAAxycGRTeW5jSW5kZXgFAAAAD25ldXRyaW5vQXNzZXRJZAkBAAAAFWdldFJQRENvbnRyYWN0QmFsYW5jZQAAAAEFAAAAD25ldXRyaW5vQXNzZXRJZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAIGdldFJQRFNuYXBzaG90Q29udHJhY3RCYWxhbmNlS2V5AAAAAgUAAAAMcnBkU3luY0luZGV4BQAAAAtib25kQXNzZXRJZAkBAAAAFWdldFJQRENvbnRyYWN0QmFsYW5jZQAAAAEFAAAAC2JvbmRBc3NldElkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAcZ2V0SXNMZWFzaW5nUHJvZml0VHhFeGlzdEtleQAAAAEFAAAAAmlkBgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAALcnBkQ29udHJhY3QFAAAABmFtb3VudAUAAAAPbmV1dHJpbm9Bc3NldElkBQAAAANuaWwAAAABaQEAAAAMZXhlY3V0ZU9yZGVyAAAAAAQAAAAHb3JkZXJJZAkAAZEAAAACCQAEtQAAAAIFAAAACW9yZGVyYm9vawUAAAAPTElTVFNQTElUU1lNQk9MAAAAAAAAAAAABAAAAApvcmRlclRvdGFsCQEAAAANZ2V0T3JkZXJUb3RhbAAAAAEFAAAAB29yZGVySWQEAAAACm9yZGVyT3duZXIJAQAAAA1nZXRPcmRlck93bmVyAAAAAQUAAAAHb3JkZXJJZAQAAAALZmlsbGVkVG90YWwJAQAAABNnZXRPcmRlckZpbGxlZFRvdGFsAAAAAQUAAAAHb3JkZXJJZAMFAAAACWlzQmxvY2tlZAkAAAIAAAABAgAAABNjb250cmFjdCBpcyBibG9ja2VkAwkAAGcAAAACAAAAAAAAAAAABQAAAAdzdXJwbHVzCQAAAgAAAAECAAAAGXN1cnBsdXMgaXMgbGVzcyB0aGFuIHplcm8DCQAAAAAAAAIFAAAACm9yZGVyT3duZXICAAAAAAQAAAAPbmV3UnBkU3luY0luZGV4CQAAZAAAAAIFAAAADHJwZFN5bmNJbmRleAAAAAAAAAAAAQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD1JQRFN5bmNJbmRleEtleQUAAAAPbmV3UnBkU3luY0luZGV4CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2V0UlBEUHJvZml0S2V5AAAAAQUAAAAMcnBkU3luY0luZGV4BQAAAAdzdXJwbHVzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAgZ2V0UlBEU25hcHNob3RDb250cmFjdEJhbGFuY2VLZXkAAAACBQAAAAxycGRTeW5jSW5kZXgFAAAAD25ldXRyaW5vQXNzZXRJZAkBAAAAFWdldFJQRENvbnRyYWN0QmFsYW5jZQAAAAEFAAAAD25ldXRyaW5vQXNzZXRJZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAIGdldFJQRFNuYXBzaG90Q29udHJhY3RCYWxhbmNlS2V5AAAAAgUAAAAMcnBkU3luY0luZGV4BQAAAAtib25kQXNzZXRJZAkBAAAAFWdldFJQRENvbnRyYWN0QmFsYW5jZQAAAAEFAAAAC2JvbmRBc3NldElkBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAtycGRDb250cmFjdAUAAAAHc3VycGx1cwUAAAAPbmV1dHJpbm9Bc3NldElkBQAAAANuaWwEAAAABmFtb3VudAkAAGUAAAACBQAAAApvcmRlclRvdGFsBQAAAAtmaWxsZWRUb3RhbAQAAAALc3VycGx1c0JvbmQJAQAAABVjb252ZXJ0TmV1dHJpbm9Ub0JvbmQAAAABBQAAAAdzdXJwbHVzBAAAAAZzdGF0dXMDCQAAZwAAAAIFAAAAC3N1cnBsdXNCb25kBQAAAAZhbW91bnQFAAAABkZJTExFRAUAAAADTkVXBAAAAA5uZXdGaWxsZWRUb3RhbAMJAABnAAAAAgUAAAALc3VycGx1c0JvbmQFAAAABmFtb3VudAUAAAAKb3JkZXJUb3RhbAUAAAALc3VycGx1c0JvbmQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAxPcmRlcmJvb2tLZXkJAQAAAAlkcm9wT3JkZXIAAAABBQAAAAdvcmRlcklkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAWZ2V0T3JkZXJGaWxsZWRUb3RhbEtleQAAAAEFAAAAB29yZGVySWQJAABkAAAAAgUAAAALZmlsbGVkVG90YWwFAAAADm5ld0ZpbGxlZFRvdGFsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0T3JkZXJTdGF0dXNLZXkAAAABBQAAAAdvcmRlcklkBQAAAAZzdGF0dXMFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAACm9yZGVyT3duZXIJAQAAABVjb252ZXJ0Qm9uZFRvTmV1dHJpbm8AAAABBQAAAA5uZXdGaWxsZWRUb3RhbAUAAAAPbmV1dHJpbm9Bc3NldElkBQAAAANuaWwAAAABaQEAAAAIdHJhbnNmZXIAAAABAAAAB2FjY291bnQEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACBjYW4gdXNlIHdhdmVzIG9ubHkgYXQgdGhlIG1vbWVudAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FjY291bnQIBQAAAANwbXQAAAAGYW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAQTGVhc2VUcmFuc2FjdGlvbgQAAAAHbGVhc2VUeAUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAJAAJZAAAAAQkBAAAAGWdldE93bmVyUHViS2V5QnlMZWFzZVR4SWQAAAABCQACWAAAAAEIBQAAAAdsZWFzZVR4AAAAAmlkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABZMZWFzZUNhbmNlbFRyYW5zYWN0aW9uBAAAAAl1bmxlYXNlVHgFAAAAByRtYXRjaDAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACQACWQAAAAEJAQAAABlnZXRPd25lclB1YktleUJ5TGVhc2VUeElkAAAAAQkAAlgAAAABCAUAAAAJdW5sZWFzZVR4AAAAB2xlYXNlSWQJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5F4Gytw==", "chainId": 84, "height": 710719, "spentComplexity": 0 } View: original | compacted Prev: J28N8ukZMQ82gAEvaPjJiVtKJT5RMr96uCTGFoYY6dMx Next: 44YpwBoTQpDScBqHTXBfTsNjjdmYNksj3S9hwvje94Mk Diff:
OldNewDifferences
4545 }
4646
4747
48-let i = "_"
49-
50-let j = "+"
51-
52-let k = 100000000
53-
54-let l = "canceled"
55-
56-let m = "new"
57-
58-let n = "filled"
59-
60-let o = "neutrino_asset_id"
61-
62-let p = "bond_asset_id"
63-
64-let q = "auction_contract"
65-
66-let r = "rpd_contract"
67-
68-let s = "balance_lock_interval"
69-
70-let t = "vote_interval"
71-
72-let u = "min_swap_amount"
73-
74-let v = "price_offset"
75-
76-let w = "providing_interval"
77-
78-let x = "price"
79-
80-let y = "neutrino_"
81-
82-let z = "waves_"
83-
84-let A = "balance_block_"
85-
86-let B = "orderbook"
87-
88-let C = "order_total_"
89-
90-let D = "order_owner_"
91-
92-let E = "order_height_"
93-
94-let F = "order_filled_total_"
95-
96-let G = "order_status_"
97-
98-let H = "rpd_sync_index"
99-
100-let I = "rpd_profit"
101-
102-let J = "rpd_balance"
103-
104-let K = "is_blocked"
105-
106-let L = "black_swarm_price"
107-
108-let M = "admin_vote_"
109-
110-let N = "admin_vote_price_"
111-
112-let O = "vote_expire_block"
113-
114-let P = "admin_"
115-
116-let Q = "is_pending_price"
117-
118-let R = "oracle_"
119-
120-let S = "oracle_is_provide_"
121-
122-let T = "oracle_price_provide_"
123-
124-let U = "providing_expire_block"
125-
126-func V (W) = (P + toString(W))
48+func i (h,b) = {
49+ let c = getString(this, b)
50+ if ($isInstanceOf(c, "String"))
51+ then {
52+ let d = c
53+ d
54+ }
55+ else ""
56+ }
12757
12858
129-func X (Y) = (M + Y)
59+let j = "_"
60+
61+let k = "+"
62+
63+let l = 100000000
64+
65+let m = 100
66+
67+let n = "canceled"
68+
69+let o = "new"
70+
71+let p = "filled"
72+
73+let q = "neutrino_asset_id"
74+
75+let r = "bond_asset_id"
76+
77+let s = "auction_contract"
78+
79+let t = "rpd_contract"
80+
81+let u = "balance_lock_interval"
82+
83+let v = "vote_interval"
84+
85+let w = "min_waves_swap_amount"
86+
87+let x = "min_neutrino_swap_amount"
88+
89+let y = "price_offset"
90+
91+let z = "providing_interval"
92+
93+let A = "price"
94+
95+let B = "neutrino_"
96+
97+let C = "waves_"
98+
99+let D = "balance_block_"
100+
101+let E = "orderbook"
102+
103+let F = "order_total_"
104+
105+let G = "order_owner_"
106+
107+let H = "order_height_"
108+
109+let I = "order_filled_total_"
110+
111+let J = "order_status_"
112+
113+let K = "rpd_sync_index"
114+
115+let L = "rpd_profit"
116+
117+let M = "rpd_balance"
118+
119+let N = "is_blocked"
120+
121+let O = "black_swarm_price"
122+
123+let P = "admin_vote_"
124+
125+let Q = "admin_vote_price_"
126+
127+let R = "vote_expire_block"
128+
129+let S = "admin_"
130+
131+let T = "is_pending_price"
132+
133+let U = "oracle_"
134+
135+let V = "oracle_is_provide_"
136+
137+let W = "oracle_price_provide_"
138+
139+let X = "providing_expire_block"
140+
141+let Y = "leasetx"
142+
143+let Z = "is_leasing_profit"
144+
145+func aa (ab) = (S + toString(ab))
130146
131147
132-func Z (Y) = (N + Y)
148+func ac (ad) = (P + ad)
133149
134150
135-func aa (W) = (R + toString(W))
151+func ae (ad) = (Q + ad)
136152
137153
138-func ab (Y) = (S + Y)
154+func af (ab) = (U + toString(ab))
139155
140156
141-func ac (Y) = (T + Y)
157+func ag (ad) = (V + ad)
142158
143159
144-func ad (W,ae) = ((((J + "_") + toBase58String(ae)) + "_") + toString(W))
160+func ah (ad) = (W + ad)
145161
146162
147-func af (ae) = ((J + "_") + toBase58String(ae))
163+func ai (ab,aj) = ((((M + "_") + toBase58String(aj)) + "_") + toString(ab))
148164
149165
150-func ag (W) = ((I + "_") + toString(W))
166+func ak (aj) = ((M + "_") + toBase58String(aj))
151167
152168
153-func ah (Y) = (y + Y)
169+func al (ab) = ((L + "_") + toString(ab))
154170
155171
156-func ai (Y) = (z + Y)
172+func am (ad) = (B + ad)
157173
158174
159-func aj (Y) = (A + Y)
175+func an (ad) = (C + ad)
160176
161177
162-func ak (al) = ((L + "_") + toString(al))
178+func ao (ad) = (D + ad)
163179
164180
165-func am (al) = ((x + "_") + toString(al))
181+func ap (aq) = ((O + "_") + toString(aq))
166182
167183
168-func an (ao) = (C + ao)
184+func ar (aq) = ((A + "_") + toString(aq))
169185
170186
171-func ap (ao) = (D + ao)
187+func as (at) = ((Y + "_") + at)
172188
173189
174-func aq (ao) = (E + ao)
190+func au (at) = ((Z + "_") + at)
175191
176192
177-func ar (ao) = (G + ao)
193+func av (aw) = (F + aw)
178194
179195
180-func as (ao) = (F + ao)
196+func ax (aw) = (G + aw)
181197
182198
183-let at = a(x)
184-
185-func au (av) = ((av * 100) / at)
199+func ay (aw) = (H + aw)
186200
187201
188-func aw (av) = ((av * at) / 100)
202+func az (aw) = (J + aw)
189203
190204
191-func ax (av) = (av / k)
205+func aA (aw) = (I + aw)
192206
193207
194-func ay (av) = (av * k)
208+let aB = a(A)
209+
210+func aC (aD) = ((((aD * 100) / aB) * l) / m)
195211
196212
197-func az (av) = ax(aw(av))
213+func aE (aD) = ((((aD * aB) / 100) * m) / l)
198214
199215
200-let aA = a(w)
216+func aF (aD) = (aD / m)
201217
202-let aB = a(U)
203218
204-let aC = f(Q)
219+func aG (aD) = (aD * m)
205220
206-let aD = a(v)
207221
208-let aE = a(H)
222+func aH (aD) = aF(aE(aD))
209223
210-let aF = a(t)
211224
212-let aG = a(O)
225+let aI = a(z)
213226
214-let aH = a(s)
227+let aJ = a(X)
215228
216-let aI = f(K)
229+let aK = f(T)
217230
218-let aJ = a(u)
231+let aL = a(y)
219232
220-let aK = fromBase58String(e(o))
233+let aM = a(K)
221234
222-let aL = e(q)
235+let aN = a(v)
223236
224-let aM = e(r)
237+let aO = a(R)
225238
226-let aN = wavesBalance(this)
239+let aP = a(u)
227240
228-let aO = e(B)
241+let aQ = f(N)
229242
230-let aP = fromBase58String(e(p))
243+let aR = a(w)
231244
232-let aQ = {
233- let aR = extract(assetInfo(aP))
234- (aR.quantity - assetBalance(this, aP))
245+let aS = a(x)
246+
247+let aT = fromBase58String(e(q))
248+
249+let aU = e(s)
250+
251+let aV = e(t)
252+
253+let aW = wavesBalance(this)
254+
255+let aX = e(E)
256+
257+let aY = fromBase58String(e(r))
258+
259+let aZ = {
260+ let ba = extract(assetInfo(aY))
261+ (ba.quantity - assetBalance(this, aY))
235262 }
236263
237-let aS = {
238- let aR = extract(assetInfo(aK))
239- (aR.quantity - assetBalance(this, aK))
264+let bb = {
265+ let ba = extract(assetInfo(aT))
266+ (ba.quantity - assetBalance(this, aT))
240267 }
241268
242-let aT = (aw(aN) - aS)
269+let bc = (aE(aW) - bb)
243270
244-let aU = e(aa(0))
271+let bd = e(af(0))
245272
246-let aV = e(aa(1))
273+let be = e(af(1))
247274
248-let aW = e(aa(2))
275+let bf = e(af(2))
249276
250-let aX = e(V(0))
277+let bg = e(aa(0))
251278
252-let aY = e(V(1))
279+let bh = e(aa(1))
253280
254-let aZ = e(V(2))
281+let bi = e(aa(2))
255282
256-func ba (ae) = g(aM, af(ae))
283+func bj (ad) = i(aV, as(ad))
257284
258285
259-func bb (Y) = if (f(X(Y)))
286+func bk (aj) = g(aV, ak(aj))
287+
288+
289+func bl (at) = f(au(at))
290+
291+
292+func bm (ad) = if (f(ac(ad)))
260293 then 1
261294 else 0
262295
263296
264-func bc (Y) = a(Z(Y))
297+func bn (ad) = a(ae(ad))
265298
266299
267-func bd (Y) = f(ab(Y))
300+func bo (ad) = f(ag(ad))
268301
269302
270-func be (Y) = if (bd(Y))
303+func bp (ad) = if (bo(ad))
271304 then 1
272305 else 0
273306
274307
275-func bf (Y) = a(ac(Y))
308+func bq (ad) = a(ah(ad))
276309
277310
278-func bg (Y) = a(ai(Y))
311+func br (ad) = a(an(ad))
279312
280313
281-func bh (Y) = a(ah(Y))
314+func bs (ad) = a(am(ad))
282315
283316
284-func bi (Y) = a(aj(Y))
317+func bt (ad) = a(ao(ad))
285318
286319
287-func bj (bk) = a(an(bk))
320+func bu (bv) = a(av(bv))
288321
289322
290-func bl (bk) = e(ap(bk))
323+func bw (bv) = e(ax(bv))
291324
292325
293-func bm (bk) = a(as(bk))
326+func bx (bv) = a(aA(bv))
294327
295328
296-func bn (W) = a(ag(W))
329+func by (ab) = a(al(ab))
297330
298331
299-func bo (bk) = (bk + i)
332+func bz (bv) = (bv + j)
300333
301334
302-func bp (ao) = (aO + bo(ao))
335+func bA (aw) = (aX + bz(aw))
303336
304337
305-func bq (ao) = {
306- let br = split(aO, bo(ao))
307- (br[0] + br[1])
338+func bB (aw) = {
339+ let bC = split(aX, bz(aw))
340+ (bC[0] + bC[1])
308341 }
309342
310343
311-@Callable(bs)
312-func setCurrentPrice (bt) = {
313- let bu = toString(bs.caller)
314- let bv = (((be(aU) + be(aV)) + be(aW)) + 1)
315- if (aI)
344+@Callable(bD)
345+func setCurrentPrice (bE) = {
346+ let bF = toString(bD.caller)
347+ let bG = (((bp(bd) + bp(be)) + bp(bf)) + 1)
348+ if (aQ)
316349 then throw("contract is blocked")
317- else if (if (if ((bu != aU))
318- then (bu != aV)
350+ else if (if (if ((bF != bd))
351+ then (bF != be)
319352 else false)
320- then (bu != aW)
353+ then (bF != bf)
321354 else false)
322355 then throw("permission denied")
323- else if (if ((aB >= height))
324- then bd(bu)
356+ else if (if ((aJ >= height))
357+ then bo(bF)
325358 else false)
326359 then throw("price is already provided")
327- else if (if ((height > aB))
328- then aC
360+ else if (if ((height > aJ))
361+ then aK
329362 else false)
330363 then throw("use finilizeCurrentPrice")
331- else WriteSet([DataEntry(ac(bu), bt), DataEntry(U, if ((height > aB))
332- then (height + aA)
333- else aB), DataEntry(ab(aU), if ((height > aB))
364+ else WriteSet([DataEntry(ah(bF), bE), DataEntry(X, if ((height > aJ))
365+ then (height + aI)
366+ else aJ), DataEntry(ag(bd), if ((height > aJ))
334367 then false
335- else bd(aU)), DataEntry(ab(aV), if ((height > aB))
368+ else bo(bd)), DataEntry(ag(be), if ((height > aJ))
336369 then false
337- else bd(aV)), DataEntry(ab(aW), if ((height > aB))
370+ else bo(be)), DataEntry(ag(bf), if ((height > aJ))
338371 then false
339- else bd(aW)), DataEntry(ab(bu), true), DataEntry(Q, if (if ((aB >= height))
340- then (bv >= 2)
372+ else bo(bf)), DataEntry(ag(bF), true), DataEntry(T, if (if ((aJ >= height))
373+ then (bG >= 2)
341374 else false)
342375 then true
343- else aC)])
376+ else aK)])
344377 }
345378
346379
347380
348-@Callable(bs)
381+@Callable(bD)
349382 func finilizeCurrentPrice () = {
350- let bu = toString(bs.caller)
351- let bv = ((be(aU) + be(aV)) + be(aW))
352- let bt = ((((bf(aU) * be(aU)) + (bf(aV) * be(aV))) + (bf(aW) * be(aW))) / bv)
353- if (aI)
383+ let bF = toString(bD.caller)
384+ let bG = ((bp(bd) + bp(be)) + bp(bf))
385+ let bE = ((((bq(bd) * bp(bd)) + (bq(be) * bp(be))) + (bq(bf) * bp(bf))) / bG)
386+ if (aQ)
354387 then throw("contract is blocked")
355- else if (if (if ((bu != aU))
356- then (bu != aV)
388+ else if (if (if ((bF != bd))
389+ then (bF != be)
357390 else false)
358- then (bu != aW)
391+ then (bF != bf)
359392 else false)
360393 then throw("permission denied")
361- else if (if (!(aC))
394+ else if (if (!(aK))
362395 then true
363- else (aB >= height))
396+ else (aJ >= height))
364397 then throw("wait for the end of the price providing")
365- else if ((2 > bv))
398+ else if ((2 > bG))
366399 then throw("2/3 oracles need to set a price")
367- else if (if ((bt >= (at + ((at * aD) / 100))))
400+ else if (if ((bE >= (aB + ((aB * aL) / 100))))
368401 then true
369- else ((at - ((at * aD) / 100)) >= bt))
370- then WriteSet([DataEntry(K, true), DataEntry(ak(height), bt)])
371- else WriteSet([DataEntry(x, bt), DataEntry(am(height), bt), DataEntry(Q, false)])
402+ else ((aB - ((aB * aL) / 100)) >= bE))
403+ then WriteSet([DataEntry(N, true), DataEntry(ap(height), bE)])
404+ else WriteSet([DataEntry(A, bE), DataEntry(ar(height), bE), DataEntry(T, false)])
372405 }
373406
374407
375408
376-@Callable(bs)
377-func adminUnlock (bt) = {
378- let bu = toString(bs.caller)
379- let bw = if ((bu != aX))
380- then bb(aX)
409+@Callable(bD)
410+func adminUnlock (bE) = {
411+ let bF = toString(bD.caller)
412+ let bH = if ((bF != bg))
413+ then bm(bg)
381414 else 0
382- let bx = if ((bu != aY))
383- then bb(aY)
415+ let bI = if ((bF != bh))
416+ then bm(bh)
384417 else 0
385- let by = if ((bu != aZ))
386- then bb(aZ)
418+ let bJ = if ((bF != bi))
419+ then bm(bi)
387420 else 0
388- let bz = if (((bc(aX) * bw) == bt))
421+ let bK = if (((bn(bg) * bH) == bE))
389422 then 1
390423 else 0
391- let bA = if (((bc(aY) * bx) == bt))
424+ let bL = if (((bn(bh) * bI) == bE))
392425 then 1
393426 else 0
394- let bB = if (((bc(aZ) * by) == bt))
427+ let bM = if (((bn(bi) * bJ) == bE))
395428 then 1
396429 else 0
397- if (!(aI))
430+ if (!(aQ))
398431 then throw("Contract is not blocked")
399- else if (if (((((bz + bA) + bB) + 1) >= 2))
400- then (aG >= height)
432+ else if (if (((((bK + bL) + bM) + 1) >= 2))
433+ then (aO >= height)
401434 else false)
402- then WriteSet([DataEntry(K, false), DataEntry(x, bt), DataEntry(am(height), bt), DataEntry(X(aX), false), DataEntry(X(aY), false), DataEntry(X(aZ), false), DataEntry(O, 0), DataEntry(U, 0), DataEntry(Q, false)])
403- else WriteSet([DataEntry(Z(bu), bt), DataEntry(O, if ((height > aG))
404- then (height + aF)
405- else aG), DataEntry(X(aX), if ((height > aG))
435+ then WriteSet([DataEntry(N, false), DataEntry(A, bE), DataEntry(ar(height), bE), DataEntry(ac(bg), false), DataEntry(ac(bh), false), DataEntry(ac(bi), false), DataEntry(R, 0), DataEntry(X, 0), DataEntry(T, false)])
436+ else WriteSet([DataEntry(ae(bF), bE), DataEntry(R, if ((height > aO))
437+ then (height + aN)
438+ else aO), DataEntry(ac(bg), if ((height > aO))
406439 then false
407- else (bw == 1)), DataEntry(X(aY), if ((height > aG))
440+ else (bH == 1)), DataEntry(ac(bh), if ((height > aO))
408441 then false
409- else (bx == 1)), DataEntry(X(aZ), if ((height > aG))
442+ else (bI == 1)), DataEntry(ac(bi), if ((height > aO))
410443 then false
411- else (by == 1)), DataEntry(X(bu), true)])
444+ else (bJ == 1)), DataEntry(ac(bF), true)])
412445 }
413446
414447
415448
416-@Callable(bs)
449+@Callable(bD)
417450 func adminLock () = {
418- let bu = toString(bs.caller)
419- let bw = if ((bu != aX))
420- then bb(aX)
451+ let bF = toString(bD.caller)
452+ let bH = if ((bF != bg))
453+ then bm(bg)
421454 else 1
422- let bx = if ((bu != aY))
423- then bb(aY)
455+ let bI = if ((bF != bh))
456+ then bm(bh)
424457 else 1
425- let by = if ((bu != aZ))
426- then bb(aZ)
458+ let bJ = if ((bF != bi))
459+ then bm(bi)
427460 else 1
428- if (aI)
461+ if (aQ)
429462 then throw("Contract is blocked")
430- else if ((((bw + bx) + by) >= 2))
431- then WriteSet([DataEntry(K, true), DataEntry(X(aX), false), DataEntry(X(aY), false), DataEntry(X(aZ), false), DataEntry(O, 0)])
432- else WriteSet([DataEntry(O, if ((height > aG))
433- then (height + aF)
434- else aG), DataEntry(X(aX), if ((height > aG))
463+ else if ((((bH + bI) + bJ) >= 2))
464+ then WriteSet([DataEntry(N, true), DataEntry(ac(bg), false), DataEntry(ac(bh), false), DataEntry(ac(bi), false), DataEntry(R, 0)])
465+ else WriteSet([DataEntry(R, if ((height > aO))
466+ then (height + aN)
467+ else aO), DataEntry(ac(bg), if ((height > aO))
435468 then false
436- else (bw == 1)), DataEntry(X(aY), if ((height > aG))
469+ else (bH == 1)), DataEntry(ac(bh), if ((height > aO))
437470 then false
438- else (bx == 1)), DataEntry(X(aZ), if ((height > aG))
471+ else (bI == 1)), DataEntry(ac(bi), if ((height > aO))
439472 then false
440- else (by == 1))])
473+ else (bJ == 1))])
441474 }
442475
443476
444477
445-@Callable(bs)
478+@Callable(bD)
446479 func swapWavesToNeutrino () = {
447- let bC = extract(bs.payment)
448- if ((aJ > bC.amount))
480+ let bN = extract(bD.payment)
481+ if ((aR > bN.amount))
449482 then throw("amount less min")
450- else if (isDefined(bC.assetId))
483+ else if (isDefined(bN.assetId))
451484 then throw("can use waves only")
452- else if (aI)
485+ else if (aQ)
453486 then throw("contract is blocked")
454487 else {
455- let av = aw(bC.amount)
456- TransferSet([ScriptTransfer(bs.caller, av, aK)])
488+ let aD = aE(bN.amount)
489+ TransferSet([ScriptTransfer(bD.caller, aD, aT)])
457490 }
458491 }
459492
460493
461494
462-@Callable(bs)
495+@Callable(bD)
463496 func swapNeutrinoToWaves () = {
464- let bC = extract(bs.payment)
465- if ((aJ > bC.amount))
497+ let bN = extract(bD.payment)
498+ if ((aS > bN.amount))
466499 then throw("amount less min")
467- else if (aI)
500+ else if (aQ)
468501 then throw("contract is blocked")
469- else if ((bC.assetId != aK))
502+ else if ((bN.assetId != aT))
470503 then throw("can use neutrino only")
471504 else {
472- let bu = toBase58String(bs.caller.bytes)
473- let av = au(bC.amount)
474- WriteSet([DataEntry(ai(bu), (bg(bu) + av)), DataEntry(aj(bu), (height + aH))])
505+ let bF = toBase58String(bD.caller.bytes)
506+ let aD = aC(bN.amount)
507+ WriteSet([DataEntry(an(bF), (br(bF) + aD)), DataEntry(ao(bF), (height + aP))])
475508 }
476509 }
477510
478511
479512
480-@Callable(bs)
481-func withdraw (bu) = if ((bi(bu) > height))
513+@Callable(bD)
514+func withdraw (bF) = if ((bt(bF) > height))
482515 then throw("wait a couple of blocks for withdraw")
483- else ScriptResult(WriteSet([DataEntry(ai(bu), 0), DataEntry(ah(bu), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(bu), bh(bu), aK), ScriptTransfer(addressFromStringValue(bu), bg(bu), unit)]))
516+ else ScriptResult(WriteSet([DataEntry(an(bF), 0), DataEntry(am(bF), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(bF), bs(bF), aT), ScriptTransfer(addressFromStringValue(bF), br(bF), unit)]))
484517
485518
486519
487-@Callable(bs)
520+@Callable(bD)
488521 func generateBond () = {
489- let bD = (aS - aw(aN))
490- let bE = assetBalance(addressFromStringValue(aL), aP)
491- let av = (ax(bD) - bE)
492- if (aI)
522+ let bO = (bb - aE(aW))
523+ let bP = assetBalance(addressFromStringValue(aU), aY)
524+ let aD = (aF(bO) - bP)
525+ if (aQ)
493526 then throw("contract is blocked")
494- else if ((av > 0))
495- then TransferSet([ScriptTransfer(addressFromStringValue(aL), av, aP)])
527+ else if ((aD > 0))
528+ then TransferSet([ScriptTransfer(addressFromStringValue(aU), aD, aY)])
496529 else throw("bond were generated or do not need it")
497530 }
498531
499532
500533
501-@Callable(bs)
534+@Callable(bD)
502535 func setOrder () = {
503- let bC = extract(bs.payment)
504- let bF = toBase58String(keccak256(((toBytes(bC.amount) + bs.caller.bytes) + toBytes(height))))
505- if ((bC.assetId != aP))
536+ let bN = extract(bD.payment)
537+ let bQ = toBase58String(keccak256(((toBytes(bN.amount) + bD.caller.bytes) + toBytes(height))))
538+ if ((bN.assetId != aY))
506539 then throw("can use bond only")
507- else if ((bl(bF) != ""))
540+ else if ((bw(bQ) != ""))
508541 then throw("order exists")
509- else WriteSet([DataEntry(B, bp(bF)), DataEntry(an(bF), bC.amount), DataEntry(ap(bF), toString(bs.caller)), DataEntry(aq(bF), height), DataEntry(ar(bF), m)])
542+ else WriteSet([DataEntry(E, bA(bQ)), DataEntry(av(bQ), bN.amount), DataEntry(ax(bQ), toString(bD.caller)), DataEntry(ay(bQ), height), DataEntry(az(bQ), o)])
510543 }
511544
512545
513546
514-@Callable(bs)
515-func cancelOrder (ao) = {
516- let Y = bl(ao)
517- let av = (bj(ao) - bm(ao))
518- if ((Y != toString(bs.caller)))
547+@Callable(bD)
548+func cancelOrder (aw) = {
549+ let ad = bw(aw)
550+ let aD = (bu(aw) - bx(aw))
551+ if ((ad != toString(bD.caller)))
519552 then throw("permission denied")
520- else ScriptResult(WriteSet([DataEntry(B, bq(ao)), DataEntry(ar(ao), l)]), TransferSet([ScriptTransfer(bs.caller, av, aP)]))
553+ else ScriptResult(WriteSet([DataEntry(E, bB(aw)), DataEntry(az(aw), n)]), TransferSet([ScriptTransfer(bD.caller, aD, aY)]))
521554 }
522555
523556
524557
525-@Callable(bs)
558+@Callable(bD)
559+func addLeasingCheck (bv) = {
560+ let bR = value(transferTransactionById(fromBase58String(bv)))
561+ if (if ((bR.recipient != addressFromStringValue(aV)))
562+ then true
563+ else bl(bv))
564+ then throw("invalid transaction id")
565+ else {
566+ let aD = aE(bR.amount)
567+ let bS = (aM + 1)
568+ ScriptResult(WriteSet([DataEntry(K, bS), DataEntry(al(aM), aD), DataEntry(ai(aM, aT), bk(aT)), DataEntry(ai(aM, aY), bk(aY)), DataEntry(au(bv), true)]), TransferSet([ScriptTransfer(addressFromStringValue(aV), aD, aT)]))
569+ }
570+ }
571+
572+
573+
574+@Callable(bD)
526575 func executeOrder () = {
527- let ao = split(aO, i)[0]
528- let bG = bj(ao)
529- let bH = bl(ao)
530- let bI = bm(ao)
531- if (aI)
576+ let aw = split(aX, j)[0]
577+ let bT = bu(aw)
578+ let bU = bw(aw)
579+ let bV = bx(aw)
580+ if (aQ)
532581 then throw("contract is blocked")
533- else if ((0 >= aT))
582+ else if ((0 >= bc))
534583 then throw("surplus is less than zero")
535- else if ((bH == ""))
584+ else if ((bU == ""))
536585 then {
537- let bJ = (aE + 1)
538- ScriptResult(WriteSet([DataEntry(H, bJ), DataEntry(ag(aE), aT), DataEntry(ad(aE, aK), ba(aK)), DataEntry(ad(aE, aP), ba(aP))]), TransferSet([ScriptTransfer(addressFromStringValue(aM), aT, aK)]))
586+ let bS = (aM + 1)
587+ ScriptResult(WriteSet([DataEntry(K, bS), DataEntry(al(aM), bc), DataEntry(ai(aM, aT), bk(aT)), DataEntry(ai(aM, aY), bk(aY))]), TransferSet([ScriptTransfer(addressFromStringValue(aV), bc, aT)]))
539588 }
540589 else {
541- let av = (bG - bI)
542- let bK = ax(aT)
543- let bL = if ((bK >= av))
544- then n
545- else m
546- let bM = if ((bK >= av))
547- then bG
548- else bK
549- ScriptResult(WriteSet([DataEntry(B, bq(ao)), DataEntry(as(ao), (bI + bM)), DataEntry(ar(ao), bL)]), TransferSet([ScriptTransfer(addressFromStringValue(bH), ay(bM), aK)]))
590+ let aD = (bT - bV)
591+ let bW = aF(bc)
592+ let bX = if ((bW >= aD))
593+ then p
594+ else o
595+ let bY = if ((bW >= aD))
596+ then bT
597+ else bW
598+ ScriptResult(WriteSet([DataEntry(E, bB(aw)), DataEntry(aA(aw), (bV + bY)), DataEntry(az(aw), bX)]), TransferSet([ScriptTransfer(addressFromStringValue(bU), aG(bY), aT)]))
550599 }
551600 }
552601
602+
603+
604+@Callable(bD)
605+func transfer (bF) = {
606+ let bN = extract(bD.payment)
607+ if (isDefined(bN.assetId))
608+ then throw("can use waves only at the moment")
609+ else TransferSet([ScriptTransfer(addressFromStringValue(bF), bN.amount, unit)])
610+ }
611+
612+
613+@Verifier(bR)
614+func bZ () = {
615+ let c = bR
616+ if ($isInstanceOf(c, "LeaseTransaction"))
617+ then {
618+ let ca = c
619+ sigVerify(bR.bodyBytes, bR.proofs[0], fromBase58String(bj(toBase58String(ca.id))))
620+ }
621+ else if ($isInstanceOf(c, "LeaseCancelTransaction"))
622+ then {
623+ let cb = c
624+ sigVerify(bR.bodyBytes, bR.proofs[0], fromBase58String(bj(toBase58String(cb.leaseId))))
625+ }
626+ else sigVerify(bR.bodyBytes, bR.proofs[0], bR.senderPublicKey)
627+ }
553628
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
48-let i = "_"
49-
50-let j = "+"
51-
52-let k = 100000000
53-
54-let l = "canceled"
55-
56-let m = "new"
57-
58-let n = "filled"
59-
60-let o = "neutrino_asset_id"
61-
62-let p = "bond_asset_id"
63-
64-let q = "auction_contract"
65-
66-let r = "rpd_contract"
67-
68-let s = "balance_lock_interval"
69-
70-let t = "vote_interval"
71-
72-let u = "min_swap_amount"
73-
74-let v = "price_offset"
75-
76-let w = "providing_interval"
77-
78-let x = "price"
79-
80-let y = "neutrino_"
81-
82-let z = "waves_"
83-
84-let A = "balance_block_"
85-
86-let B = "orderbook"
87-
88-let C = "order_total_"
89-
90-let D = "order_owner_"
91-
92-let E = "order_height_"
93-
94-let F = "order_filled_total_"
95-
96-let G = "order_status_"
97-
98-let H = "rpd_sync_index"
99-
100-let I = "rpd_profit"
101-
102-let J = "rpd_balance"
103-
104-let K = "is_blocked"
105-
106-let L = "black_swarm_price"
107-
108-let M = "admin_vote_"
109-
110-let N = "admin_vote_price_"
111-
112-let O = "vote_expire_block"
113-
114-let P = "admin_"
115-
116-let Q = "is_pending_price"
117-
118-let R = "oracle_"
119-
120-let S = "oracle_is_provide_"
121-
122-let T = "oracle_price_provide_"
123-
124-let U = "providing_expire_block"
125-
126-func V (W) = (P + toString(W))
48+func i (h,b) = {
49+ let c = getString(this, b)
50+ if ($isInstanceOf(c, "String"))
51+ then {
52+ let d = c
53+ d
54+ }
55+ else ""
56+ }
12757
12858
129-func X (Y) = (M + Y)
59+let j = "_"
60+
61+let k = "+"
62+
63+let l = 100000000
64+
65+let m = 100
66+
67+let n = "canceled"
68+
69+let o = "new"
70+
71+let p = "filled"
72+
73+let q = "neutrino_asset_id"
74+
75+let r = "bond_asset_id"
76+
77+let s = "auction_contract"
78+
79+let t = "rpd_contract"
80+
81+let u = "balance_lock_interval"
82+
83+let v = "vote_interval"
84+
85+let w = "min_waves_swap_amount"
86+
87+let x = "min_neutrino_swap_amount"
88+
89+let y = "price_offset"
90+
91+let z = "providing_interval"
92+
93+let A = "price"
94+
95+let B = "neutrino_"
96+
97+let C = "waves_"
98+
99+let D = "balance_block_"
100+
101+let E = "orderbook"
102+
103+let F = "order_total_"
104+
105+let G = "order_owner_"
106+
107+let H = "order_height_"
108+
109+let I = "order_filled_total_"
110+
111+let J = "order_status_"
112+
113+let K = "rpd_sync_index"
114+
115+let L = "rpd_profit"
116+
117+let M = "rpd_balance"
118+
119+let N = "is_blocked"
120+
121+let O = "black_swarm_price"
122+
123+let P = "admin_vote_"
124+
125+let Q = "admin_vote_price_"
126+
127+let R = "vote_expire_block"
128+
129+let S = "admin_"
130+
131+let T = "is_pending_price"
132+
133+let U = "oracle_"
134+
135+let V = "oracle_is_provide_"
136+
137+let W = "oracle_price_provide_"
138+
139+let X = "providing_expire_block"
140+
141+let Y = "leasetx"
142+
143+let Z = "is_leasing_profit"
144+
145+func aa (ab) = (S + toString(ab))
130146
131147
132-func Z (Y) = (N + Y)
148+func ac (ad) = (P + ad)
133149
134150
135-func aa (W) = (R + toString(W))
151+func ae (ad) = (Q + ad)
136152
137153
138-func ab (Y) = (S + Y)
154+func af (ab) = (U + toString(ab))
139155
140156
141-func ac (Y) = (T + Y)
157+func ag (ad) = (V + ad)
142158
143159
144-func ad (W,ae) = ((((J + "_") + toBase58String(ae)) + "_") + toString(W))
160+func ah (ad) = (W + ad)
145161
146162
147-func af (ae) = ((J + "_") + toBase58String(ae))
163+func ai (ab,aj) = ((((M + "_") + toBase58String(aj)) + "_") + toString(ab))
148164
149165
150-func ag (W) = ((I + "_") + toString(W))
166+func ak (aj) = ((M + "_") + toBase58String(aj))
151167
152168
153-func ah (Y) = (y + Y)
169+func al (ab) = ((L + "_") + toString(ab))
154170
155171
156-func ai (Y) = (z + Y)
172+func am (ad) = (B + ad)
157173
158174
159-func aj (Y) = (A + Y)
175+func an (ad) = (C + ad)
160176
161177
162-func ak (al) = ((L + "_") + toString(al))
178+func ao (ad) = (D + ad)
163179
164180
165-func am (al) = ((x + "_") + toString(al))
181+func ap (aq) = ((O + "_") + toString(aq))
166182
167183
168-func an (ao) = (C + ao)
184+func ar (aq) = ((A + "_") + toString(aq))
169185
170186
171-func ap (ao) = (D + ao)
187+func as (at) = ((Y + "_") + at)
172188
173189
174-func aq (ao) = (E + ao)
190+func au (at) = ((Z + "_") + at)
175191
176192
177-func ar (ao) = (G + ao)
193+func av (aw) = (F + aw)
178194
179195
180-func as (ao) = (F + ao)
196+func ax (aw) = (G + aw)
181197
182198
183-let at = a(x)
184-
185-func au (av) = ((av * 100) / at)
199+func ay (aw) = (H + aw)
186200
187201
188-func aw (av) = ((av * at) / 100)
202+func az (aw) = (J + aw)
189203
190204
191-func ax (av) = (av / k)
205+func aA (aw) = (I + aw)
192206
193207
194-func ay (av) = (av * k)
208+let aB = a(A)
209+
210+func aC (aD) = ((((aD * 100) / aB) * l) / m)
195211
196212
197-func az (av) = ax(aw(av))
213+func aE (aD) = ((((aD * aB) / 100) * m) / l)
198214
199215
200-let aA = a(w)
216+func aF (aD) = (aD / m)
201217
202-let aB = a(U)
203218
204-let aC = f(Q)
219+func aG (aD) = (aD * m)
205220
206-let aD = a(v)
207221
208-let aE = a(H)
222+func aH (aD) = aF(aE(aD))
209223
210-let aF = a(t)
211224
212-let aG = a(O)
225+let aI = a(z)
213226
214-let aH = a(s)
227+let aJ = a(X)
215228
216-let aI = f(K)
229+let aK = f(T)
217230
218-let aJ = a(u)
231+let aL = a(y)
219232
220-let aK = fromBase58String(e(o))
233+let aM = a(K)
221234
222-let aL = e(q)
235+let aN = a(v)
223236
224-let aM = e(r)
237+let aO = a(R)
225238
226-let aN = wavesBalance(this)
239+let aP = a(u)
227240
228-let aO = e(B)
241+let aQ = f(N)
229242
230-let aP = fromBase58String(e(p))
243+let aR = a(w)
231244
232-let aQ = {
233- let aR = extract(assetInfo(aP))
234- (aR.quantity - assetBalance(this, aP))
245+let aS = a(x)
246+
247+let aT = fromBase58String(e(q))
248+
249+let aU = e(s)
250+
251+let aV = e(t)
252+
253+let aW = wavesBalance(this)
254+
255+let aX = e(E)
256+
257+let aY = fromBase58String(e(r))
258+
259+let aZ = {
260+ let ba = extract(assetInfo(aY))
261+ (ba.quantity - assetBalance(this, aY))
235262 }
236263
237-let aS = {
238- let aR = extract(assetInfo(aK))
239- (aR.quantity - assetBalance(this, aK))
264+let bb = {
265+ let ba = extract(assetInfo(aT))
266+ (ba.quantity - assetBalance(this, aT))
240267 }
241268
242-let aT = (aw(aN) - aS)
269+let bc = (aE(aW) - bb)
243270
244-let aU = e(aa(0))
271+let bd = e(af(0))
245272
246-let aV = e(aa(1))
273+let be = e(af(1))
247274
248-let aW = e(aa(2))
275+let bf = e(af(2))
249276
250-let aX = e(V(0))
277+let bg = e(aa(0))
251278
252-let aY = e(V(1))
279+let bh = e(aa(1))
253280
254-let aZ = e(V(2))
281+let bi = e(aa(2))
255282
256-func ba (ae) = g(aM, af(ae))
283+func bj (ad) = i(aV, as(ad))
257284
258285
259-func bb (Y) = if (f(X(Y)))
286+func bk (aj) = g(aV, ak(aj))
287+
288+
289+func bl (at) = f(au(at))
290+
291+
292+func bm (ad) = if (f(ac(ad)))
260293 then 1
261294 else 0
262295
263296
264-func bc (Y) = a(Z(Y))
297+func bn (ad) = a(ae(ad))
265298
266299
267-func bd (Y) = f(ab(Y))
300+func bo (ad) = f(ag(ad))
268301
269302
270-func be (Y) = if (bd(Y))
303+func bp (ad) = if (bo(ad))
271304 then 1
272305 else 0
273306
274307
275-func bf (Y) = a(ac(Y))
308+func bq (ad) = a(ah(ad))
276309
277310
278-func bg (Y) = a(ai(Y))
311+func br (ad) = a(an(ad))
279312
280313
281-func bh (Y) = a(ah(Y))
314+func bs (ad) = a(am(ad))
282315
283316
284-func bi (Y) = a(aj(Y))
317+func bt (ad) = a(ao(ad))
285318
286319
287-func bj (bk) = a(an(bk))
320+func bu (bv) = a(av(bv))
288321
289322
290-func bl (bk) = e(ap(bk))
323+func bw (bv) = e(ax(bv))
291324
292325
293-func bm (bk) = a(as(bk))
326+func bx (bv) = a(aA(bv))
294327
295328
296-func bn (W) = a(ag(W))
329+func by (ab) = a(al(ab))
297330
298331
299-func bo (bk) = (bk + i)
332+func bz (bv) = (bv + j)
300333
301334
302-func bp (ao) = (aO + bo(ao))
335+func bA (aw) = (aX + bz(aw))
303336
304337
305-func bq (ao) = {
306- let br = split(aO, bo(ao))
307- (br[0] + br[1])
338+func bB (aw) = {
339+ let bC = split(aX, bz(aw))
340+ (bC[0] + bC[1])
308341 }
309342
310343
311-@Callable(bs)
312-func setCurrentPrice (bt) = {
313- let bu = toString(bs.caller)
314- let bv = (((be(aU) + be(aV)) + be(aW)) + 1)
315- if (aI)
344+@Callable(bD)
345+func setCurrentPrice (bE) = {
346+ let bF = toString(bD.caller)
347+ let bG = (((bp(bd) + bp(be)) + bp(bf)) + 1)
348+ if (aQ)
316349 then throw("contract is blocked")
317- else if (if (if ((bu != aU))
318- then (bu != aV)
350+ else if (if (if ((bF != bd))
351+ then (bF != be)
319352 else false)
320- then (bu != aW)
353+ then (bF != bf)
321354 else false)
322355 then throw("permission denied")
323- else if (if ((aB >= height))
324- then bd(bu)
356+ else if (if ((aJ >= height))
357+ then bo(bF)
325358 else false)
326359 then throw("price is already provided")
327- else if (if ((height > aB))
328- then aC
360+ else if (if ((height > aJ))
361+ then aK
329362 else false)
330363 then throw("use finilizeCurrentPrice")
331- else WriteSet([DataEntry(ac(bu), bt), DataEntry(U, if ((height > aB))
332- then (height + aA)
333- else aB), DataEntry(ab(aU), if ((height > aB))
364+ else WriteSet([DataEntry(ah(bF), bE), DataEntry(X, if ((height > aJ))
365+ then (height + aI)
366+ else aJ), DataEntry(ag(bd), if ((height > aJ))
334367 then false
335- else bd(aU)), DataEntry(ab(aV), if ((height > aB))
368+ else bo(bd)), DataEntry(ag(be), if ((height > aJ))
336369 then false
337- else bd(aV)), DataEntry(ab(aW), if ((height > aB))
370+ else bo(be)), DataEntry(ag(bf), if ((height > aJ))
338371 then false
339- else bd(aW)), DataEntry(ab(bu), true), DataEntry(Q, if (if ((aB >= height))
340- then (bv >= 2)
372+ else bo(bf)), DataEntry(ag(bF), true), DataEntry(T, if (if ((aJ >= height))
373+ then (bG >= 2)
341374 else false)
342375 then true
343- else aC)])
376+ else aK)])
344377 }
345378
346379
347380
348-@Callable(bs)
381+@Callable(bD)
349382 func finilizeCurrentPrice () = {
350- let bu = toString(bs.caller)
351- let bv = ((be(aU) + be(aV)) + be(aW))
352- let bt = ((((bf(aU) * be(aU)) + (bf(aV) * be(aV))) + (bf(aW) * be(aW))) / bv)
353- if (aI)
383+ let bF = toString(bD.caller)
384+ let bG = ((bp(bd) + bp(be)) + bp(bf))
385+ let bE = ((((bq(bd) * bp(bd)) + (bq(be) * bp(be))) + (bq(bf) * bp(bf))) / bG)
386+ if (aQ)
354387 then throw("contract is blocked")
355- else if (if (if ((bu != aU))
356- then (bu != aV)
388+ else if (if (if ((bF != bd))
389+ then (bF != be)
357390 else false)
358- then (bu != aW)
391+ then (bF != bf)
359392 else false)
360393 then throw("permission denied")
361- else if (if (!(aC))
394+ else if (if (!(aK))
362395 then true
363- else (aB >= height))
396+ else (aJ >= height))
364397 then throw("wait for the end of the price providing")
365- else if ((2 > bv))
398+ else if ((2 > bG))
366399 then throw("2/3 oracles need to set a price")
367- else if (if ((bt >= (at + ((at * aD) / 100))))
400+ else if (if ((bE >= (aB + ((aB * aL) / 100))))
368401 then true
369- else ((at - ((at * aD) / 100)) >= bt))
370- then WriteSet([DataEntry(K, true), DataEntry(ak(height), bt)])
371- else WriteSet([DataEntry(x, bt), DataEntry(am(height), bt), DataEntry(Q, false)])
402+ else ((aB - ((aB * aL) / 100)) >= bE))
403+ then WriteSet([DataEntry(N, true), DataEntry(ap(height), bE)])
404+ else WriteSet([DataEntry(A, bE), DataEntry(ar(height), bE), DataEntry(T, false)])
372405 }
373406
374407
375408
376-@Callable(bs)
377-func adminUnlock (bt) = {
378- let bu = toString(bs.caller)
379- let bw = if ((bu != aX))
380- then bb(aX)
409+@Callable(bD)
410+func adminUnlock (bE) = {
411+ let bF = toString(bD.caller)
412+ let bH = if ((bF != bg))
413+ then bm(bg)
381414 else 0
382- let bx = if ((bu != aY))
383- then bb(aY)
415+ let bI = if ((bF != bh))
416+ then bm(bh)
384417 else 0
385- let by = if ((bu != aZ))
386- then bb(aZ)
418+ let bJ = if ((bF != bi))
419+ then bm(bi)
387420 else 0
388- let bz = if (((bc(aX) * bw) == bt))
421+ let bK = if (((bn(bg) * bH) == bE))
389422 then 1
390423 else 0
391- let bA = if (((bc(aY) * bx) == bt))
424+ let bL = if (((bn(bh) * bI) == bE))
392425 then 1
393426 else 0
394- let bB = if (((bc(aZ) * by) == bt))
427+ let bM = if (((bn(bi) * bJ) == bE))
395428 then 1
396429 else 0
397- if (!(aI))
430+ if (!(aQ))
398431 then throw("Contract is not blocked")
399- else if (if (((((bz + bA) + bB) + 1) >= 2))
400- then (aG >= height)
432+ else if (if (((((bK + bL) + bM) + 1) >= 2))
433+ then (aO >= height)
401434 else false)
402- then WriteSet([DataEntry(K, false), DataEntry(x, bt), DataEntry(am(height), bt), DataEntry(X(aX), false), DataEntry(X(aY), false), DataEntry(X(aZ), false), DataEntry(O, 0), DataEntry(U, 0), DataEntry(Q, false)])
403- else WriteSet([DataEntry(Z(bu), bt), DataEntry(O, if ((height > aG))
404- then (height + aF)
405- else aG), DataEntry(X(aX), if ((height > aG))
435+ then WriteSet([DataEntry(N, false), DataEntry(A, bE), DataEntry(ar(height), bE), DataEntry(ac(bg), false), DataEntry(ac(bh), false), DataEntry(ac(bi), false), DataEntry(R, 0), DataEntry(X, 0), DataEntry(T, false)])
436+ else WriteSet([DataEntry(ae(bF), bE), DataEntry(R, if ((height > aO))
437+ then (height + aN)
438+ else aO), DataEntry(ac(bg), if ((height > aO))
406439 then false
407- else (bw == 1)), DataEntry(X(aY), if ((height > aG))
440+ else (bH == 1)), DataEntry(ac(bh), if ((height > aO))
408441 then false
409- else (bx == 1)), DataEntry(X(aZ), if ((height > aG))
442+ else (bI == 1)), DataEntry(ac(bi), if ((height > aO))
410443 then false
411- else (by == 1)), DataEntry(X(bu), true)])
444+ else (bJ == 1)), DataEntry(ac(bF), true)])
412445 }
413446
414447
415448
416-@Callable(bs)
449+@Callable(bD)
417450 func adminLock () = {
418- let bu = toString(bs.caller)
419- let bw = if ((bu != aX))
420- then bb(aX)
451+ let bF = toString(bD.caller)
452+ let bH = if ((bF != bg))
453+ then bm(bg)
421454 else 1
422- let bx = if ((bu != aY))
423- then bb(aY)
455+ let bI = if ((bF != bh))
456+ then bm(bh)
424457 else 1
425- let by = if ((bu != aZ))
426- then bb(aZ)
458+ let bJ = if ((bF != bi))
459+ then bm(bi)
427460 else 1
428- if (aI)
461+ if (aQ)
429462 then throw("Contract is blocked")
430- else if ((((bw + bx) + by) >= 2))
431- then WriteSet([DataEntry(K, true), DataEntry(X(aX), false), DataEntry(X(aY), false), DataEntry(X(aZ), false), DataEntry(O, 0)])
432- else WriteSet([DataEntry(O, if ((height > aG))
433- then (height + aF)
434- else aG), DataEntry(X(aX), if ((height > aG))
463+ else if ((((bH + bI) + bJ) >= 2))
464+ then WriteSet([DataEntry(N, true), DataEntry(ac(bg), false), DataEntry(ac(bh), false), DataEntry(ac(bi), false), DataEntry(R, 0)])
465+ else WriteSet([DataEntry(R, if ((height > aO))
466+ then (height + aN)
467+ else aO), DataEntry(ac(bg), if ((height > aO))
435468 then false
436- else (bw == 1)), DataEntry(X(aY), if ((height > aG))
469+ else (bH == 1)), DataEntry(ac(bh), if ((height > aO))
437470 then false
438- else (bx == 1)), DataEntry(X(aZ), if ((height > aG))
471+ else (bI == 1)), DataEntry(ac(bi), if ((height > aO))
439472 then false
440- else (by == 1))])
473+ else (bJ == 1))])
441474 }
442475
443476
444477
445-@Callable(bs)
478+@Callable(bD)
446479 func swapWavesToNeutrino () = {
447- let bC = extract(bs.payment)
448- if ((aJ > bC.amount))
480+ let bN = extract(bD.payment)
481+ if ((aR > bN.amount))
449482 then throw("amount less min")
450- else if (isDefined(bC.assetId))
483+ else if (isDefined(bN.assetId))
451484 then throw("can use waves only")
452- else if (aI)
485+ else if (aQ)
453486 then throw("contract is blocked")
454487 else {
455- let av = aw(bC.amount)
456- TransferSet([ScriptTransfer(bs.caller, av, aK)])
488+ let aD = aE(bN.amount)
489+ TransferSet([ScriptTransfer(bD.caller, aD, aT)])
457490 }
458491 }
459492
460493
461494
462-@Callable(bs)
495+@Callable(bD)
463496 func swapNeutrinoToWaves () = {
464- let bC = extract(bs.payment)
465- if ((aJ > bC.amount))
497+ let bN = extract(bD.payment)
498+ if ((aS > bN.amount))
466499 then throw("amount less min")
467- else if (aI)
500+ else if (aQ)
468501 then throw("contract is blocked")
469- else if ((bC.assetId != aK))
502+ else if ((bN.assetId != aT))
470503 then throw("can use neutrino only")
471504 else {
472- let bu = toBase58String(bs.caller.bytes)
473- let av = au(bC.amount)
474- WriteSet([DataEntry(ai(bu), (bg(bu) + av)), DataEntry(aj(bu), (height + aH))])
505+ let bF = toBase58String(bD.caller.bytes)
506+ let aD = aC(bN.amount)
507+ WriteSet([DataEntry(an(bF), (br(bF) + aD)), DataEntry(ao(bF), (height + aP))])
475508 }
476509 }
477510
478511
479512
480-@Callable(bs)
481-func withdraw (bu) = if ((bi(bu) > height))
513+@Callable(bD)
514+func withdraw (bF) = if ((bt(bF) > height))
482515 then throw("wait a couple of blocks for withdraw")
483- else ScriptResult(WriteSet([DataEntry(ai(bu), 0), DataEntry(ah(bu), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(bu), bh(bu), aK), ScriptTransfer(addressFromStringValue(bu), bg(bu), unit)]))
516+ else ScriptResult(WriteSet([DataEntry(an(bF), 0), DataEntry(am(bF), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(bF), bs(bF), aT), ScriptTransfer(addressFromStringValue(bF), br(bF), unit)]))
484517
485518
486519
487-@Callable(bs)
520+@Callable(bD)
488521 func generateBond () = {
489- let bD = (aS - aw(aN))
490- let bE = assetBalance(addressFromStringValue(aL), aP)
491- let av = (ax(bD) - bE)
492- if (aI)
522+ let bO = (bb - aE(aW))
523+ let bP = assetBalance(addressFromStringValue(aU), aY)
524+ let aD = (aF(bO) - bP)
525+ if (aQ)
493526 then throw("contract is blocked")
494- else if ((av > 0))
495- then TransferSet([ScriptTransfer(addressFromStringValue(aL), av, aP)])
527+ else if ((aD > 0))
528+ then TransferSet([ScriptTransfer(addressFromStringValue(aU), aD, aY)])
496529 else throw("bond were generated or do not need it")
497530 }
498531
499532
500533
501-@Callable(bs)
534+@Callable(bD)
502535 func setOrder () = {
503- let bC = extract(bs.payment)
504- let bF = toBase58String(keccak256(((toBytes(bC.amount) + bs.caller.bytes) + toBytes(height))))
505- if ((bC.assetId != aP))
536+ let bN = extract(bD.payment)
537+ let bQ = toBase58String(keccak256(((toBytes(bN.amount) + bD.caller.bytes) + toBytes(height))))
538+ if ((bN.assetId != aY))
506539 then throw("can use bond only")
507- else if ((bl(bF) != ""))
540+ else if ((bw(bQ) != ""))
508541 then throw("order exists")
509- else WriteSet([DataEntry(B, bp(bF)), DataEntry(an(bF), bC.amount), DataEntry(ap(bF), toString(bs.caller)), DataEntry(aq(bF), height), DataEntry(ar(bF), m)])
542+ else WriteSet([DataEntry(E, bA(bQ)), DataEntry(av(bQ), bN.amount), DataEntry(ax(bQ), toString(bD.caller)), DataEntry(ay(bQ), height), DataEntry(az(bQ), o)])
510543 }
511544
512545
513546
514-@Callable(bs)
515-func cancelOrder (ao) = {
516- let Y = bl(ao)
517- let av = (bj(ao) - bm(ao))
518- if ((Y != toString(bs.caller)))
547+@Callable(bD)
548+func cancelOrder (aw) = {
549+ let ad = bw(aw)
550+ let aD = (bu(aw) - bx(aw))
551+ if ((ad != toString(bD.caller)))
519552 then throw("permission denied")
520- else ScriptResult(WriteSet([DataEntry(B, bq(ao)), DataEntry(ar(ao), l)]), TransferSet([ScriptTransfer(bs.caller, av, aP)]))
553+ else ScriptResult(WriteSet([DataEntry(E, bB(aw)), DataEntry(az(aw), n)]), TransferSet([ScriptTransfer(bD.caller, aD, aY)]))
521554 }
522555
523556
524557
525-@Callable(bs)
558+@Callable(bD)
559+func addLeasingCheck (bv) = {
560+ let bR = value(transferTransactionById(fromBase58String(bv)))
561+ if (if ((bR.recipient != addressFromStringValue(aV)))
562+ then true
563+ else bl(bv))
564+ then throw("invalid transaction id")
565+ else {
566+ let aD = aE(bR.amount)
567+ let bS = (aM + 1)
568+ ScriptResult(WriteSet([DataEntry(K, bS), DataEntry(al(aM), aD), DataEntry(ai(aM, aT), bk(aT)), DataEntry(ai(aM, aY), bk(aY)), DataEntry(au(bv), true)]), TransferSet([ScriptTransfer(addressFromStringValue(aV), aD, aT)]))
569+ }
570+ }
571+
572+
573+
574+@Callable(bD)
526575 func executeOrder () = {
527- let ao = split(aO, i)[0]
528- let bG = bj(ao)
529- let bH = bl(ao)
530- let bI = bm(ao)
531- if (aI)
576+ let aw = split(aX, j)[0]
577+ let bT = bu(aw)
578+ let bU = bw(aw)
579+ let bV = bx(aw)
580+ if (aQ)
532581 then throw("contract is blocked")
533- else if ((0 >= aT))
582+ else if ((0 >= bc))
534583 then throw("surplus is less than zero")
535- else if ((bH == ""))
584+ else if ((bU == ""))
536585 then {
537- let bJ = (aE + 1)
538- ScriptResult(WriteSet([DataEntry(H, bJ), DataEntry(ag(aE), aT), DataEntry(ad(aE, aK), ba(aK)), DataEntry(ad(aE, aP), ba(aP))]), TransferSet([ScriptTransfer(addressFromStringValue(aM), aT, aK)]))
586+ let bS = (aM + 1)
587+ ScriptResult(WriteSet([DataEntry(K, bS), DataEntry(al(aM), bc), DataEntry(ai(aM, aT), bk(aT)), DataEntry(ai(aM, aY), bk(aY))]), TransferSet([ScriptTransfer(addressFromStringValue(aV), bc, aT)]))
539588 }
540589 else {
541- let av = (bG - bI)
542- let bK = ax(aT)
543- let bL = if ((bK >= av))
544- then n
545- else m
546- let bM = if ((bK >= av))
547- then bG
548- else bK
549- ScriptResult(WriteSet([DataEntry(B, bq(ao)), DataEntry(as(ao), (bI + bM)), DataEntry(ar(ao), bL)]), TransferSet([ScriptTransfer(addressFromStringValue(bH), ay(bM), aK)]))
590+ let aD = (bT - bV)
591+ let bW = aF(bc)
592+ let bX = if ((bW >= aD))
593+ then p
594+ else o
595+ let bY = if ((bW >= aD))
596+ then bT
597+ else bW
598+ ScriptResult(WriteSet([DataEntry(E, bB(aw)), DataEntry(aA(aw), (bV + bY)), DataEntry(az(aw), bX)]), TransferSet([ScriptTransfer(addressFromStringValue(bU), aG(bY), aT)]))
550599 }
551600 }
552601
602+
603+
604+@Callable(bD)
605+func transfer (bF) = {
606+ let bN = extract(bD.payment)
607+ if (isDefined(bN.assetId))
608+ then throw("can use waves only at the moment")
609+ else TransferSet([ScriptTransfer(addressFromStringValue(bF), bN.amount, unit)])
610+ }
611+
612+
613+@Verifier(bR)
614+func bZ () = {
615+ let c = bR
616+ if ($isInstanceOf(c, "LeaseTransaction"))
617+ then {
618+ let ca = c
619+ sigVerify(bR.bodyBytes, bR.proofs[0], fromBase58String(bj(toBase58String(ca.id))))
620+ }
621+ else if ($isInstanceOf(c, "LeaseCancelTransaction"))
622+ then {
623+ let cb = c
624+ sigVerify(bR.bodyBytes, bR.proofs[0], fromBase58String(bj(toBase58String(cb.leaseId))))
625+ }
626+ else sigVerify(bR.bodyBytes, bR.proofs[0], bR.senderPublicKey)
627+ }
553628

github/deemru/w8io/026f985 
201.13 ms