tx · 9e6y7EU6GqvJvV4Z68gAataQY5KyTxBhtmcgsJEU1TDZ

3Mwvh1BuhG98BDy2ce4psM5FGmsMJ3mQ6eS:  -0.01400000 Waves

2019.10.08 13:45 [710720] smart account 3Mwvh1BuhG98BDy2ce4psM5FGmsMJ3mQ6eS > SELF 0.00000000 Waves

{ "type": 13, "id": "9e6y7EU6GqvJvV4Z68gAataQY5KyTxBhtmcgsJEU1TDZ", "fee": 1400000, "feeAssetId": null, "timestamp": 1570531557505, "version": 1, "sender": "3Mwvh1BuhG98BDy2ce4psM5FGmsMJ3mQ6eS", "senderPublicKey": "7uFaW53FrwLDoCAkGsKkshhvuicD9QrVcuTDgYkMp93a", "proofs": [ "29k6oydJCXkVbzzpiuUjSbbMUQreSaGsXDrjZ8sqEXMVTGU3SUJQdBeXcLA8qie1Uca18rh3FfGSWvPD6HqXMf8S" ], "script": "base64:AAIDAAAAAAAAAAAAAAArAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADGdldEJvb2xCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQcBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAAAAAAAD0xJU1RTUExJVFNZTUJPTAIAAAABXwAAAAAPUEVSQ0VOVEFDQ1VSQUNZAAAAAAAAACcQAAAAABJOZXV0cmlub0Fzc2V0SWRLZXkCAAAAEW5ldXRyaW5vX2Fzc2V0X2lkAAAAABNOZXV0cmlub0NvbnRyYWN0S2V5AgAAABFuZXV0cmlub19jb250cmFjdAAAAAAOTm9kZUFkZHJlc3NLZXkCAAAADG5vZGVfYWRkcmVzcwAAAAAKQmFsYW5jZUtleQIAAAALcnBkX2JhbGFuY2UAAAAADFN5bmNJbmRleEtleQIAAAAOcnBkX3N5bmNfaW5kZXgAAAAACVByb2ZpdEtleQIAAAAKcnBkX3Byb2ZpdAAAAAARQmFsYW5jZUhpc3RvcnlLZXkCAAAAD2JhbGFuY2VfaGlzdG9yeQAAAAAMSXNDbGFpbWVkS2V5AgAAAAppc19jbGFpbWVkAAAAABJBcHByb3ZlZExlYXNlVHhLZXkCAAAAB2xlYXNldHgAAAAAFkFwcHJvdmVkTGVhc2VBbW91bnRLZXkCAAAADmxlYXNldHhfYW1vdW50AQAAABhnZXRVc2VyQmFsYW5jZUhpc3RvcnlLZXkAAAABAAAABW93bmVyCQABLAAAAAIJAAEsAAAAAgUAAAARQmFsYW5jZUhpc3RvcnlLZXkCAAAAAV8FAAAABW93bmVyAQAAABFnZXRVc2VyQmFsYW5jZUtleQAAAAIAAAAFb3duZXIAAAAHYXNzZXRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAApCYWxhbmNlS2V5AgAAAAFfBQAAAAdhc3NldElkAgAAAAFfBQAAAAVvd25lcgEAAAAYZ2V0VXNlckJhbGFuY2VLZXlCeUNvdW50AAAAAwAAAAVvd25lcgAAAAVjb3VudAAAAAdhc3NldElkCQABLAAAAAIJAAEsAAAAAgkBAAAAEWdldFVzZXJCYWxhbmNlS2V5AAAAAgUAAAAFb3duZXIFAAAAB2Fzc2V0SWQCAAAAAV8JAAGkAAAAAQUAAAAFY291bnQBAAAAD2dldElzQ2xhaW1lZEtleQAAAAIAAAAFb3duZXIAAAAFY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAMSXNDbGFpbWVkS2V5AgAAAAFfBQAAAAVvd25lcgIAAAABXwkAAaQAAAABBQAAAAVjb3VudAEAAAAcZ2V0QXBwcm92ZWRMZWFzZVR4QnlPd25lcktleQAAAAEAAAAFb3duZXIJAAEsAAAAAgkAASwAAAACBQAAABJBcHByb3ZlZExlYXNlVHhLZXkCAAAAAV8FAAAABW93bmVyAQAAABxnZXRPd25lclB1YktleUJ5TGVhc2VUeElkS2V5AAAAAQAAAAR0eElkCQABLAAAAAIJAAEsAAAAAgUAAAASQXBwcm92ZWRMZWFzZVR4S2V5AgAAAAFfBQAAAAR0eElkAQAAACBnZXRBcHByb3ZlZExlYXNlQW1vdW50QnlPd25lcktleQAAAAEAAAAFb3duZXIJAAEsAAAAAgkAASwAAAACBQAAABZBcHByb3ZlZExlYXNlQW1vdW50S2V5AgAAAAFfBQAAAAVvd25lcgEAAAAVZ2V0Q29udHJhY3RCYWxhbmNlS2V5AAAAAQAAAAdhc3NldElkCQABLAAAAAIJAAEsAAAAAgUAAAAKQmFsYW5jZUtleQIAAAABXwUAAAAHYXNzZXRJZAEAAAAdZ2V0U25hcHNob3RDb250cmFjdEJhbGFuY2VLZXkAAAACAAAABWNvdW50AAAAB2Fzc2V0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAKQmFsYW5jZUtleQIAAAABXwUAAAAHYXNzZXRJZAIAAAABXwkAAaQAAAABBQAAAAVjb3VudAEAAAAMZ2V0UHJvZml0S2V5AAAAAQAAAAVjb3VudAkAASwAAAACCQABLAAAAAIFAAAACVByb2ZpdEtleQIAAAABXwkAAaQAAAABBQAAAAVjb3VudAEAAAAZZ2V0QXBwcm92ZWRMZWFzZVR4QnlPd25lcgAAAAEAAAAFb3duZXIJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABxnZXRBcHByb3ZlZExlYXNlVHhCeU93bmVyS2V5AAAAAQUAAAAFb3duZXIBAAAAHWdldEFwcHJvdmVkTGVhc2VBbW91bnRCeU93bmVyAAAAAQAAAAVvd25lcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAIGdldEFwcHJvdmVkTGVhc2VBbW91bnRCeU93bmVyS2V5AAAAAQUAAAAFb3duZXIBAAAAGWdldE93bmVyUHViS2V5QnlMZWFzZVR4SWQAAAABAAAABHR4SWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAABxnZXRPd25lclB1YktleUJ5TGVhc2VUeElkS2V5AAAAAQUAAAAEdHhJZAAAAAALbm9kZUFkZHJlc3MJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAADk5vZGVBZGRyZXNzS2V5AAAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABNOZXV0cmlub0NvbnRyYWN0S2V5AAAAAA9uZXV0cmlub0Fzc2V0SWQJAAJZAAAAAQkBAAAAGGdldFN0cmluZ0J5QWRkcmVzc0FuZEtleQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAAEk5ldXRyaW5vQXNzZXRJZEtleQAAAAAJc3luY0luZGV4CQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAAMU3luY0luZGV4S2V5AQAAABJnZXRDb250cmFjdEJhbGFuY2UAAAABAAAAB2Fzc2V0SWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABVnZXRDb250cmFjdEJhbGFuY2VLZXkAAAABBQAAAAdhc3NldElkAQAAABpnZXRTbmFwc2hvdENvbnRyYWN0QmFsYW5jZQAAAAIAAAAFY291bnQAAAAHYXNzZXRJZAkBAAAAGGdldE51bWJlckJ5QWRkcmVzc0FuZEtleQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAB1nZXRTbmFwc2hvdENvbnRyYWN0QmFsYW5jZUtleQAAAAIFAAAABWNvdW50BQAAAAdhc3NldElkAQAAAAlnZXRQcm9maXQAAAABAAAABWNvdW50CQEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAADGdldFByb2ZpdEtleQAAAAEFAAAABWNvdW50AQAAAA5nZXRVc2VyQmFsYW5jZQAAAAIAAAAFb3duZXIAAAAHYXNzZXRJZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEWdldFVzZXJCYWxhbmNlS2V5AAAAAgUAAAAFb3duZXIFAAAAB2Fzc2V0SWQBAAAAFWdldFVzZXJCYWxhbmNlQnlDb3VudAAAAAMAAAAFb3duZXIAAAAFY291bnQAAAAHYXNzZXRJZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGGdldFVzZXJCYWxhbmNlS2V5QnlDb3VudAAAAAMFAAAABW93bmVyBQAAAAVjb3VudAUAAAAHYXNzZXRJZAEAAAAVZ2V0VXNlckJhbGFuY2VIaXN0b3J5AAAAAQAAAAVvd25lcgkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAGGdldFVzZXJCYWxhbmNlSGlzdG9yeUtleQAAAAEFAAAABW93bmVyAQAAAAlpc0NsYWltZWQAAAACAAAABW93bmVyAAAABWNvdW50CQEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQkBAAAAD2dldElzQ2xhaW1lZEtleQAAAAIFAAAABW93bmVyBQAAAAVjb3VudAEAAAARZ2V0SGlzdG9yeUVsZW1lbnQAAAABAAAABWNvdW50CQABLAAAAAIJAAGkAAAAAQUAAAAFY291bnQFAAAAD0xJU1RTUExJVFNZTUJPTAEAAAARYWRkQmFsYW5jZUhpc3RvcnkAAAACAAAAB2hpc3RvcnkAAAAHZWxlbWVudAkAASwAAAACBQAAAAdoaXN0b3J5BQAAAAdlbGVtZW50AAAABQAAAAFpAQAAAAxsb2NrTmV1dHJpbm8AAAAABAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAAPbmV1dHJpbm9Bc3NldElkCQAAAgAAAAECAAAAHWNhbiB1c2UgbmV1dHJpbm8gb3IgYm9uZCBvbmx5BAAAAAdhY2NvdW50CQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANYXNzZXRJZFN0cmluZwkAAlgAAAABCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAAB2JhbGFuY2UJAABkAAAAAgkBAAAADmdldFVzZXJCYWxhbmNlAAAAAgUAAAAHYWNjb3VudAUAAAANYXNzZXRJZFN0cmluZwgFAAAAA3BtdAAAAAZhbW91bnQEAAAADWhpc3RvcnlTdHJpbmcJAQAAABVnZXRVc2VyQmFsYW5jZUhpc3RvcnkAAAABBQAAAAdhY2NvdW50BAAAAAdoaXN0b3J5CQAEtQAAAAIFAAAADWhpc3RvcnlTdHJpbmcFAAAAD0xJU1RTUExJVFNZTUJPTAQAAAAFaW5kZXgJAABlAAAAAgkAAZAAAAABBQAAAAdoaXN0b3J5AAAAAAAAAAACBAAAAApuZXdIaXN0b3J5AwMJAQAAAAIhPQAAAAIFAAAADWhpc3RvcnlTdHJpbmcCAAAAAAkAAAAAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAHaGlzdG9yeQUAAAAFaW5kZXgFAAAACXN5bmNJbmRleAcFAAAADWhpc3RvcnlTdHJpbmcJAQAAABFhZGRCYWxhbmNlSGlzdG9yeQAAAAIFAAAADWhpc3RvcnlTdHJpbmcJAQAAABFnZXRIaXN0b3J5RWxlbWVudAAAAAEFAAAACXN5bmNJbmRleAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldENvbnRyYWN0QmFsYW5jZUtleQAAAAEFAAAADWFzc2V0SWRTdHJpbmcJAABkAAAAAgkBAAAAEmdldENvbnRyYWN0QmFsYW5jZQAAAAEFAAAADWFzc2V0SWRTdHJpbmcIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0VXNlckJhbGFuY2VLZXkAAAACBQAAAAdhY2NvdW50BQAAAA1hc3NldElkU3RyaW5nBQAAAAdiYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0VXNlckJhbGFuY2VLZXlCeUNvdW50AAAAAwUAAAAHYWNjb3VudAUAAAAJc3luY0luZGV4BQAAAA1hc3NldElkU3RyaW5nBQAAAAdiYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0VXNlckJhbGFuY2VIaXN0b3J5S2V5AAAAAQUAAAAHYWNjb3VudAUAAAAKbmV3SGlzdG9yeQUAAAADbmlsAAAAAWkBAAAAE3JlZ2lzdHJhdGlvbkxlYXNlVHgAAAAEAAAABmFtb3VudAAAAANmZWUAAAAJdGltZXN0YW1wAAAABXByb29mBAAAAA1hZGRyZXNzUHViS2V5CAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAB2FkZHJl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cnkAAAACCQEAAAAcZ2V0QXBwcm92ZWRMZWFzZVR4QnlPd25lcktleQAAAAEFAAAAB2FkZHJlc3MCAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAIGdldEFwcHJvdmVkTGVhc2VBbW91bnRCeU93bmVyS2V5AAAAAQUAAAAHYWRkcmVzcwAAAAAAAAAAAAUAAAADbmlsAAAAAWkBAAAADnVubG9ja05ldXRyaW5vAAAAAgAAAAx1bmxvY2tBbW91bnQAAAANYXNzZXRJZFN0cmluZwQAAAAHYWNjb3VudAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAANYXNzZXRJZFN0cmluZwQAAAAHYmFsYW5jZQkAAGUAAAACCQEAAAAOZ2V0VXNlckJhbGFuY2UAAAACBQAAAAdhY2NvdW50BQAAAA1hc3NldElkU3RyaW5nBQAAAAx1bmxvY2tBbW91bnQEAAAAEGF2YWlsYWJsZUJhbGFuY2UJAABlAAAAAgUAAAAHYmFsYW5jZQkBAAAAHWdldEFwcHJvdmVkTGVhc2VBbW91bnRCeU93bmVyAAAAAQUAAAAHYWNjb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAQYXZhaWxhYmxlQmFsYW5jZQkAAAIAAAABAgAAAA5pbnZhbGlkIGFtb3VudAMJAQAAAAIhPQAAAAIFAAAAB2Fzc2V0SWQFAAAAD25ldXRyaW5vQXNzZXRJZAkAAAIAAAABAgAAAB1jYW4gdXNlIG5ldXRyaW5vIG9yIGJvbmQgb25seQQAAAANaGlzdG9yeVN0cmluZwkBAAAAFWdldFVzZXJCYWxhbmNlSGlzdG9yeQAAAAEFAAAAB2FjY291bnQEAAAAB2hpc3RvcnkJAAS1AAAAAgUAAAANaGlzdG9yeVN0cmluZwUAAAAPTElTVFNQTElUU1lNQk9MBAAAAAVpbmRleAkAAGUAAAACCQABkAAAAAEFAAAAB2hpc3RvcnkAAAAAAAAAAAIEAAAACm5ld0hpc3RvcnkDAwkBAAAAAiE9AAAAAgUAAAANaGlzdG9yeVN0cmluZwIAAAAACQAAAAAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAdoaXN0b3J5BQAAAAVpbmRleAUAAAAJc3luY0luZGV4BwUAAAANaGlzdG9yeVN0cmluZwkBAAAAEWFkZEJhbGFuY2VIaXN0b3J5AAAAAgUAAAANaGlzdG9yeVN0cmluZwkBAAAAEWdldEhpc3RvcnlFbGVtZW50AAAAAQUAAAAJc3luY0luZGV4CQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAKQmFsYW5jZUtleQkAAGUAAAACCQEAAAASZ2V0Q29udHJhY3RCYWxhbmNlAAAAAQUAAAANYXNzZXRJZFN0cmluZwUAAAAMdW5sb2NrQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0VXNlckJhbGFuY2VLZXkAAAACBQAAAAdhY2NvdW50BQAAAA1hc3NldElkU3RyaW5nBQAAAAdiYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0VXNlckJhbGFuY2VLZXlCeUNvdW50AAAAAwUAAAAHYWNjb3VudAUAAAAJc3luY0luZGV4BQAAAA1hc3NldElkU3RyaW5nBQAAAAdiYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0VXNlckJhbGFuY2VIaXN0b3J5S2V5AAAAAQUAAAAHYWNjb3VudAUAAAAKbmV3SGlzdG9yeQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWNjb3VudAUAAAAMdW5sb2NrQW1vdW50BQAAAA9uZXV0cmlub0Fzc2V0SWQFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAAPcHJvZml0U3luY0luZGV4AAAADGhpc3RvcnlJbmRleAQAAAAHYWNjb3VudAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADWhpc3RvcnlTdHJpbmcJAQAAABVnZXRVc2VyQmFsYW5jZUhpc3RvcnkAAAABBQAAAAdhY2NvdW50BAAAAAdoaXN0b3J5CQAEtQAAAAIFAAAADWhpc3RvcnlTdHJpbmcFAAAAD0xJU1RTUExJVFNZTUJPTAQAAAAKbG9ja0FjdHVhbAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAB2hpc3RvcnkFAAAADGhpc3RvcnlJbmRleAMJAQAAAAlpc0NsYWltZWQAAAACBQAAAAdhY2NvdW50BQAAAA9wcm9maXRTeW5jSW5kZXgJAAACAAAAAQkAASwAAAACAgAAAB1hY2NvdW50IGlzIGNsYWltZWQgcnBkX2NvdW50OgkAAaQAAAABBQAAAA9wcm9maXRTeW5jSW5kZXgDAwkAAGYAAAACBQAAAA9wcm9maXRTeW5jSW5kZXgFAAAACmxvY2tBY3R1YWwGAwkAAGYAAAACCQABkAAAAAEFAAAAB2hpc3RvcnkJAABkAAAAAgUAAAAMaGlzdG9yeUluZGV4AAAAAAAAAAACCQAAZgAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAdoaXN0b3J5CQAAZAAAAAIFAAAADGhpc3RvcnlJbmRleAAAAAAAAAAAAQUAAAAPcHJvZml0U3luY0luZGV4BwkAAAIAAAABAgAAABVpbnZhbGlkIGhpc3RvcnkgaW5kZXgEAAAAFW5ldXRyaW5vQXNzZXRJZFN0cmluZwkAAlgAAAABBQAAAA9uZXV0cmlub0Fzc2V0SWQEAAAAB2JhbGFuY2UJAQAAABVnZXRVc2VyQmFsYW5jZUJ5Q291bnQAAAADBQAAAAdhY2NvdW50BQAAAApsb2NrQWN0dWFsBQAAABVuZXV0cmlub0Fzc2V0SWRTdHJpbmcEAAAADHNoYXJlUGVyY2VudAkAAGkAAAACCQAAaAAAAAIJAABoAAAAAgUAAAAHYmFsYW5jZQUAAAAPUEVSQ0VOVEFDQ1VSQUNZAAAAAAAAAABkCQEAAAAaZ2V0U25hcHNob3RDb250cmFjdEJhbGFuY2UAAAACBQAAAA9wcm9maXRTeW5jSW5kZXgFAAAAFW5ldXRyaW5vQXNzZXRJZFN0cmluZwQAAAAGcHJvZml0CQAAaQAAAAIJAABpAAAAAgkAAGgAAAACBQAAAAxzaGFyZVBlcmNlbnQJAQAAAAlnZXRQcm9maXQAAAABBQAAAA9wcm9maXRTeW5jSW5kZXgAAAAAAAAAAGQFAAAAD1BFUkNFTlRBQ0NVUkFDWQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nZXRJc0NsYWltZWRLZXkAAAACBQAAAAdhY2NvdW50BQAAAA9wcm9maXRTeW5jSW5kZXgGBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50BQAAAAZwcm9maXQFAAAAD25ldXRyaW5vQXNzZXRJZAUAAAADbmlsAAAAAANV7C0=", "chainId": 84, "height": 710720, "spentComplexity": 0 } View: original | compacted Prev: 3LUkqxbUPkVWnSZ4Cg6vZcZYNnV4PZQMWt6G4bJG7Vfv Next: B3Wtf6FwBtSp7kWCyJKzP9Jn3yKkMYqFb1cxSi4YQQYS Diff:
OldNewDifferences
6262
6363 let l = "neutrino_asset_id"
6464
65-let m = "bond_asset_id"
65+let m = "neutrino_contract"
6666
67-let n = "neutrino_contract"
67+let n = "node_address"
6868
6969 let o = "rpd_balance"
7070
7676
7777 let s = "is_claimed"
7878
79-func t (u) = ((r + "_") + u)
79+let t = "leasetx"
80+
81+let u = "leasetx_amount"
82+
83+func v (w) = ((r + "_") + w)
8084
8185
82-func v (u,w) = ((((o + "_") + w) + "_") + u)
86+func x (w,y) = ((((o + "_") + y) + "_") + w)
8387
8488
85-func x (u,y,w) = ((v(u, w) + "_") + toString(y))
89+func z (w,A,y) = ((x(w, y) + "_") + toString(A))
8690
8791
88-func z (u,y) = ((((s + "_") + u) + "_") + toString(y))
92+func B (w,A) = ((((s + "_") + w) + "_") + toString(A))
8993
9094
91-func A (w) = ((o + "_") + w)
95+func C (w) = ((t + "_") + w)
9296
9397
94-func B (y,w) = ((((o + "_") + w) + "_") + toString(y))
98+func D (E) = ((t + "_") + E)
9599
96100
97-func C (y) = ((q + "_") + toString(y))
101+func F (w) = ((u + "_") + w)
98102
99103
100-let D = e(n)
101-
102-let E = fromBase58String(i(D, l))
103-
104-let F = fromBase58String(i(D, m))
105-
106-let G = g(D, p)
107-
108-func H (w) = a(A(w))
104+func G (y) = ((o + "_") + y)
109105
110106
111-func I (y,w) = g(D, B(y, w))
107+func H (A,y) = ((((o + "_") + y) + "_") + toString(A))
112108
113109
114-func J (y) = g(D, C(y))
110+func I (A) = ((q + "_") + toString(A))
115111
116112
117-func K (u,w) = a(v(u, w))
113+func J (w) = e(C(w))
118114
119115
120-func L (u,y,w) = a(x(u, y, w))
116+func K (w) = a(F(w))
121117
122118
123-func M (u) = e(t(u))
119+func L (E) = e(D(E))
124120
125121
126-func N (u,y) = f(z(u, y))
122+let M = e(n)
123+
124+let N = e(m)
125+
126+let O = fromBase58String(i(N, l))
127+
128+let P = g(N, p)
129+
130+func Q (y) = a(G(y))
127131
128132
129-func O (y) = (toString(y) + j)
133+func R (A,y) = g(N, H(A, y))
130134
131135
132-func P (Q,R) = (Q + R)
136+func S (A) = g(N, I(A))
133137
134138
135-@Callable(S)
139+func T (w,y) = a(x(w, y))
140+
141+
142+func U (w,A,y) = a(z(w, A, y))
143+
144+
145+func V (w) = e(v(w))
146+
147+
148+func W (w,A) = f(B(w, A))
149+
150+
151+func X (A) = (toString(A) + j)
152+
153+
154+func Y (Z,aa) = (Z + aa)
155+
156+
157+@Callable(ab)
136158 func lockNeutrino () = {
137- let T = extract(S.payment)
138- if (if ((T.assetId != E))
139- then (T.assetId != F)
140- else false)
159+ let ac = extract(ab.payment)
160+ if ((ac.assetId != O))
141161 then throw("can use neutrino or bond only")
142162 else {
143- let U = toString(S.caller)
144- let V = toBase58String(value(T.assetId))
145- let W = (K(U, V) + T.amount)
146- let X = M(U)
147- let Q = split(X, j)
148- let Y = (size(Q) - 2)
149- let Z = if (if ((X != ""))
150- then (parseIntValue(Q[Y]) == G)
163+ let ad = toString(ab.caller)
164+ let ae = toBase58String(value(ac.assetId))
165+ let af = (T(ad, ae) + ac.amount)
166+ let ag = V(ad)
167+ let Z = split(ag, j)
168+ let ah = (size(Z) - 2)
169+ let ai = if (if ((ag != ""))
170+ then (parseIntValue(Z[ah]) == P)
151171 else false)
152- then X
153- else P(X, O(G))
154- WriteSet([DataEntry(A(V), (H(V) + T.amount)), DataEntry(v(U, V), W), DataEntry(x(U, G, V), W), DataEntry(t(U), Z)])
172+ then ag
173+ else Y(ag, X(P))
174+ WriteSet([DataEntry(G(ae), (Q(ae) + ac.amount)), DataEntry(x(ad, ae), af), DataEntry(z(ad, P, ae), af), DataEntry(v(ad), ai)])
155175 }
156176 }
157177
158178
159179
160-@Callable(S)
161-func unlockNeutrino (aa,V) = {
162- let U = toString(S.caller)
163- let w = fromBase58String(V)
164- let W = (K(U, V) - aa)
165- if ((0 > W))
180+@Callable(ab)
181+func registrationLeaseTx (aj,ak,al,am) = {
182+ let an = ab.callerPublicKey
183+ let h = toString(ab.caller)
184+ let ao = (((((base58'3h1H' + fromBase58String(N)) + fromBase58String(M)) + toBytes(aj)) + toBytes(ak)) + toBytes(al))
185+ let ap = sigVerify(ao, fromBase58String(am), an)
186+ let af = T(h, toBase58String(O))
187+ if (!(ap))
188+ then throw("sign is not valid")
189+ else if ((ak > 500000))
190+ then throw("invalid fee")
191+ else if (if ((aj != af))
192+ then true
193+ else (aj == 0))
194+ then throw("invalid amount")
195+ else if ((J(h) != ""))
196+ then throw("leaseTx is exist")
197+ else {
198+ let aq = toBase58String(blake2b256(ao))
199+ WriteSet([DataEntry(C(h), aq), DataEntry(F(h), af), DataEntry(L(aq), an)])
200+ }
201+ }
202+
203+
204+
205+@Callable(ab)
206+func registrationUnleaseTx (ar,ak,al,am) = {
207+ let an = ab.callerPublicKey
208+ let h = toString(ab.caller)
209+ let as = J(h)
210+ let ao = (((((base58'gm' + fromBase64String(ar)) + fromBase58String(N)) + toBytes(ak)) + toBytes(al)) + fromBase58String(as))
211+ let ap = sigVerify(ao, fromBase58String(am), an)
212+ let aq = blake2b256(ao)
213+ if (!(ap))
214+ then throw("sign is not valid")
215+ else if ((transactionHeightById(aq) == 0))
216+ then throw("blockchain does not contain this transaction")
217+ else if ((ak > 500000))
218+ then throw("invalid fee")
219+ else if ((J(h) != ""))
220+ then throw("leaseTx is exist")
221+ else WriteSet([DataEntry(C(h), ""), DataEntry(F(h), 0)])
222+ }
223+
224+
225+
226+@Callable(ab)
227+func unlockNeutrino (at,ae) = {
228+ let ad = toString(ab.caller)
229+ let y = fromBase58String(ae)
230+ let af = (T(ad, ae) - at)
231+ let au = (af - K(ad))
232+ if ((0 > au))
166233 then throw("invalid amount")
167- else if (if ((w != E))
168- then (w != F)
169- else false)
234+ else if ((y != O))
170235 then throw("can use neutrino or bond only")
171236 else {
172- let X = M(U)
173- let Q = split(X, j)
174- let Y = (size(Q) - 2)
175- let Z = if (if ((X != ""))
176- then (parseIntValue(Q[Y]) == G)
237+ let ag = V(ad)
238+ let Z = split(ag, j)
239+ let ah = (size(Z) - 2)
240+ let ai = if (if ((ag != ""))
241+ then (parseIntValue(Z[ah]) == P)
177242 else false)
178- then X
179- else P(X, O(G))
180- ScriptResult(WriteSet([DataEntry(o, (H(V) - aa)), DataEntry(v(U, V), W), DataEntry(x(U, G, V), W), DataEntry(t(U), Z)]), TransferSet([ScriptTransfer(addressFromStringValue(U), aa, E)]))
243+ then ag
244+ else Y(ag, X(P))
245+ ScriptResult(WriteSet([DataEntry(o, (Q(ae) - at)), DataEntry(x(ad, ae), af), DataEntry(z(ad, P, ae), af), DataEntry(v(ad), ai)]), TransferSet([ScriptTransfer(addressFromStringValue(ad), at, O)]))
181246 }
182247 }
183248
184249
185250
186-@Callable(S)
187-func withdraw (ab,ac) = {
188- let U = toString(S.caller)
189- let X = M(U)
190- let Q = split(X, j)
191- let ad = parseIntValue(Q[ac])
192- if (N(U, ab))
193- then throw(("account is claimed rpd_count:" + toString(ab)))
194- else if (if ((ab > ad))
251+@Callable(ab)
252+func withdraw (av,aw) = {
253+ let ad = toString(ab.caller)
254+ let ag = V(ad)
255+ let Z = split(ag, j)
256+ let ax = parseIntValue(Z[aw])
257+ if (W(ad, av))
258+ then throw(("account is claimed rpd_count:" + toString(av)))
259+ else if (if ((av > ax))
195260 then true
196- else if ((size(Q) > (ac + 2)))
197- then (parseIntValue(Q[(ac + 1)]) > ab)
261+ else if ((size(Z) > (aw + 2)))
262+ then (parseIntValue(Z[(aw + 1)]) > av)
198263 else false)
199264 then throw("invalid history index")
200265 else {
201- let ae = toBase58String(E)
202- let af = toBase58String(F)
203- let W = (L(U, ad, ae) + L(U, ad, af))
204- let ag = (((W * k) * 100) / (I(ab, ae) + I(ab, af)))
205- let ah = (((ag * J(ab)) / 100) / k)
206- ScriptResult(WriteSet([DataEntry(z(U, ab), true)]), TransferSet([ScriptTransfer(addressFromStringValue(U), ah, E)]))
266+ let ay = toBase58String(O)
267+ let af = U(ad, ax, ay)
268+ let az = (((af * k) * 100) / R(av, ay))
269+ let aA = (((az * S(av)) / 100) / k)
270+ ScriptResult(WriteSet([DataEntry(B(ad, av), true)]), TransferSet([ScriptTransfer(addressFromStringValue(ad), aA, O)]))
207271 }
208272 }
209273
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 let j = "_"
6060
6161 let k = 10000
6262
6363 let l = "neutrino_asset_id"
6464
65-let m = "bond_asset_id"
65+let m = "neutrino_contract"
6666
67-let n = "neutrino_contract"
67+let n = "node_address"
6868
6969 let o = "rpd_balance"
7070
7171 let p = "rpd_sync_index"
7272
7373 let q = "rpd_profit"
7474
7575 let r = "balance_history"
7676
7777 let s = "is_claimed"
7878
79-func t (u) = ((r + "_") + u)
79+let t = "leasetx"
80+
81+let u = "leasetx_amount"
82+
83+func v (w) = ((r + "_") + w)
8084
8185
82-func v (u,w) = ((((o + "_") + w) + "_") + u)
86+func x (w,y) = ((((o + "_") + y) + "_") + w)
8387
8488
85-func x (u,y,w) = ((v(u, w) + "_") + toString(y))
89+func z (w,A,y) = ((x(w, y) + "_") + toString(A))
8690
8791
88-func z (u,y) = ((((s + "_") + u) + "_") + toString(y))
92+func B (w,A) = ((((s + "_") + w) + "_") + toString(A))
8993
9094
91-func A (w) = ((o + "_") + w)
95+func C (w) = ((t + "_") + w)
9296
9397
94-func B (y,w) = ((((o + "_") + w) + "_") + toString(y))
98+func D (E) = ((t + "_") + E)
9599
96100
97-func C (y) = ((q + "_") + toString(y))
101+func F (w) = ((u + "_") + w)
98102
99103
100-let D = e(n)
101-
102-let E = fromBase58String(i(D, l))
103-
104-let F = fromBase58String(i(D, m))
105-
106-let G = g(D, p)
107-
108-func H (w) = a(A(w))
104+func G (y) = ((o + "_") + y)
109105
110106
111-func I (y,w) = g(D, B(y, w))
107+func H (A,y) = ((((o + "_") + y) + "_") + toString(A))
112108
113109
114-func J (y) = g(D, C(y))
110+func I (A) = ((q + "_") + toString(A))
115111
116112
117-func K (u,w) = a(v(u, w))
113+func J (w) = e(C(w))
118114
119115
120-func L (u,y,w) = a(x(u, y, w))
116+func K (w) = a(F(w))
121117
122118
123-func M (u) = e(t(u))
119+func L (E) = e(D(E))
124120
125121
126-func N (u,y) = f(z(u, y))
122+let M = e(n)
123+
124+let N = e(m)
125+
126+let O = fromBase58String(i(N, l))
127+
128+let P = g(N, p)
129+
130+func Q (y) = a(G(y))
127131
128132
129-func O (y) = (toString(y) + j)
133+func R (A,y) = g(N, H(A, y))
130134
131135
132-func P (Q,R) = (Q + R)
136+func S (A) = g(N, I(A))
133137
134138
135-@Callable(S)
139+func T (w,y) = a(x(w, y))
140+
141+
142+func U (w,A,y) = a(z(w, A, y))
143+
144+
145+func V (w) = e(v(w))
146+
147+
148+func W (w,A) = f(B(w, A))
149+
150+
151+func X (A) = (toString(A) + j)
152+
153+
154+func Y (Z,aa) = (Z + aa)
155+
156+
157+@Callable(ab)
136158 func lockNeutrino () = {
137- let T = extract(S.payment)
138- if (if ((T.assetId != E))
139- then (T.assetId != F)
140- else false)
159+ let ac = extract(ab.payment)
160+ if ((ac.assetId != O))
141161 then throw("can use neutrino or bond only")
142162 else {
143- let U = toString(S.caller)
144- let V = toBase58String(value(T.assetId))
145- let W = (K(U, V) + T.amount)
146- let X = M(U)
147- let Q = split(X, j)
148- let Y = (size(Q) - 2)
149- let Z = if (if ((X != ""))
150- then (parseIntValue(Q[Y]) == G)
163+ let ad = toString(ab.caller)
164+ let ae = toBase58String(value(ac.assetId))
165+ let af = (T(ad, ae) + ac.amount)
166+ let ag = V(ad)
167+ let Z = split(ag, j)
168+ let ah = (size(Z) - 2)
169+ let ai = if (if ((ag != ""))
170+ then (parseIntValue(Z[ah]) == P)
151171 else false)
152- then X
153- else P(X, O(G))
154- WriteSet([DataEntry(A(V), (H(V) + T.amount)), DataEntry(v(U, V), W), DataEntry(x(U, G, V), W), DataEntry(t(U), Z)])
172+ then ag
173+ else Y(ag, X(P))
174+ WriteSet([DataEntry(G(ae), (Q(ae) + ac.amount)), DataEntry(x(ad, ae), af), DataEntry(z(ad, P, ae), af), DataEntry(v(ad), ai)])
155175 }
156176 }
157177
158178
159179
160-@Callable(S)
161-func unlockNeutrino (aa,V) = {
162- let U = toString(S.caller)
163- let w = fromBase58String(V)
164- let W = (K(U, V) - aa)
165- if ((0 > W))
180+@Callable(ab)
181+func registrationLeaseTx (aj,ak,al,am) = {
182+ let an = ab.callerPublicKey
183+ let h = toString(ab.caller)
184+ let ao = (((((base58'3h1H' + fromBase58String(N)) + fromBase58String(M)) + toBytes(aj)) + toBytes(ak)) + toBytes(al))
185+ let ap = sigVerify(ao, fromBase58String(am), an)
186+ let af = T(h, toBase58String(O))
187+ if (!(ap))
188+ then throw("sign is not valid")
189+ else if ((ak > 500000))
190+ then throw("invalid fee")
191+ else if (if ((aj != af))
192+ then true
193+ else (aj == 0))
194+ then throw("invalid amount")
195+ else if ((J(h) != ""))
196+ then throw("leaseTx is exist")
197+ else {
198+ let aq = toBase58String(blake2b256(ao))
199+ WriteSet([DataEntry(C(h), aq), DataEntry(F(h), af), DataEntry(L(aq), an)])
200+ }
201+ }
202+
203+
204+
205+@Callable(ab)
206+func registrationUnleaseTx (ar,ak,al,am) = {
207+ let an = ab.callerPublicKey
208+ let h = toString(ab.caller)
209+ let as = J(h)
210+ let ao = (((((base58'gm' + fromBase64String(ar)) + fromBase58String(N)) + toBytes(ak)) + toBytes(al)) + fromBase58String(as))
211+ let ap = sigVerify(ao, fromBase58String(am), an)
212+ let aq = blake2b256(ao)
213+ if (!(ap))
214+ then throw("sign is not valid")
215+ else if ((transactionHeightById(aq) == 0))
216+ then throw("blockchain does not contain this transaction")
217+ else if ((ak > 500000))
218+ then throw("invalid fee")
219+ else if ((J(h) != ""))
220+ then throw("leaseTx is exist")
221+ else WriteSet([DataEntry(C(h), ""), DataEntry(F(h), 0)])
222+ }
223+
224+
225+
226+@Callable(ab)
227+func unlockNeutrino (at,ae) = {
228+ let ad = toString(ab.caller)
229+ let y = fromBase58String(ae)
230+ let af = (T(ad, ae) - at)
231+ let au = (af - K(ad))
232+ if ((0 > au))
166233 then throw("invalid amount")
167- else if (if ((w != E))
168- then (w != F)
169- else false)
234+ else if ((y != O))
170235 then throw("can use neutrino or bond only")
171236 else {
172- let X = M(U)
173- let Q = split(X, j)
174- let Y = (size(Q) - 2)
175- let Z = if (if ((X != ""))
176- then (parseIntValue(Q[Y]) == G)
237+ let ag = V(ad)
238+ let Z = split(ag, j)
239+ let ah = (size(Z) - 2)
240+ let ai = if (if ((ag != ""))
241+ then (parseIntValue(Z[ah]) == P)
177242 else false)
178- then X
179- else P(X, O(G))
180- ScriptResult(WriteSet([DataEntry(o, (H(V) - aa)), DataEntry(v(U, V), W), DataEntry(x(U, G, V), W), DataEntry(t(U), Z)]), TransferSet([ScriptTransfer(addressFromStringValue(U), aa, E)]))
243+ then ag
244+ else Y(ag, X(P))
245+ ScriptResult(WriteSet([DataEntry(o, (Q(ae) - at)), DataEntry(x(ad, ae), af), DataEntry(z(ad, P, ae), af), DataEntry(v(ad), ai)]), TransferSet([ScriptTransfer(addressFromStringValue(ad), at, O)]))
181246 }
182247 }
183248
184249
185250
186-@Callable(S)
187-func withdraw (ab,ac) = {
188- let U = toString(S.caller)
189- let X = M(U)
190- let Q = split(X, j)
191- let ad = parseIntValue(Q[ac])
192- if (N(U, ab))
193- then throw(("account is claimed rpd_count:" + toString(ab)))
194- else if (if ((ab > ad))
251+@Callable(ab)
252+func withdraw (av,aw) = {
253+ let ad = toString(ab.caller)
254+ let ag = V(ad)
255+ let Z = split(ag, j)
256+ let ax = parseIntValue(Z[aw])
257+ if (W(ad, av))
258+ then throw(("account is claimed rpd_count:" + toString(av)))
259+ else if (if ((av > ax))
195260 then true
196- else if ((size(Q) > (ac + 2)))
197- then (parseIntValue(Q[(ac + 1)]) > ab)
261+ else if ((size(Z) > (aw + 2)))
262+ then (parseIntValue(Z[(aw + 1)]) > av)
198263 else false)
199264 then throw("invalid history index")
200265 else {
201- let ae = toBase58String(E)
202- let af = toBase58String(F)
203- let W = (L(U, ad, ae) + L(U, ad, af))
204- let ag = (((W * k) * 100) / (I(ab, ae) + I(ab, af)))
205- let ah = (((ag * J(ab)) / 100) / k)
206- ScriptResult(WriteSet([DataEntry(z(U, ab), true)]), TransferSet([ScriptTransfer(addressFromStringValue(U), ah, E)]))
266+ let ay = toBase58String(O)
267+ let af = U(ad, ax, ay)
268+ let az = (((af * k) * 100) / R(av, ay))
269+ let aA = (((az * S(av)) / 100) / k)
270+ ScriptResult(WriteSet([DataEntry(B(ad, av), true)]), TransferSet([ScriptTransfer(addressFromStringValue(ad), aA, O)]))
207271 }
208272 }
209273
210274

github/deemru/w8io/169f3d6 
70.16 ms