tx · uMmrNjeJg6ckA2anUDeeAtVt6a5ivW4EBdkFZVHz8Pn

3N8WxMD723WNbLNF6xhbBw2Nmq5mwtYdAwq:  -0.02000000 Waves

2020.11.30 11:48 [1287938] smart account 3N8WxMD723WNbLNF6xhbBw2Nmq5mwtYdAwq > SELF 0.00000000 Waves

{ "type": 13, "id": "uMmrNjeJg6ckA2anUDeeAtVt6a5ivW4EBdkFZVHz8Pn", "fee": 2000000, "feeAssetId": null, "timestamp": 1606726161201, "version": 1, "sender": "3N8WxMD723WNbLNF6xhbBw2Nmq5mwtYdAwq", "senderPublicKey": "9DNsZT846MHG4j3B7Kmm2SqLP9jXQSYQ24HSnvaqrBWB", "proofs": [ "5fAg7W666G1TkZD2fzxWsTL96uYY35CtHT1krToxyxS4UnwEqfagL2VAdrXNGK6xsWU8EQig9jMg7N7TY7DukQ2L", "ZE1e2EL7CvTyJb2g5mFuYbWfJ223VN5sEh7CqfPmpTe5bu8RKEmiwXZnmgDysdRFPP2NmPcfzjLx2hrWBZYc5h2", "5DJtyqmYuhMjX6BmGKYaNKNLpkw5CAU9WMrFjPpCaqnNRn8gdTGspDF52unxQGRFzCxHwtUiXQezBYLHTxxagFKt" ], "script": "base64:AAIEAAAAAAAAAB4IAhIECgIIARIAEgQKAggBEgASBAoCAQgSBAoCAQgAAAAiAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQAAAAAAAAAAAAEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkCAAAAAAEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5BwEAAAAYZ2V0TnVtYmVyQnlBZGRyZXNzQW5kS2V5AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAdhZGRyZXNzBQAAAANrZXkAAAAAAAAAAAABAAAAGGdldFN0cmluZ0J5QWRkcmVzc0FuZEtleQAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AgAAAAAAAAAAEk5ldXRyaW5vQXNzZXRJZEtleQIAAAARbmV1dHJpbm9fYXNzZXRfaWQAAAAAE05ldXRyaW5vQ29udHJhY3RLZXkCAAAAEW5ldXRyaW5vX2NvbnRyYWN0AAAAAApCYWxhbmNlS2V5AgAAAAtycGRfYmFsYW5jZQAAAAASQ29udHJvbENvbnRyYWN0S2V5AgAAABBjb250cm9sX2NvbnRyYWN0AAAAAA5Oc2J0QXNzZXRJZEtleQIAAAANYm9uZF9hc3NldF9pZAAAAAAJQWRtaW5zS2V5AgAAAAZhZG1pbnMAAAAACFVTRE5UWVBFAgAAAARVU0ROAAAAAAhOU0JUVFlQRQIAAAAETlNCVAEAAAARZ2V0VXNlckJhbGFuY2VLZXkAAAACAAAABW93bmVyAAAAB2Fzc2V0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAKQmFsYW5jZUtleQIAAAABXwUAAAAHYXNzZXRJZAIAAAABXwUAAAAFb3duZXIBAAAAFWdldENvbnRyYWN0QmFsYW5jZUtleQAAAAEAAAAHYXNzZXRJZAkAASwAAAACCQABLAAAAAIFAAAACkJhbGFuY2VLZXkCAAAAAV8FAAAAB2Fzc2V0SWQBAAAAFGdldEV4cGlyZVByb3Bvc2FsS2V5AAAAAQAAAARoYXNoCQABLAAAAAIJAAEsAAAAAgIAAAAPcHJvcG9zYWxfZXhwaXJlAgAAAAFfBQAAAARoYXNoAQAAABNnZXRPd25lclByb3Bvc2FsS2V5AAAAAQAAAARoYXNoCQABLAAAAAIJAAEsAAAAAgIAAAAOcHJvcG9zYWxfb3duZXICAAAAAV8FAAAABGhhc2gBAAAAF2dldEFyZ3VtZW50c1Byb3Bvc2FsS2V5AAAAAQAAAARoYXNoCQABLAAAAAIJAAEsAAAAAgIAAAAScHJvcG9zYWxfYXJndW1lbnRzAgAAAAFfBQAAAARoYXNoAQAAAApnZXRWb3RlS2V5AAAAAgAAAAVvd25lcgAAAARoYXNoCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADXByb3Bvc2FsX3ZvdGUCAAAAAV8FAAAABW93bmVyAgAAAAFfBQAAAARoYXNoAQAAABZjb252ZXJ0SnNvbkFycmF5VG9MaXN0AAAAAQAAAAlqc29uQXJyYXkJAAS1AAAAAgUAAAAJanNvbkFycmF5AgAAAAEsAAAAABBuZXV0cmlub0NvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABNOZXV0cmlub0NvbnRyYWN0S2V5AAAAAA9jb250cm9sQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NBbmRLZXkAAAACBQAAABBuZXV0cmlub0NvbnRyYWN0BQAAABJDb250cm9sQ29udHJhY3RLZXkAAAAAD25ldXRyaW5vQXNzZXRJZAkAAlkAAAABCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzQW5kS2V5AAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAUAAAASTmV1dHJpbm9Bc3NldElkS2V5AAAAAA5uc2J0QXNzZXRJZFN0cgkBAAAAGGdldFN0cmluZ0J5QWRkcmVzc0FuZEtleQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QFAAAADk5zYnRBc3NldElkS2V5AAAAAAtuc2J0QXNzZXRJZAkAAlkAAAABBQAAAA5uc2J0QXNzZXRJZFN0cgEAAAASZ2V0Q29udHJhY3RCYWxhbmNlAAAAAQAAAAdhc3NldElkCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0Q29udHJhY3RCYWxhbmNlS2V5AAAAAQUAAAAHYXNzZXRJZAEAAAAOZ2V0VXNlckJhbGFuY2UAAAACAAAABW93bmVyAAAAB2Fzc2V0SWQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABFnZXRVc2VyQmFsYW5jZUtleQAAAAIFAAAABW93bmVyBQAAAAdhc3NldElkAQAAABNnZXRSZXdhcmRzQ29uZmlnS2V5AAAAAwAAAAVvd25lcgAAAAVzaGFyZQAAAAhyZWNlaXZlcgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADnN0YWtpbmdjb25maWdfBQAAAAVvd25lcgIAAAABXwkAAaQAAAABBQAAAAVzaGFyZQIAAAABXwUAAAAIcmVjZWl2ZXIBAAAAGmdldEN1cnJlbnRSZXdhcmRzQ29uZmlnS2V5AAAAAQAAAAVvd25lcgkAASwAAAACAgAAABZzdGFraW5nY29uZmlnX2N1cnJlbnRfBQAAAAVvd25lcgEAAAAYZ2V0UmV3YXJkc0NvbmZpZ1N0YXJ0S2V5AAAAAgAAAAljb25maWdLZXkAAAAHaXNTdGFydAkAASwAAAACBQAAAAljb25maWdLZXkDBQAAAAdpc1N0YXJ0AgAAAAZfc3RhcnQCAAAABF9lbmQBAAAAG2dldFJld2FyZENvbmZpZ0luaXRpYWxTaGFyZQAAAAEAAAAFb3duZXIJAAEsAAAAAgUAAAAFb3duZXICAAAADV9pbml0aWFsU2hhcmUBAAAAGmdldFZhbGlkU3Rha2luZ0Fzc2V0T3JGYWlsAAAAAgAAAAtzdGFraW5nVHlwZQAAAAdhc3NldElkAwMJAAAAAAAAAgUAAAALc3Rha2luZ1R5cGUFAAAACFVTRE5UWVBFCQEAAAACIT0AAAACBQAAAAdhc3NldElkBQAAAA9uZXV0cmlub0Fzc2V0SWQHCQAAAgAAAAECAAAAEWNhbiB1c2UgVVNETiBvbmx5AwMJAAAAAAAAAgUAAAALc3Rha2luZ1R5cGUFAAAACE5TQlRUWVBFCQEAAAACIT0AAAACBQAAAAdhc3NldElkBQAAAAtuc2J0QXNzZXRJZAcJAAACAAAAAQIAAAARY2FuIHVzZSBOU0JUIG9ubHkDAwkBAAAAAiE9AAAAAgUAAAALc3Rha2luZ1R5cGUFAAAACFVTRE5UWVBFCQEAAAACIT0AAAACBQAAAAtzdGFraW5nVHlwZQUAAAAITlNCVFRZUEUHCQAAAgAAAAEJAAEsAAAAAgIAAAAZdW5zdXBwb3J0ZWQgc3Rha2luZyB0eXBlIAUAAAALc3Rha2luZ1R5cGUFAAAAB2Fzc2V0SWQBAAAAFGludGVybmFsTG9ja05ldXRyaW5vAAAABAAAAAtzdGFraW5nVHlwZQAAAAFpAAAACHJlY2VpdmVyAAAABXNoYXJlBAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAB2Fzc2V0SWQJAQAAABpnZXRWYWxpZFN0YWtpbmdBc3NldE9yRmFpbAAAAAIFAAAAC3N0YWtpbmdUeXBlCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCQAEJgAAAAEFAAAACHJlY2VpdmVyCQAAAgAAAAEJAAEsAAAAAgIAAAAXSW52YWxpZCBhZGRyZXNzIGZvcm1hdCAFAAAACHJlY2VpdmVyAwkAAGYAAAACBQAAAAVzaGFyZQAAAAAAAAAAZAkAAAIAAAABAgAAADBzdGFraW5nIHJld2FyZHMgc2hhcmUgY2Fubm90IGJlIGhpZ2hlciB0aGFuIDEwMCUDCQAAZgAAAAIAAAAAAAAAAAEFAAAABXNoYXJlCQAAAgAAAAECAAAALXN0YWtpbmcgcmV3YXJkcyBzaGFyZSBjYW5ub3QgYmUgbG93ZXIgdGhhbiAxJQQAAAAHYWNjb3VudAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADWFzc2V0SWRTdHJpbmcJAAJYAAAAAQUAAAAHYXNzZXRJZAQAAAANY3VycmVudENvbmZpZwkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAGmdldEN1cnJlbnRSZXdhcmRzQ29uZmlnS2V5AAAAAQUAAAAHYWNjb3VudAQAAAALY29ycmVjdERhdGEDCQEAAAACIT0AAAACBQAAAA1jdXJyZW50Q29uZmlnAgAAAAAEAAAAEWN1cnJlbnRDb25maWdEYXRhCQAEtQAAAAIFAAAADWN1cnJlbnRDb25maWcCAAAAAV8EAAAACWN1cnJTaGFyZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAEWN1cnJlbnRDb25maWdEYXRhAAAAAAAAAAACBAAAAAxjdXJyUmVjZWl2ZXIJAAGRAAAAAgUAAAARY3VycmVudENvbmZpZ0RhdGEAAAAAAAAAAAMEAAAAF25vdE1pZ3JhdGVkSW5pdGlhbFNoYXJlCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAbZ2V0UmV3YXJkQ29uZmlnSW5pdGlhbFNoYXJlAAAAAQUAAAAHYWNjb3VudAQAAAASYWN0dWFsSW5pdGlhbFNoYXJlAwkAAAAAAAACBQAAABdub3RNaWdyYXRlZEluaXRpYWxTaGFyZQAAAAAAAAAAAAUAAAAJY3VyclNoYXJlBQAAABdub3RNaWdyYXRlZEluaXRpYWxTaGFyZQQAAAAIbmV3U2hhcmUDAwkAAGYAAAACBQAAABJhY3R1YWxJbml0aWFsU2hhcmUFAAAABXNoYXJlBgkBAAAAAiE9AAAAAgUAAAAMY3VyclJlY2VpdmVyBQAAAAhyZWNlaXZlcgUAAAASYWN0dWFsSW5pdGlhbFNoYXJlBQAAAAVzaGFyZQkABEwAAAACCQABpAAAAAEFAAAAEmFjdHVhbEluaXRpYWxTaGFyZQkABEwAAAACCQABpAAAAAEFAAAACG5ld1NoYXJlCQAETAAAAAIFAAAADGN1cnJSZWNlaXZlcgUAAAADbmlsCQAETAAAAAIJAAGkAAAAAQUAAAAFc2hhcmUJAARMAAAAAgkAAaQAAAABBQAAAAVzaGFyZQkABEwAAAACBQAAAAhyZWNlaXZlcgUAAAADbmlsBAAAABNjb3JyZWN0SW5pdGlhbFNoYXJlCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAALY29ycmVjdERhdGEAAAAAAAAAAAAEAAAADGNvcnJlY3RTaGFyZQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAC2NvcnJlY3REYXRhAAAAAAAAAAABBAAAAA9jb3JyZWN0UmVjZWl2ZXIJAAGRAAAAAgUAAAALY29ycmVjdERhdGEAAAAAAAAAAAIEAAAAEG5ld0N1cnJlbnRDb25maWcJAQAAABNnZXRSZXdhcmRzQ29uZmlnS2V5AAAAAwUAAAAHYWNjb3VudAUAAAAMY29ycmVjdFNoYXJlBQAAAA9jb3JyZWN0UmVjZWl2ZXIEAAAAC2lzTmV3Q29uZmlnCQEAAAABIQAAAAEJAAAAAAAAAgUAAAANY3VycmVudENvbmZpZwUAAAAQbmV3Q3VycmVudENvbmZpZwQAAAADZW5kAwUAAAALaXNOZXdDb25maWcFAAAABmhlaWdodAAAAAAAAAAAAAQAAAAFc3RhcnQDBQAAAAtpc05ld0NvbmZpZwUAAAAGaGVpZ2h0CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0UmV3YXJkc0NvbmZpZ1N0YXJ0S2V5AAAAAgUAAAAQbmV3Q3VycmVudENvbmZpZwYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABVnZXRDb250cmFjdEJhbGFuY2VLZXkAAAABBQAAAA1hc3NldElkU3RyaW5nCQAAZAAAAAIJAQAAABJnZXRDb250cmFjdEJhbGFuY2UAAAABBQAAAA1hc3NldElkU3RyaW5nCAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldFVzZXJCYWxhbmNlS2V5AAAAAgUAAAAHYWNjb3VudAUAAAANYXNzZXRJZFN0cmluZwkAAGQAAAACCQEAAAAOZ2V0VXNlckJhbGFuY2UAAAACBQAAAAdhY2NvdW50BQAAAA1hc3NldElkU3RyaW5nCAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAGGdldFJld2FyZHNDb25maWdTdGFydEtleQAAAAIFAAAADWN1cnJlbnRDb25maWcHBQAAAANlbmQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABhnZXRSZXdhcmRzQ29uZmlnU3RhcnRLZXkAAAACBQAAABBuZXdDdXJyZW50Q29uZmlnBgUAAAAFc3RhcnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABtnZXRSZXdhcmRDb25maWdJbml0aWFsU2hhcmUAAAABBQAAAAdhY2NvdW50BQAAABNjb3JyZWN0SW5pdGlhbFNoYXJlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABpnZXRDdXJyZW50UmV3YXJkc0NvbmZpZ0tleQAAAAEFAAAAB2FjY291bnQFAAAAEG5ld0N1cnJlbnRDb25maWcFAAAAA25pbAEAAAAOaW50ZXJuYWxVbmxvY2sAAAAEAAAAC3N0YWtpbmdUeXBlAAAAAWkAAAAMdW5sb2NrQW1vdW50AAAADGFzc2V0SWRQYXJhbQQAAAAHYWNjb3VudAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAB2Fzc2V0SWQJAQAAABpnZXRWYWxpZFN0YWtpbmdBc3NldE9yRmFpbAAAAAIFAAAAC3N0YWtpbmdUeXBlCQACWQAAAAEFAAAADGFzc2V0SWRQYXJhbQQAAAANYXNzZXRJZFN0cmluZwkAAlgAAAABBQAAAAdhc3NldElkBAAAAAdiYWxhbmNlCQAAZQAAAAIJAQAAAA5nZXRVc2VyQmFsYW5jZQAAAAIFAAAAB2FjY291bnQFAAAADWFzc2V0SWRTdHJpbmcFAAAADHVubG9ja0Ftb3VudAMJAABnAAAAAgAAAAAAAAAAAAUAAAAHYmFsYW5jZQkAAAIAAAABAgAAAA5pbnZhbGlkIGFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFWdldENvbnRyYWN0QmFsYW5jZUtleQAAAAEFAAAADWFzc2V0SWRTdHJpbmcJAABlAAAAAgkBAAAAEmdldENvbnRyYWN0QmFsYW5jZQAAAAEFAAAADWFzc2V0SWRTdHJpbmcFAAAADHVubG9ja0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldFVzZXJCYWxhbmNlS2V5AAAAAgUAAAAHYWNjb3VudAUAAAANYXNzZXRJZFN0cmluZwUAAAAHYmFsYW5jZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAdhY2NvdW50BQAAAAx1bmxvY2tBbW91bnQFAAAAB2Fzc2V0SWQFAAAAA25pbAAAAAYAAAABaQEAAAAObG9ja05ldXRyaW5vU1AAAAACAAAACHJlY2VpdmVyAAAABXNoYXJlCQEAAAAUaW50ZXJuYWxMb2NrTmV1dHJpbm8AAAAEBQAAAAhVU0ROVFlQRQUAAAABaQUAAAAIcmVjZWl2ZXIFAAAABXNoYXJlAAAAAWkBAAAADGxvY2tOZXV0cmlubwAAAAAJAQAAABRpbnRlcm5hbExvY2tOZXV0cmlubwAAAAQFAAAACFVTRE5UWVBFBQAAAAFpCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgAAAAAAAAAAZAAAAAFpAQAAAApsb2NrTnNidFNQAAAAAgAAAAhyZWNlaXZlcgAAAAVzaGFyZQkBAAAAFGludGVybmFsTG9ja05ldXRyaW5vAAAABAUAAAAITlNCVFRZUEUFAAAAAWkFAAAACHJlY2VpdmVyBQAAAAVzaGFyZQAAAAFpAQAAAAhsb2NrTnNidAAAAAAJAQAAABRpbnRlcm5hbExvY2tOZXV0cmlubwAAAAQFAAAACE5TQlRUWVBFBQAAAAFpCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgAAAAAAAAAAZAAAAAFpAQAAAA51bmxvY2tOZXV0cmlubwAAAAIAAAAMdW5sb2NrQW1vdW50AAAADWFzc2V0SWRTdHJpbmcJAQAAAA5pbnRlcm5hbFVubG9jawAAAAQFAAAACFVTRE5UWVBFBQAAAAFpBQAAAAx1bmxvY2tBbW91bnQFAAAADWFzc2V0SWRTdHJpbmcAAAABaQEAAAAKdW5sb2NrTnNidAAAAAIAAAAMdW5sb2NrQW1vdW50AAAADWFzc2V0SWRTdHJpbmcJAQAAAA5pbnRlcm5hbFVubG9jawAAAAQFAAAACE5TQlRUWVBFBQAAAAFpBQAAAAx1bmxvY2tBbW91bnQFAAAADWFzc2V0SWRTdHJpbmcAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAABBwdWJLZXlBZG1pbnNMaXN0CQAETAAAAAICAAAALEdYeG1aYUNpZ1BnSnNUNmQxY0xyOG5VWEE2NW5HWDhWN0Z1QXp6clk4d1FFCQAETAAAAAICAAAALDN4dW14NGhyUHBlZW9vNzlITEdiWkNnZno5NUwzOVpGZHh4d1dlU1VDMlB1CQAETAAAAAICAAAALEQ0Q3F0SzVmQnNuelJvMzNaTWhyTTduaUxzZURIMnVSb0s2d2VCcTJKUTNBCQAETAAAAAICAAAALDVXUlhGU2p3Y1RiTmZLY0pzOFpxWG1TU1dZc1NWSlV0TXZNcVpqNWhINE5jBQAAAANuaWwEAAAABWNvdW50CQAAZAAAAAIJAABkAAAAAgkAAGQAAAACAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAACAAAAAAAAAAABAAAAAAAAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAMJAAJZAAAAAQkAAZEAAAACBQAAABBwdWJLZXlBZG1pbnNMaXN0AAAAAAAAAAADAAAAAAAAAAACAAAAAAAAAAAACQAAZwAAAAIFAAAABWNvdW50AAAAAAAAAAADuKg7Dg==", "chainId": 84, "height": 1287938, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fh5fKNodeoLXetthR3tF65bzzduz2NdnPVXRyhyLeEyD Next: 643hiLGhHVvypPUjPaZDfnScYcjq2TNnzMZ4kouGtJ9M Diff:
OldNewDifferences
2828
2929 let m = "admins"
3030
31-func n (o,p) = ((((j + "_") + p) + "_") + o)
31+let n = "USDN"
32+
33+let o = "NSBT"
34+
35+func p (q,r) = ((((j + "_") + r) + "_") + q)
3236
3337
34-func q (p) = ((j + "_") + p)
38+func s (r) = ((j + "_") + r)
3539
3640
37-func r (s) = (("proposal_expire" + "_") + s)
41+func t (u) = (("proposal_expire" + "_") + u)
3842
3943
40-func t (s) = (("proposal_owner" + "_") + s)
44+func v (u) = (("proposal_owner" + "_") + u)
4145
4246
43-func u (s) = (("proposal_arguments" + "_") + s)
47+func w (u) = (("proposal_arguments" + "_") + u)
4448
4549
46-func v (o,s) = (((("proposal_vote" + "_") + o) + "_") + s)
50+func x (q,u) = (((("proposal_vote" + "_") + q) + "_") + u)
4751
4852
49-func w (x) = split(x, ",")
53+func y (z) = split(z, ",")
5054
5155
52-let y = addressFromStringValue(c(i))
56+let A = addressFromStringValue(c(i))
5357
54-let z = addressFromStringValue(g(y, k))
58+let B = addressFromStringValue(g(A, k))
5559
56-let A = fromBase58String(g(y, h))
60+let C = fromBase58String(g(A, h))
5761
58-let B = g(y, l)
62+let D = g(A, l)
5963
60-let C = fromBase58String(B)
64+let E = fromBase58String(D)
6165
62-func D (p) = a(q(p))
66+func F (r) = a(s(r))
6367
6468
65-func E (o,p) = a(n(o, p))
69+func G (q,r) = a(p(q, r))
6670
6771
68-func F (s) = a(r(s))
72+func H (q,I,J) = ((((("stakingconfig_" + q) + "_") + toString(I)) + "_") + J)
6973
7074
71-func G (s) = c(t(s))
75+func K (q) = ("stakingconfig_current_" + q)
7276
7377
74-func H (s) = c(u(s))
75-
76-
77-func I (o,s) = c(v(o, s))
78-
79-
80-func J (o,K,L) = ((((("stakingconfig_" + o) + "_") + toString(K)) + "_") + L)
81-
82-
83-func M (o) = ("stakingconfig_current_" + o)
84-
85-
86-func N (O,P) = (O + (if (P)
78+func L (M,N) = (M + (if (N)
8779 then "_start"
8880 else "_end"))
8981
9082
91-func Q (o) = (o + "_initialShare")
83+func O (q) = (q + "_initialShare")
9284
9385
94-func R (S,L,K) = {
86+func P (Q,r) = if (if ((Q == n))
87+ then (r != C)
88+ else false)
89+ then throw("can use USDN only")
90+ else if (if ((Q == o))
91+ then (r != E)
92+ else false)
93+ then throw("can use NSBT only")
94+ else if (if ((Q != n))
95+ then (Q != o)
96+ else false)
97+ then throw(("unsupported staking type " + Q))
98+ else r
99+
100+
101+func R (Q,S,J,I) = {
95102 let T = value(S.payments[0])
96- if (!(isDefined(addressFromString(L))))
97- then throw(("Invalid address format " + L))
98- else if (if ((T.assetId != A))
99- then (T.assetId != C)
100- else false)
101- then throw("can use USDN or NSBT only")
102- else if ((K > 100))
103- then throw("staking rewards share cannot be higher than 100%")
104- else if ((1 > K))
105- then throw("staking rewards share cannot be lower than 1%")
106- else {
107- let U = toString(S.caller)
108- let V = toBase58String(value(T.assetId))
109- let W = c(M(U))
110- let X = if ((W != ""))
111- then {
112- let Y = split(W, "_")
113- let Z = parseIntValue(Y[2])
114- let aa = Y[3]
115- let ab = a(Q(U))
116- let ac = if ((ab == 0))
117- then Z
118- else ab
119- let ad = if (if ((ac > K))
120- then true
121- else (aa != L))
122- then ac
123- else K
103+ let r = P(Q, value(T.assetId))
104+ if (!(isDefined(addressFromString(J))))
105+ then throw(("Invalid address format " + J))
106+ else if ((I > 100))
107+ then throw("staking rewards share cannot be higher than 100%")
108+ else if ((1 > I))
109+ then throw("staking rewards share cannot be lower than 1%")
110+ else {
111+ let U = toString(S.caller)
112+ let V = toBase58String(r)
113+ let W = c(K(U))
114+ let X = if ((W != ""))
115+ then {
116+ let Y = split(W, "_")
117+ let Z = parseIntValue(Y[2])
118+ let aa = Y[3]
119+ let ab = a(O(U))
120+ let ac = if ((ab == 0))
121+ then Z
122+ else ab
123+ let ad = if (if ((ac > I))
124+ then true
125+ else (aa != J))
126+ then ac
127+ else I
124128 [toString(ac), toString(ad), aa]
125- }
126- else [toString(K), toString(K), L]
127- let ae = parseIntValue(X[0])
128- let af = parseIntValue(X[1])
129- let ag = X[2]
130- let ah = J(U, af, ag)
131- let ai = !((W == ah))
132- let aj = if (ai)
133- then height
134- else 0
135- let ak = if (ai)
136- then height
137- else a(N(ah, true))
138-[IntegerEntry(q(V), (D(V) + T.amount)), IntegerEntry(n(U, V), (E(U, V) + T.amount)), IntegerEntry(N(W, false), aj), IntegerEntry(N(ah, true), ak), IntegerEntry(Q(U), ae), StringEntry(M(U), ah)]
139- }
129+ }
130+ else [toString(I), toString(I), J]
131+ let ae = parseIntValue(X[0])
132+ let af = parseIntValue(X[1])
133+ let ag = X[2]
134+ let ah = H(U, af, ag)
135+ let ai = !((W == ah))
136+ let aj = if (ai)
137+ then height
138+ else 0
139+ let ak = if (ai)
140+ then height
141+ else a(L(ah, true))
142+[IntegerEntry(s(V), (F(V) + T.amount)), IntegerEntry(p(U, V), (G(U, V) + T.amount)), IntegerEntry(L(W, false), aj), IntegerEntry(L(ah, true), ak), IntegerEntry(O(U), ae), StringEntry(K(U), ah)]
143+ }
144+ }
145+
146+
147+func al (Q,S,am,an) = {
148+ let U = toString(S.caller)
149+ let r = P(Q, fromBase58String(an))
150+ let V = toBase58String(r)
151+ let ao = (G(U, V) - am)
152+ if ((0 >= ao))
153+ then throw("invalid amount")
154+ else [IntegerEntry(s(V), (F(V) - am)), IntegerEntry(p(U, V), ao), ScriptTransfer(addressFromStringValue(U), am, r)]
140155 }
141156
142157
143158 @Callable(S)
144-func lockNeutrinoSP (L,K) = R(S, L, K)
159+func lockNeutrinoSP (J,I) = R(n, S, J, I)
145160
146161
147162
148163 @Callable(S)
149-func lockNeutrino () = R(S, toString(S.caller), 100)
164+func lockNeutrino () = R(n, S, toString(S.caller), 100)
150165
151166
152167
153168 @Callable(S)
154-func unlockNeutrino (al,V) = {
155- let U = toString(S.caller)
156- let p = fromBase58String(V)
157- let am = (E(U, V) - al)
158- if ((0 > am))
159- then throw("invalid amount")
160- else if ((p != A))
161- then throw("can use neutrino")
162- else [IntegerEntry(q(V), (D(V) - al)), IntegerEntry(n(U, V), am), ScriptTransfer(addressFromStringValue(U), al, A)]
163- }
169+func lockNsbtSP (J,I) = R(o, S, J, I)
164170
165171
166172
167173 @Callable(S)
168-func vote (s,an) = {
169- let ao = split(H(s), ",")
170- let ap = ao[an]
171- if ((height > F(s)))
172- then throw("proposal is expired")
173- else [StringEntry(v(toString(S.caller), s), ap)]
174- }
174+func lockNsbt () = R(o, S, toString(S.caller), 100)
175175
176176
177177
178178 @Callable(S)
179-func createProposal (ao,aq) = {
180- let s = toBase58String(keccak256(((toBytes(ao) + toBytes(aq)) + S.callerPublicKey)))
181- if ((G(s) != ""))
182- then throw("proposal is exist")
183- else [IntegerEntry(r(s), aq), StringEntry(t(s), toString(S.caller)), StringEntry(u(s), ao)]
184- }
179+func unlockNeutrino (am,V) = al(n, S, am, V)
185180
186181
187-@Verifier(ar)
188-func as () = {
189- let at = ["GXxmZaCigPgJsT6d1cLr8nUXA65nGX8V7FuAzzrY8wQE", "3xumx4hrPpeeoo79HLGbZCgfz95L39ZFdxxwWeSUC2Pu", "D4CqtK5fBsnzRo33ZMhrM7niLseDH2uRoK6weBq2JQ3A", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
190- let au = ((((if (sigVerify(ar.bodyBytes, ar.proofs[0], fromBase58String(at[0])))
182+
183+@Callable(S)
184+func unlockNsbt (am,V) = al(o, S, am, V)
185+
186+
187+@Verifier(ap)
188+func aq () = {
189+ let ar = ["GXxmZaCigPgJsT6d1cLr8nUXA65nGX8V7FuAzzrY8wQE", "3xumx4hrPpeeoo79HLGbZCgfz95L39ZFdxxwWeSUC2Pu", "D4CqtK5fBsnzRo33ZMhrM7niLseDH2uRoK6weBq2JQ3A", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
190+ let as = ((((if (sigVerify(ap.bodyBytes, ap.proofs[0], fromBase58String(ar[0])))
191191 then 1
192- else 0) + (if (sigVerify(ar.bodyBytes, ar.proofs[1], fromBase58String(at[1])))
192+ else 0) + (if (sigVerify(ap.bodyBytes, ap.proofs[1], fromBase58String(ar[1])))
193193 then 1
194- else 0)) + (if (sigVerify(ar.bodyBytes, ar.proofs[2], fromBase58String(at[2])))
194+ else 0)) + (if (sigVerify(ap.bodyBytes, ap.proofs[2], fromBase58String(ar[2])))
195195 then 1
196- else 0)) + (if (sigVerify(ar.bodyBytes, ar.proofs[3], fromBase58String(at[3])))
196+ else 0)) + (if (sigVerify(ap.bodyBytes, ap.proofs[3], fromBase58String(ar[3])))
197197 then 2
198198 else 0))
199- (au >= 3)
199+ (as >= 3)
200200 }
201201
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = valueOrElse(getInteger(this, b), 0)
55
66
77 func c (b) = valueOrElse(getString(this, b), "")
88
99
1010 func d (b) = valueOrElse(getBoolean(this, b), false)
1111
1212
1313 func e (f,b) = valueOrElse(getInteger(addressFromStringValue(f), b), 0)
1414
1515
1616 func g (f,b) = valueOrElse(getString(f, b), "")
1717
1818
1919 let h = "neutrino_asset_id"
2020
2121 let i = "neutrino_contract"
2222
2323 let j = "rpd_balance"
2424
2525 let k = "control_contract"
2626
2727 let l = "bond_asset_id"
2828
2929 let m = "admins"
3030
31-func n (o,p) = ((((j + "_") + p) + "_") + o)
31+let n = "USDN"
32+
33+let o = "NSBT"
34+
35+func p (q,r) = ((((j + "_") + r) + "_") + q)
3236
3337
34-func q (p) = ((j + "_") + p)
38+func s (r) = ((j + "_") + r)
3539
3640
37-func r (s) = (("proposal_expire" + "_") + s)
41+func t (u) = (("proposal_expire" + "_") + u)
3842
3943
40-func t (s) = (("proposal_owner" + "_") + s)
44+func v (u) = (("proposal_owner" + "_") + u)
4145
4246
43-func u (s) = (("proposal_arguments" + "_") + s)
47+func w (u) = (("proposal_arguments" + "_") + u)
4448
4549
46-func v (o,s) = (((("proposal_vote" + "_") + o) + "_") + s)
50+func x (q,u) = (((("proposal_vote" + "_") + q) + "_") + u)
4751
4852
49-func w (x) = split(x, ",")
53+func y (z) = split(z, ",")
5054
5155
52-let y = addressFromStringValue(c(i))
56+let A = addressFromStringValue(c(i))
5357
54-let z = addressFromStringValue(g(y, k))
58+let B = addressFromStringValue(g(A, k))
5559
56-let A = fromBase58String(g(y, h))
60+let C = fromBase58String(g(A, h))
5761
58-let B = g(y, l)
62+let D = g(A, l)
5963
60-let C = fromBase58String(B)
64+let E = fromBase58String(D)
6165
62-func D (p) = a(q(p))
66+func F (r) = a(s(r))
6367
6468
65-func E (o,p) = a(n(o, p))
69+func G (q,r) = a(p(q, r))
6670
6771
68-func F (s) = a(r(s))
72+func H (q,I,J) = ((((("stakingconfig_" + q) + "_") + toString(I)) + "_") + J)
6973
7074
71-func G (s) = c(t(s))
75+func K (q) = ("stakingconfig_current_" + q)
7276
7377
74-func H (s) = c(u(s))
75-
76-
77-func I (o,s) = c(v(o, s))
78-
79-
80-func J (o,K,L) = ((((("stakingconfig_" + o) + "_") + toString(K)) + "_") + L)
81-
82-
83-func M (o) = ("stakingconfig_current_" + o)
84-
85-
86-func N (O,P) = (O + (if (P)
78+func L (M,N) = (M + (if (N)
8779 then "_start"
8880 else "_end"))
8981
9082
91-func Q (o) = (o + "_initialShare")
83+func O (q) = (q + "_initialShare")
9284
9385
94-func R (S,L,K) = {
86+func P (Q,r) = if (if ((Q == n))
87+ then (r != C)
88+ else false)
89+ then throw("can use USDN only")
90+ else if (if ((Q == o))
91+ then (r != E)
92+ else false)
93+ then throw("can use NSBT only")
94+ else if (if ((Q != n))
95+ then (Q != o)
96+ else false)
97+ then throw(("unsupported staking type " + Q))
98+ else r
99+
100+
101+func R (Q,S,J,I) = {
95102 let T = value(S.payments[0])
96- if (!(isDefined(addressFromString(L))))
97- then throw(("Invalid address format " + L))
98- else if (if ((T.assetId != A))
99- then (T.assetId != C)
100- else false)
101- then throw("can use USDN or NSBT only")
102- else if ((K > 100))
103- then throw("staking rewards share cannot be higher than 100%")
104- else if ((1 > K))
105- then throw("staking rewards share cannot be lower than 1%")
106- else {
107- let U = toString(S.caller)
108- let V = toBase58String(value(T.assetId))
109- let W = c(M(U))
110- let X = if ((W != ""))
111- then {
112- let Y = split(W, "_")
113- let Z = parseIntValue(Y[2])
114- let aa = Y[3]
115- let ab = a(Q(U))
116- let ac = if ((ab == 0))
117- then Z
118- else ab
119- let ad = if (if ((ac > K))
120- then true
121- else (aa != L))
122- then ac
123- else K
103+ let r = P(Q, value(T.assetId))
104+ if (!(isDefined(addressFromString(J))))
105+ then throw(("Invalid address format " + J))
106+ else if ((I > 100))
107+ then throw("staking rewards share cannot be higher than 100%")
108+ else if ((1 > I))
109+ then throw("staking rewards share cannot be lower than 1%")
110+ else {
111+ let U = toString(S.caller)
112+ let V = toBase58String(r)
113+ let W = c(K(U))
114+ let X = if ((W != ""))
115+ then {
116+ let Y = split(W, "_")
117+ let Z = parseIntValue(Y[2])
118+ let aa = Y[3]
119+ let ab = a(O(U))
120+ let ac = if ((ab == 0))
121+ then Z
122+ else ab
123+ let ad = if (if ((ac > I))
124+ then true
125+ else (aa != J))
126+ then ac
127+ else I
124128 [toString(ac), toString(ad), aa]
125- }
126- else [toString(K), toString(K), L]
127- let ae = parseIntValue(X[0])
128- let af = parseIntValue(X[1])
129- let ag = X[2]
130- let ah = J(U, af, ag)
131- let ai = !((W == ah))
132- let aj = if (ai)
133- then height
134- else 0
135- let ak = if (ai)
136- then height
137- else a(N(ah, true))
138-[IntegerEntry(q(V), (D(V) + T.amount)), IntegerEntry(n(U, V), (E(U, V) + T.amount)), IntegerEntry(N(W, false), aj), IntegerEntry(N(ah, true), ak), IntegerEntry(Q(U), ae), StringEntry(M(U), ah)]
139- }
129+ }
130+ else [toString(I), toString(I), J]
131+ let ae = parseIntValue(X[0])
132+ let af = parseIntValue(X[1])
133+ let ag = X[2]
134+ let ah = H(U, af, ag)
135+ let ai = !((W == ah))
136+ let aj = if (ai)
137+ then height
138+ else 0
139+ let ak = if (ai)
140+ then height
141+ else a(L(ah, true))
142+[IntegerEntry(s(V), (F(V) + T.amount)), IntegerEntry(p(U, V), (G(U, V) + T.amount)), IntegerEntry(L(W, false), aj), IntegerEntry(L(ah, true), ak), IntegerEntry(O(U), ae), StringEntry(K(U), ah)]
143+ }
144+ }
145+
146+
147+func al (Q,S,am,an) = {
148+ let U = toString(S.caller)
149+ let r = P(Q, fromBase58String(an))
150+ let V = toBase58String(r)
151+ let ao = (G(U, V) - am)
152+ if ((0 >= ao))
153+ then throw("invalid amount")
154+ else [IntegerEntry(s(V), (F(V) - am)), IntegerEntry(p(U, V), ao), ScriptTransfer(addressFromStringValue(U), am, r)]
140155 }
141156
142157
143158 @Callable(S)
144-func lockNeutrinoSP (L,K) = R(S, L, K)
159+func lockNeutrinoSP (J,I) = R(n, S, J, I)
145160
146161
147162
148163 @Callable(S)
149-func lockNeutrino () = R(S, toString(S.caller), 100)
164+func lockNeutrino () = R(n, S, toString(S.caller), 100)
150165
151166
152167
153168 @Callable(S)
154-func unlockNeutrino (al,V) = {
155- let U = toString(S.caller)
156- let p = fromBase58String(V)
157- let am = (E(U, V) - al)
158- if ((0 > am))
159- then throw("invalid amount")
160- else if ((p != A))
161- then throw("can use neutrino")
162- else [IntegerEntry(q(V), (D(V) - al)), IntegerEntry(n(U, V), am), ScriptTransfer(addressFromStringValue(U), al, A)]
163- }
169+func lockNsbtSP (J,I) = R(o, S, J, I)
164170
165171
166172
167173 @Callable(S)
168-func vote (s,an) = {
169- let ao = split(H(s), ",")
170- let ap = ao[an]
171- if ((height > F(s)))
172- then throw("proposal is expired")
173- else [StringEntry(v(toString(S.caller), s), ap)]
174- }
174+func lockNsbt () = R(o, S, toString(S.caller), 100)
175175
176176
177177
178178 @Callable(S)
179-func createProposal (ao,aq) = {
180- let s = toBase58String(keccak256(((toBytes(ao) + toBytes(aq)) + S.callerPublicKey)))
181- if ((G(s) != ""))
182- then throw("proposal is exist")
183- else [IntegerEntry(r(s), aq), StringEntry(t(s), toString(S.caller)), StringEntry(u(s), ao)]
184- }
179+func unlockNeutrino (am,V) = al(n, S, am, V)
185180
186181
187-@Verifier(ar)
188-func as () = {
189- let at = ["GXxmZaCigPgJsT6d1cLr8nUXA65nGX8V7FuAzzrY8wQE", "3xumx4hrPpeeoo79HLGbZCgfz95L39ZFdxxwWeSUC2Pu", "D4CqtK5fBsnzRo33ZMhrM7niLseDH2uRoK6weBq2JQ3A", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
190- let au = ((((if (sigVerify(ar.bodyBytes, ar.proofs[0], fromBase58String(at[0])))
182+
183+@Callable(S)
184+func unlockNsbt (am,V) = al(o, S, am, V)
185+
186+
187+@Verifier(ap)
188+func aq () = {
189+ let ar = ["GXxmZaCigPgJsT6d1cLr8nUXA65nGX8V7FuAzzrY8wQE", "3xumx4hrPpeeoo79HLGbZCgfz95L39ZFdxxwWeSUC2Pu", "D4CqtK5fBsnzRo33ZMhrM7niLseDH2uRoK6weBq2JQ3A", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
190+ let as = ((((if (sigVerify(ap.bodyBytes, ap.proofs[0], fromBase58String(ar[0])))
191191 then 1
192- else 0) + (if (sigVerify(ar.bodyBytes, ar.proofs[1], fromBase58String(at[1])))
192+ else 0) + (if (sigVerify(ap.bodyBytes, ap.proofs[1], fromBase58String(ar[1])))
193193 then 1
194- else 0)) + (if (sigVerify(ar.bodyBytes, ar.proofs[2], fromBase58String(at[2])))
194+ else 0)) + (if (sigVerify(ap.bodyBytes, ap.proofs[2], fromBase58String(ar[2])))
195195 then 1
196- else 0)) + (if (sigVerify(ar.bodyBytes, ar.proofs[3], fromBase58String(at[3])))
196+ else 0)) + (if (sigVerify(ap.bodyBytes, ap.proofs[3], fromBase58String(ar[3])))
197197 then 2
198198 else 0))
199- (au >= 3)
199+ (as >= 3)
200200 }
201201

github/deemru/w8io/873ac7e 
49.53 ms