tx · Efwj7cPnyVa2jbjZF5rjxV6eqZaMt28MtwiftFg5hQ1Z 3NAgBYufNJHeHmzaHrD4g57QwA2Hw2fjC4N: -0.01000000 Waves 2021.11.22 14:12 [1802151] smart account 3NAgBYufNJHeHmzaHrD4g57QwA2Hw2fjC4N > SELF 0.00000000 Waves
{ "type": 13, "id": "Efwj7cPnyVa2jbjZF5rjxV6eqZaMt28MtwiftFg5hQ1Z", "fee": 1000000, "feeAssetId": null, "timestamp": 1637579571071, "version": 1, "sender": "3NAgBYufNJHeHmzaHrD4g57QwA2Hw2fjC4N", "senderPublicKey": "GLCVpoxTd1ML6zYkZymGhtetUJwvAZnC4yCwogh9Vpbc", "proofs": [ "2V8jyHStzVCPctYvv318Q92Q56DgTUb5Ny6WQ52oba3B6cNhzhJN5kRsF7xzAuUpBKhAkeRwupwNMYJAzDmSQ6ha" ], "script": "base64:AAIFAAAAAAAAACAIAhIICgYICAEBAQgSAwoBARIDCgEBEgMKAQgSAwoBCAAAAEAAAAAAA1NFUAIAAAACX18AAAAABlNDQUxFOAAAAAAAAAAACAAAAAAFTVVMVDgAAAAAAAX14QABAAAAD2dldFN0cmluZ09yRmFpbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAEsAAAAAgkAASwAAAACAgAAAA9tYW5kYXRvcnkgdGhpcy4FAAAAA2tleQIAAAAPIGlzIG5vdCBkZWZpbmVkAQAAAAxnZXRJbnRPclplcm8AAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkAAAAAAAAAAAABAAAADGdldEludE9yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQfAAAAAQUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgIAAAAPbWFuZGF0b3J5IHRoaXMuBQAAAANrZXkCAAAADyBpcyBub3QgZGVmaW5lZAEAAAAJYXNBbnlMaXN0AAAAAQAAAAN2YWwEAAAAByRtYXRjaDAFAAAAA3ZhbAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAJTGlzdFtBbnldBAAAAAp2YWxBbnlMeXN0BQAAAAckbWF0Y2gwBQAAAAp2YWxBbnlMeXN0CQAAAgAAAAECAAAAG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEAAAAFYXNJbnQAAAABAAAAA3ZhbAQAAAAHJG1hdGNoMAUAAAADdmFsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABnZhbEludAUAAAAHJG1hdGNoMAUAAAAGdmFsSW50CQAAAgAAAAECAAAAFWZhaWwgdG8gY2FzdCBpbnRvIEludAEAAAARa2V5RmFjdG9yeUFkZHJlc3MAAAAAAgAAABwlcyVzX19jb25maWdfX2ZhY3RvcnlBZGRyZXNzAAAAABhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAAAAAAAAAAAAEAAAAAGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAAAAAAAAAAAAIAAAAAFElkeEZhY3RvcnlDZmdJZG9EYXBwAAAAAAAAAAADAAAAABVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAAAAAAAAAAAAQAAAAAGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAAAAAAAAAAAAUAAAAAFUlkeEZhY3RvcnlDZmdSZXN0RGFwcAAAAAAAAAAABgAAAAAZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcAAAAAAAAAAABwEAAAANa2V5RmFjdG9yeUNmZwAAAAACAAAAESVzX19mYWN0b3J5Q29uZmlnAQAAABprZXlGYWN0b3J5THAyQXNzZXRzTWFwcGluZwAAAAEAAAAKbHBBc3NldFN0cgkABLkAAAACCQAETAAAAAICAAAABiVzJXMlcwkABEwAAAACBQAAAApscEFzc2V0U3RyCQAETAAAAAICAAAAHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUAAAADbmlsBQAAAANTRVABAAAAEGtleUZhY3RvcnlMcExpc3QAAAAAAgAAABAlc19fbHBUb2tlbnNMaXN0AQAAACZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAEAAAAKbHBBc3NldFN0cgkABLkAAAACCQAETAAAAAICAAAABiVzJXMlcwkABEwAAAACBQAAAApscEFzc2V0U3RyCQAETAAAAAICAAAAHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUAAAADbmlsBQAAAANTRVABAAAAFGtleUZhY3RvcnlQb29sV2VpZ2h0AAAAAQAAAA9jb250cmFjdEFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAAQlcyVzCQAETAAAAAICAAAACnBvb2xXZWlnaHQJAARMAAAAAgUAAAAPY29udHJhY3RBZGRyZXNzBQAAAANuaWwFAAAAA1NFUAEAAAAYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsAAAAAAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAABHRoaXMJAQAAABFrZXlGYWN0b3J5QWRkcmVzcwAAAAABAAAACnJlYWRMcExpc3QAAAAACQAEtQAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgkBAAAAGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAAAAAJAQAAABBrZXlGYWN0b3J5THBMaXN0AAAAAAIAAAAABQAAAANTRVABAAAAFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsAAAAAQAAAAdmYWN0b3J5CQAEtQAAAAIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAAAdmYWN0b3J5CQEAAAANa2V5RmFjdG9yeUNmZwAAAAAFAAAAA1NFUAEAAAAYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHABAAAAGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbAAAAAEAAAAKZmFjdG9yeUNmZwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkAAZEAAAACBQAAAApmYWN0b3J5Q2ZnBQAAABlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwAQAAABdnZXRTdGFraW5nQWRkcmVzc09yRmFpbAAAAAEAAAAKZmFjdG9yeUNmZwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkAAZEAAAACBQAAAApmYWN0b3J5Q2ZnBQAAABhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAAAAAADUlkeENmZ0Fzc2V0SWQAAAAAAAAAAAEAAAAAE0lkeENmZ01pbkxvY2tBbW91bnQAAAAAAAAAAAIAAAAAFUlkeENmZ01pbkxvY2tEdXJhdGlvbgAAAAAAAAAAAwAAAAAVSWR4Q2ZnTWF4TG9ja0R1cmF0aW9uAAAAAAAAAAAEAAAAABJJZHhDZmdNYXRoQ29udHJhY3QAAAAAAAAAAAUBAAAACWtleUNvbmZpZwAAAAACAAAACiVzX19jb25maWcBAAAAFXJlYWRDb25maWdBcnJheU9yRmFpbAAAAAAJAAS1AAAAAgkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAABHRoaXMJAQAAAAlrZXlDb25maWcAAAAABQAAAANTRVABAAAADWZvcm1hdENvbmZpZ1MAAAAFAAAAB2Fzc2V0SWQAAAANbWluTG9ja0Ftb3VudAAAAA9taW5Mb2NrRHVyYXRpb24AAAAPbWF4TG9ja0R1cmF0aW9uAAAADG1hdGhDb250cmFjdAkABLkAAAACCQAETAAAAAICAAAACCVzJWQlZCVkCQAETAAAAAIFAAAAB2Fzc2V0SWQJAARMAAAAAgUAAAANbWluTG9ja0Ftb3VudAkABEwAAAACBQAAAA9taW5Mb2NrRHVyYXRpb24JAARMAAAAAgUAAAAPbWF4TG9ja0R1cmF0aW9uCQAETAAAAAIFAAAADG1hdGhDb250cmFjdAUAAAADbmlsBQAAAANTRVABAAAADGZvcm1hdENvbmZpZwAAAAUAAAAHYXNzZXRJZAAAAA1taW5Mb2NrQW1vdW50AAAAD21pbkxvY2tEdXJhdGlvbgAAAA9tYXhMb2NrRHVyYXRpb24AAAAMbWF0aENvbnRyYWN0CQEAAAANZm9ybWF0Q29uZmlnUwAAAAUFAAAAB2Fzc2V0SWQJAAGkAAAAAQUAAAANbWluTG9ja0Ftb3VudAkAAaQAAAABBQAAAA9taW5Mb2NrRHVyYXRpb24JAAGkAAAAAQUAAAAPbWF4TG9ja0R1cmF0aW9uBQAAAAxtYXRoQ29udHJhY3QAAAAADklkeExvY2tVc2VyTnVtAAAAAAAAAAABAAAAAA1JZHhMb2NrQW1vdW50AAAAAAAAAAACAAAAAAxJZHhMb2NrU3RhcnQAAAAAAAAAAAMAAAAAD0lkeExvY2tEdXJhdGlvbgAAAAAAAAAABAAAAAANSWR4TG9ja1BhcmFtSwAAAAAAAAAABQAAAAANSWR4TG9ja1BhcmFtQgAAAAAAAAAABgEAAAATa2V5TG9ja1BhcmFtc1JlY29yZAAAAAEAAAALdXNlckFkZHJlc3MJAAS5AAAAAgkABEwAAAACAgAAAAolcyVzX19sb2NrCQAETAAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAANuaWwFAAAAA1NFUAEAAAAacmVhZExvY2tQYXJhbXNSZWNvcmRPckZhaWwAAAABAAAAC3VzZXJBZGRyZXNzCQAEtQAAAAIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAAAR0aGlzCQEAAAATa2V5TG9ja1BhcmFt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Q291bnRJbmMAAAANdXNlcnNDb3VudEluYwQAAAAbbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzS0VZCQEAAAAga2V5U3RhdHNMb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MAAAAABAAAAA1sb2Nrc0NvdW50S0VZCQEAAAASa2V5U3RhdHNMb2Nrc0NvdW50AAAAAAQAAAANdXNlcnNDb3VudEtFWQkBAAAAEmtleVN0YXRzVXNlcnNDb3VudAAAAAAEAAAADnRvdGFsQW1vdW50S0VZCQEAAAAXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQAAAAABAAAABhsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MJAQAAAAxnZXRJbnRPclplcm8AAAABBQAAAA1sb2Nrc0NvdW50S0VZBAAAAApsb2Nrc0NvdW50CQEAAAAMZ2V0SW50T3JaZXJvAAAAAQUAAAANbG9ja3NDb3VudEtFWQQAAAAKdXNlcnNDb3VudAkBAAAADGdldEludE9yWmVybwAAAAEFAAAADXVzZXJzQ291bnRLRVkEAAAAC3RvdGFsQW1vdW50CQEAAAAMZ2V0SW50T3JaZXJvAAAAAQUAAAAOdG90YWxBbW91bnRLRVkJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAG2xvY2tzRHVyYXRpb25TdW1JbkJsb2Nrc0tFWQkAAGQAAAACBQAAABhsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MFAAAAC2R1cmF0aW9uSW5jCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA1sb2Nrc0NvdW50S0VZCQAAZAAAAAIFAAAACmxvY2tzQ291bnQFAAAADGxvY2tDb3VudEluYwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANdXNlcnNDb3VudEtFWQkAAGQAAAACBQAAAAp1c2Vyc0NvdW50BQAAAA11c2Vyc0NvdW50SW5jCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA50b3RhbEFtb3VudEtFWQkAAGQAAAACBQAAAAt0b3RhbEFtb3VudAUAAAAOdG90YWxMb2NrZWRJbmMFAAAAA25pbAEAAAAPTG9ja1BhcmFtc0VudHJ5AAAACAAAAAt1c2VyQWRkcmVzcwAAAAd1c2VyTnVtAAAABmFtb3VudAAAAAVzdGFydAAAAAhkdXJhdGlvbgAAAAFrAAAAAWIAAAAGcGVyaW9kBAAAAA11c2VyQW1vdW50S0VZCQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEFAAAAB3VzZXJOdW0EAAAADXN0YXJ0QmxvY2tLRVkJAQAAABZrZXlMb2NrUGFyYW1TdGFydEJsb2NrAAAAAQUAAAAHdXNlck51bQQAAAALZHVyYXRpb25LRVkJAQAAABRrZXlMb2NrUGFyYW1EdXJhdGlvbgAAAAEFAAAAB3VzZXJOdW0EAAAABGtLRVkJAQAAAA1rZXlMb2NrUGFyYW1LAAAAAQUAAAAHdXNlck51bQQAAAAEYktFWQkBAAAADWtleUxvY2tQYXJhbUIAAAABBQAAAAd1c2VyTnVtBAAAAAtrQnlQZXJpb0tFWQkBAAAAFWtleUxvY2tQYXJhbUJ5UGVyaW9kSwAAAAIFAAAAB3VzZXJOdW0FAAAABnBlcmlvZAQAAAAMYkJ5UGVyaW9kS0VZCQEAAAAVa2V5TG9ja1BhcmFtQnlQZXJpb2RCAAAAAgUAAAAHdXNlck51bQUAAAAGcGVyaW9kCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA11c2VyQW1vdW50S0VZBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADXN0YXJ0QmxvY2tLRVkFAAAABXN0YXJ0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtkdXJhdGlvbktFWQUAAAAIZHVyYXRpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAABGtLRVkFAAAAAWsJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAABGJLRVkFAAAAAWIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tCeVBlcmlvS0VZBQAAAAFrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxiQnlQZXJpb2RLRVkFAAAAAWIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAE2tleUxvY2tQYXJhbXNSZWNvcmQAAAABBQAAAAt1c2VyQWRkcmVzcwkBAAAAFmZvcm1hdExvY2tQYXJhbXNSZWNvcmQAAAAGBQAAAAd1c2VyTnVtBQAAAAZhbW91bnQFAAAABXN0YXJ0BQAAAAhkdXJhdGlvbgUAAAABawUAAAABYgUAAAADbmlsAQAAACJleHRyYWN0T3B0aW9uYWxQYXltZW50QW1vdW50T3JGYWlsAAAAAgAAAAFpAAAAD2V4cGVjdGVkQXNzZXRJZAMJAABmAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAAIAAAABAgAAABtvbmx5IG9uZSBwYXltZW50IGlzIGFsbG93ZWQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAAAAAAAAAEAAAAA3BtdAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAMJAQAAAAIhPQAAAAIJAQAAAAV2YWx1ZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAAPZXhwZWN0ZWRBc3NldElkCQAAAgAAAAECAAAAG2ludmFsaWQgYXNzZXQgaWQgaW4gcGF5bWVudAgFAAAAA3BtdAAAAAZhbW91bnQAAAAFAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAABgAAABFmYWN0b3J5QWRkcmVzc1N0cgAAAA5sb2NrQXNzZXRJZFN0cgAAAA1taW5Mb2NrQW1vdW50AAAAC21pbkR1cmF0aW9uAAAAC21heER1cmF0aW9uAAAADG1hdGhDb250cmFjdAMJAQAAAAIhPQAAAAIFAAAABHRoaXMIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAAA5ub3QgYXV0aG9yaXplZAkABE4AAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAOa2V5TmV4dFVzZXJOdW0AAAAAAAAAAAAAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAlrZXlDb25maWcAAAAACQEAAAAMZm9ybWF0Q29uZmlnAAAABQUAAAAObG9ja0Fzc2V0SWRTdHIFAAAADW1pbkxvY2tBbW91bnQFAAAAC21pbkR1cmF0aW9uBQAAAAttYXhEdXJhdGlvbgUAAAAMbWF0aENvbnRyYWN0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlGYWN0b3J5QWRkcmVzcwAAAAAFAAAAEWZhY3RvcnlBZGRyZXNzU3RyBQAAAANuaWwJAQAAAApTdGF0c0VudHJ5AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpAQAAAARsb2NrAAAAAQAAAAhkdXJhdGlvbgQAAAAIY2ZnQXJyYXkJAQAAABVyZWFkQ29uZmlnQXJyYXlPckZhaWwAAAAABAAAAAphc3NldElkU3RyCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAAA1JZHhDZmdBc3NldElkBAAAAAdhc3NldElkCQACWQAAAAEFAAAACmFzc2V0SWRTdHIEAAAADW1pbkxvY2tBbW91bnQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAATSWR4Q2ZnTWluTG9ja0Ftb3VudAQAAAAPbWluTG9ja0R1cmF0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAFUlkeENmZ01pbkxvY2tEdXJhdGlvbgQAAAAPbWF4TG9ja0R1cmF0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAFUlkeENmZ01heExvY2tEdXJhdGlvbgQAAAAMbWF0aENvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACGNmZ0FycmF5BQAAABJJZHhDZmdNYXRoQ29udHJhY3QDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAANGludmFsaWQgcGF5bWVudCAtIGV4YWN0IG9uZSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEAAAAA3BtdAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAJcG10QW1vdW50CAUAAAADcG10AAAABmFtb3VudAMJAQAAAAIhPQAAAAIFAAAAB2Fzc2V0SWQJAQAAAAV2YWx1ZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAeaW52YWxpZCBhc3NldCBpcyBpbiBwYXltZW50IC0gBQAAAAphc3NldElkU3RyAgAAAAwgaXMgZXhwZWN0ZWQEAAAADm5leHRVc2VyTnVtS0VZCQEAAAAOa2V5TmV4dFVzZXJOdW0AAAAABAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADnVzZXJJc0V4aXN0aW5nCQEAAAAJaXNEZWZpbmVkAAAAAQkABCIAAAABCQEAAAASa2V5VXNlcjJOdW1NYXBwaW5nAAAAAQUAAAAOdXNlckFkZHJlc3NTdHIEAAAACnVzZXJOdW1TdHIDBQAAAA51c2VySXNFeGlzdGluZwkBAAAABXZhbHVlAAAAAQkABCIAAAABCQEAAAASa2V5VXNlcjJOdW1NYXBwaW5nAAAAAQUAAAAOdXNlckFkZHJlc3NTdHIJAAGkAAAAAQkBAAAADGdldEludE9yRmFpbAAAAAEFAAAADm5leHRVc2VyTnVtS0VZBAAAAAd1c2VyTnVtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAACnVzZXJOdW1TdHIEAAAACWxvY2tTdGFydAUAAAAGaGVpZ2h0BAAAAA1zdGFydEJsb2NrS0VZCQEAAAAWa2V5TG9ja1BhcmFtU3RhcnRCbG9jawAAAAEFAAAACnVzZXJOdW1TdHIEAAAAC2R1cmF0aW9uS0VZCQEAAAAUa2V5TG9ja1BhcmFtRHVyYXRpb24AAAABBQAAAAp1c2VyTnVtU3RyBAAAAA11c2VyQW1vdW50S0VZCQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEFAAAACnVzZXJOdW1TdHIEAAAACnVzZXJBbW91bnQJAQAAAAxnZXRJbnRPclplcm8AAAABBQAAAA11c2VyQW1vdW50S0VZAwkAAGYAAAACBQAAAA9taW5Mb2NrRHVyYXRpb24FAAAACGR1cmF0aW9uCQAAAgAAAAEJAAEsAAAAAgIAAAAtcGFzc2VkIGR1cmF0aW9uIGlzIGxlc3MgdGhlbiBtaW5Mb2NrRHVyYXRpb249CQABpAAAAAEFAAAAD21pbkxvY2tEdXJhdGlvbgMJAABmAAAAAgUAAAAIZHVyYXRpb24FAAAAD21heExvY2tEdXJhdGlvbgkAAAIAAAABCQABLAAAAAICAAAAMHBhc3NlZCBkdXJhdGlvbiBpcyBncmVhdGVyIHRoZW4gbWF4TG9ja0R1cmF0aW9uPQkAAaQAAAABBQAAAA9tYXhMb2NrRHVyYXRpb24DAwUAAAAOdXNlcklzRXhpc3RpbmcJAABnAAAAAgkAAGQAAAACCQEAAAAMZ2V0SW50T3JGYWlsAAAAAQUAAAANc3RhcnRCbG9ja0tFWQkBAAAADGdldEludE9yRmFpbAAAAAEFAAAAC2R1cmF0aW9uS0VZBQAAAAlsb2NrU3RhcnQHCQAAAgAAAAECAAAANnRoZXJlIGlzIGFuIGFjdGl2ZSBsb2NrIC0gY29uc2lkZXIgdG8gdXNlIGluY3JlYXNlTG9jawQAAAATZ1d4UGFyYW1zUmVzdWx0TGlzdAkBAAAACWFzQW55TGlzdAAAAAEJAAP8AAAABAUAAAAMbWF0aENvbnRyYWN0AgAAABVjYWxjR3d4UGFyYW1zUkVBRE9OTFkJAARMAAAAAgUAAAAJcG10QW1vdW50CQAETAAAAAIFAAAACWxvY2tTdGFydAkABEwAAAACBQAAAAhkdXJhdGlvbgUAAAADbmlsBQAAAANuaWwEAAAAAWsJAQAAAAVhc0ludAAAAAEJAAGRAAAAAgUAAAATZ1d4UGFyYW1zUmVzdWx0TGlzdAAAAAAAAAAAAAQAAAABYgkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAABNnV3hQYXJhbXNSZXN1bHRMaXN0AAAAAAAAAAABBAAAAAZwZXJpb2QJAAGkAAAAAQkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAABNnV3hQYXJhbXNSZXN1bHRMaXN0AAAAAAAAAAACBAAAAANhcnIDBQAAAA51c2VySXNFeGlzdGluZwUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA5uZXh0VXNlck51bUtFWQkAAGQAAAACBQAAAAd1c2VyTnVtAAAAAAAAAAABCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABJrZXlVc2VyMk51bU1hcHBpbmcAAAABBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAKdXNlck51bVN0cgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAASa2V5TnVtMlVzZXJNYXBwaW5nAAAAAQUAAAAKdXNlck51bVN0cgUAAAAOdXNlckFkZHJlc3NTdHIFAAAAA25pbAkABE0AAAACCQAETgAAAAIJAAROAAAAAgUAAAADYXJyCQEAAAAPTG9ja1BhcmFtc0VudHJ5AAAACAUAAAAOdXNlckFkZHJlc3NTdHIFAAAACnVzZXJOdW1TdHIFAAAACXBtdEFtb3VudAUAAAAJbG9ja1N0YXJ0BQAAAAhkdXJhdGlvbgUAAAABawUAAAABYgUAAAAGcGVyaW9kCQEAAAAKU3RhdHNFbnRyeQAAAAQFAAAACXBtdEFtb3VudAUAAAAIZHVyYXRpb24AAAAAAAAAAAEDBQAAAA51c2VySXNFeGlzdGluZwAAAAAAAAAAAAAAAAAAAAAAAQkBAAAADEhpc3RvcnlFbnRyeQAAAAgCAAAABGxvY2sFAAAADnVzZXJBZGRyZXNzU3RyBQAAAAlwbXRBbW91bnQFAAAACWxvY2tTdGFydAUAAAAIZHVyYXRpb24FAAAAAWsFAAAAAWIFAAAAAWkAAAABaQEAAAAMaW5jcmVhc2VMb2NrAAAAAQAAAA1kZWx0YUR1cmF0aW9uBAAAAAhjZmdBcnJheQkBAAAAFXJlYWRDb25maWdBcnJheU9yRmFpbAAAAAAEAAAACmFzc2V0SWRTdHIJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAADUlkeENmZ0Fzc2V0SWQEAAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAAKYXNzZXRJZFN0cgQAAAAPbWF4TG9ja0R1cmF0aW9uCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAFUlkeENmZ01heExvY2tEdXJhdGlvbgQAAAAMbWF0aENvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABAgAAAAAEAAAACXBtdEFtb3VudAkBAAAAImV4dHJhY3RPcHRpb25hbFBheW1lbnRBbW91bnRPckZhaWwAAAACBQAAAAFpBQAAAAdhc3NldElkBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3VzZXJSZWNvcmRBcnJheQkBAAAAGnJlYWRMb2NrUGFyYW1zUmVjb3JkT3JGYWlsAAAAAQUAAAAOdXNlckFkZHJlc3NTdHIEAAAACnVzZXJOdW1TdHIJAAGRAAAAAgUAAAAPdXNlclJlY29yZEFycmF5BQAAAA5JZHhMb2NrVXNlck51bQQAAAAKdXNlckFtb3VudAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD3VzZXJSZWNvcmRBcnJheQUAAAANSWR4TG9ja0Ftb3VudAQAAAAJbG9ja1N0YXJ0CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAPdXNlclJlY29yZEFycmF5BQAAAAxJZHhMb2NrU3RhcnQEAAAADGxvY2tEdXJhdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAD3VzZXJSZWNvcmRBcnJheQUAAAAPSWR4TG9ja0R1cmF0aW9uBAAAAAdsb2NrRW5kCQAAZAAAAAIFAAAACWxvY2tTdGFydAUAAAAMbG9ja0R1cmF0aW9uBAAAAAluZXdBbW91bnQJAABkAAAAAgUAAAAKdXNlckFtb3VudAUAAAAJcG10QW1vdW50BAAAAA9uZXdMb2NrRHVyYXRpb24JAABkAAAAAgUAAAAMbG9ja0R1cmF0aW9uBQAAAA1kZWx0YUR1cmF0aW9uAwkAAGYAAAACAAAAAAAAAAAABQAAAA1kZWx0YUR1cmF0aW9uCQAAAgAAAAECAAAAGmR1cmF0aW9uIGlzIGxlc3MgdGhlbiB6ZXJvAwkAAGYAAAACBQAAAA9uZXdMb2NrRHVyYXRpb24FAAAAD21heExvY2tEdXJhdGlvbgkAAAIAAAABCQABLAAAAAICAAAARGRlbHRhRHVyYXRpb24gKyBleGlzdGVkTG9ja0R1cmF0aW9uIGlzIGdyZWF0ZXIgdGhlbiBtYXhMb2NrRHVyYXRpb249CQABpAAAAAEFAAAAD21heExvY2tEdXJhdGlvbgMDCQAAZwAAAAIFAAAABmhlaWdodAUAAAAHbG9ja0VuZAkAAGYAAAACBQAAAAp1c2VyQW1vdW50AAAAAAAAAAAABwkAAAIAAAABAgAAADl0aGVyZSBpcyBhbiBleHBpcmVkIGxvY2sgLSBuZWVkIHRvIHVubG9jayBiZWZvcmUgbmV3IGxvY2sEAAAAE2dXeFBhcmFtc1Jlc3VsdExpc3QJAQAAAAlhc0FueUxpc3QAAAABCQAD/AAAAAQFAAAADG1hdGhDb250cmFjdAIAAAAVY2FsY0d3eFBhcmFtc1JFQURPTkxZCQAETAAAAAIFAAAACW5ld0Ftb3VudAkABEwAAAACBQAAAAZoZWlnaHQJAARMAAAAAgUAAAAPbmV3TG9ja0R1cmF0aW9uBQAAAANuaWwFAAAAA25pbAQAAAABawkBAAAABWFzSW50AAAAAQkAAZEAAAACBQAAABNnV3hQYXJhbXNSZXN1bHRMaXN0AAAAAAAAAAAABAAAAAFiCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAE2dXeFBhcmFtc1Jlc3VsdExpc3QAAAAAAAAAAAEEAAAABnBlcmlvZAkAAaQAAAABCQEAAAAFYXNJbnQAAAABCQABkQAAAAIFAAAAE2dXeFBhcmFtc1Jlc3VsdExpc3QAAAAAAAAAAAIJAARNAAAAAgkABE4AAAACCQEAAAAPTG9ja1BhcmFtc0VudHJ5AAAACAUAAAAOdXNlckFkZHJlc3NTdHIFAAAACnVzZXJOdW1TdHIFAAAACW5ld0Ftb3VudAUAAAAJbG9ja1N0YXJ0BQAAAA9uZXdMb2NrRHVyYXRpb24FAAAAAWsFAAAAAWIFAAAABnBlcmlvZAkBAAAAClN0YXRzRW50cnkAAAAEBQAAAAlwbXRBbW91bnQFAAAADWRlbHRhRHVyYXRpb24AAAAAAAAAAAAAAAAAAAAAAAAJAQAAAAxIaXN0b3J5RW50cnkAAAAIAgAAAARsb2NrBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAJbmV3QW1vdW50BQAAAAlsb2NrU3RhcnQFAAAAD25ld0xvY2tEdXJhdGlvbgUAAAABawUAAAABYgUAAAABaQAAAAFpAQAAAAZ1bmxvY2sAAAABAAAAC3VzZXJBZGRyZXNzBAAAAA91c2VyUmVjb3JkQXJyYXkJAQAAABpyZWFkTG9ja1BhcmFtc1JlY29yZE9yRmFpbAAAAAEFAAAAC3VzZXJBZGRyZXNzBAAAAAp1c2VyTnVtU3RyCQABkQAAAAIF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", "chainId": 84, "height": 1802151, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: Cw1Y8f5Q3QAETjqJYvjsmRTWLG19iZVhzSeq2mr3J1WW Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "__" | |
5 | + | ||
6 | + | let b = 8 | |
7 | + | ||
8 | + | let c = 100000000 | |
9 | + | ||
10 | + | func d (e,f) = valueOrErrorMessage(getString(e, f), (("mandatory this." + f) + " is not defined")) | |
11 | + | ||
12 | + | ||
13 | + | func g (f) = valueOrElse(getInteger(this, f), 0) | |
14 | + | ||
15 | + | ||
16 | + | func h (f) = valueOrErrorMessage(getInteger(f), (("mandatory this." + f) + " is not defined")) | |
17 | + | ||
18 | + | ||
19 | + | func i (j) = { | |
20 | + | let k = j | |
21 | + | if ($isInstanceOf(k, "List[Any]")) | |
22 | + | then { | |
23 | + | let l = k | |
24 | + | l | |
25 | + | } | |
26 | + | else throw("fail to cast into List[Any]") | |
27 | + | } | |
28 | + | ||
29 | + | ||
30 | + | func m (j) = { | |
31 | + | let k = j | |
32 | + | if ($isInstanceOf(k, "Int")) | |
33 | + | then { | |
34 | + | let n = k | |
35 | + | n | |
36 | + | } | |
37 | + | else throw("fail to cast into Int") | |
38 | + | } | |
39 | + | ||
40 | + | ||
41 | + | func o () = "%s%s__config__factoryAddress" | |
42 | + | ||
43 | + | ||
44 | + | let p = 1 | |
45 | + | ||
46 | + | let q = 2 | |
47 | + | ||
48 | + | let r = 3 | |
49 | + | ||
50 | + | let s = 4 | |
51 | + | ||
52 | + | let t = 5 | |
53 | + | ||
54 | + | let u = 6 | |
55 | + | ||
56 | + | let v = 7 | |
57 | + | ||
58 | + | func w () = "%s__factoryConfig" | |
59 | + | ||
60 | + | ||
61 | + | func x (y) = makeString(["%s%s%s", y, "mappings__lpAsset2PoolContract"], a) | |
62 | + | ||
63 | + | ||
64 | + | func z () = "%s__lpTokensList" | |
65 | + | ||
66 | + | ||
67 | + | func A (y) = makeString(["%s%s%s", y, "mappings__lpAsset2PoolContract"], a) | |
68 | + | ||
69 | + | ||
70 | + | func B (C) = makeString(["%s%s", "poolWeight", C], a) | |
71 | + | ||
72 | + | ||
73 | + | func D () = addressFromStringValue(d(this, o())) | |
74 | + | ||
75 | + | ||
76 | + | func E () = split(valueOrElse(getString(D(), z()), ""), a) | |
77 | + | ||
78 | + | ||
79 | + | func F (G) = split(d(G, w()), a) | |
80 | + | ||
81 | + | ||
82 | + | func H (I) = addressFromStringValue(I[q]) | |
83 | + | ||
84 | + | ||
85 | + | func J (I) = addressFromStringValue(I[t]) | |
86 | + | ||
87 | + | ||
88 | + | func K (I) = addressFromStringValue(I[p]) | |
89 | + | ||
90 | + | ||
91 | + | let L = 1 | |
92 | + | ||
93 | + | let M = 2 | |
94 | + | ||
95 | + | let N = 3 | |
96 | + | ||
97 | + | let O = 4 | |
98 | + | ||
99 | + | let P = 5 | |
100 | + | ||
101 | + | func Q () = "%s__config" | |
102 | + | ||
103 | + | ||
104 | + | func R () = split(d(this, Q()), a) | |
105 | + | ||
106 | + | ||
107 | + | func S (T,U,V,W,X) = makeString(["%s%d%d%d", T, U, V, W, X], a) | |
108 | + | ||
109 | + | ||
110 | + | func Y (T,U,V,W,X) = S(T, toString(U), toString(V), toString(W), X) | |
111 | + | ||
112 | + | ||
113 | + | let Z = 1 | |
114 | + | ||
115 | + | let aa = 2 | |
116 | + | ||
117 | + | let ab = 3 | |
118 | + | ||
119 | + | let ac = 4 | |
120 | + | ||
121 | + | let ad = 5 | |
122 | + | ||
123 | + | let ae = 6 | |
124 | + | ||
125 | + | func af (ag) = makeString(["%s%s__lock", ag], a) | |
126 | + | ||
127 | + | ||
128 | + | func ah (ag) = split(d(this, af(ag)), a) | |
129 | + | ||
130 | + | ||
131 | + | func ai (aj,ak,al,am,an,ao) = makeString(["%d%d%d%d%d%d", aj, ak, al, am, an, ao], a) | |
132 | + | ||
133 | + | ||
134 | + | func ap (aj,ak,al,am,an,ao) = ai(aj, toString(ak), toString(al), toString(am), toString(an), toString(ao)) | |
135 | + | ||
136 | + | ||
137 | + | func aq () = "%s__nextUserNum" | |
138 | + | ||
139 | + | ||
140 | + | func ar (ag) = makeString(["%s%s%s__mapping__user2num", ag], a) | |
141 | + | ||
142 | + | ||
143 | + | func as (at) = makeString(["%s%s%s__mapping__num2user", at], a) | |
144 | + | ||
145 | + | ||
146 | + | func au (aj) = makeString(["%s%d%s__paramByUserNum", aj, "amount"], a) | |
147 | + | ||
148 | + | ||
149 | + | func av (aj) = makeString(["%s%d%s__paramByUserNum", aj, "start"], a) | |
150 | + | ||
151 | + | ||
152 | + | func aw (aj) = makeString(["%s%d%s__paramByUserNum", aj, "duration"], a) | |
153 | + | ||
154 | + | ||
155 | + | func ax (aj) = makeString(["%s%d%s__paramByUserNum", aj, "k"], a) | |
156 | + | ||
157 | + | ||
158 | + | func ay (aj) = makeString(["%s%d%s__paramByUserNum", aj, "b"], a) | |
159 | + | ||
160 | + | ||
161 | + | func az (aj,aA) = makeString(["%s%d%s%d__paramByPeriod", aj, "k", aA], a) | |
162 | + | ||
163 | + | ||
164 | + | func aB (aj,aA) = makeString(["%s%d%s%d__paramByPeriod", aj, "b", aA], a) | |
165 | + | ||
166 | + | ||
167 | + | func aC () = "%s%s__stats__activeTotalLocked" | |
168 | + | ||
169 | + | ||
170 | + | func aD () = "%s%s__stats__locksDurationSumInBlocks" | |
171 | + | ||
172 | + | ||
173 | + | func aE () = "%s%s__stats__locksCount" | |
174 | + | ||
175 | + | ||
176 | + | func aF () = "%s%s__stats__activeUsersCount" | |
177 | + | ||
178 | + | ||
179 | + | func aG (aH,aI,ak,aJ,am,aK,aL,aM) = { | |
180 | + | let aN = makeString(["%s%s%s%s__history", aH, aI, toBase58String(aM.transactionId)], a) | |
181 | + | let aO = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(ak), toString(aJ), toString(am), toString(aK), toString(aL)], a) | |
182 | + | StringEntry(aN, aO) | |
183 | + | } | |
184 | + | ||
185 | + | ||
186 | + | func aP (aQ,aR,aS,aT) = { | |
187 | + | let aU = aD() | |
188 | + | let aV = aE() | |
189 | + | let aW = aF() | |
190 | + | let aX = aC() | |
191 | + | let aY = g(aV) | |
192 | + | let aZ = g(aV) | |
193 | + | let ba = g(aW) | |
194 | + | let bb = g(aX) | |
195 | + | [IntegerEntry(aU, (aY + aR)), IntegerEntry(aV, (aZ + aS)), IntegerEntry(aW, (ba + aT)), IntegerEntry(aX, (bb + aQ))] | |
196 | + | } | |
197 | + | ||
198 | + | ||
199 | + | func bc (ag,aj,ak,al,am,aK,aL,aA) = { | |
200 | + | let bd = au(aj) | |
201 | + | let be = av(aj) | |
202 | + | let bf = aw(aj) | |
203 | + | let bg = ax(aj) | |
204 | + | let bh = ay(aj) | |
205 | + | let bi = az(aj, aA) | |
206 | + | let bj = aB(aj, aA) | |
207 | + | [IntegerEntry(bd, ak), IntegerEntry(be, al), IntegerEntry(bf, am), IntegerEntry(bg, aK), IntegerEntry(bh, aL), IntegerEntry(bi, aK), IntegerEntry(bj, aL), StringEntry(af(ag), ap(aj, ak, al, am, aK, aL))] | |
208 | + | } | |
209 | + | ||
210 | + | ||
211 | + | func bk (aM,bl) = if ((size(aM.payments) > 1)) | |
212 | + | then throw("only one payment is allowed") | |
213 | + | else if ((size(aM.payments) == 0)) | |
214 | + | then 0 | |
215 | + | else { | |
216 | + | let bm = aM.payments[0] | |
217 | + | if ((value(bm.assetId) != bl)) | |
218 | + | then throw("invalid asset id in payment") | |
219 | + | else bm.amount | |
220 | + | } | |
221 | + | ||
222 | + | ||
223 | + | @Callable(aM) | |
224 | + | func constructor (bn,bo,U,bp,bq,X) = if ((this != aM.caller)) | |
225 | + | then throw("not authorized") | |
226 | + | else ([IntegerEntry(aq(), 0), StringEntry(Q(), Y(bo, U, bp, bq, X)), StringEntry(o(), bn)] ++ aP(0, 0, 0, 0)) | |
227 | + | ||
228 | + | ||
229 | + | ||
230 | + | @Callable(aM) | |
231 | + | func lock (am) = { | |
232 | + | let br = R() | |
233 | + | let bs = br[L] | |
234 | + | let T = fromBase58String(bs) | |
235 | + | let U = parseIntValue(br[M]) | |
236 | + | let V = parseIntValue(br[N]) | |
237 | + | let W = parseIntValue(br[O]) | |
238 | + | let X = addressFromStringValue(br[P]) | |
239 | + | if ((size(aM.payments) != 1)) | |
240 | + | then throw("invalid payment - exact one payment must be attached") | |
241 | + | else { | |
242 | + | let bm = aM.payments[0] | |
243 | + | let bt = bm.amount | |
244 | + | if ((T != value(bm.assetId))) | |
245 | + | then throw((("invalid asset is in payment - " + bs) + " is expected")) | |
246 | + | else { | |
247 | + | let bu = aq() | |
248 | + | let bv = toString(aM.caller) | |
249 | + | let bw = isDefined(getString(ar(bv))) | |
250 | + | let bx = if (bw) | |
251 | + | then value(getString(ar(bv))) | |
252 | + | else toString(h(bu)) | |
253 | + | let aj = parseIntValue(bx) | |
254 | + | let aJ = height | |
255 | + | let be = av(bx) | |
256 | + | let bf = aw(bx) | |
257 | + | let bd = au(bx) | |
258 | + | let by = g(bd) | |
259 | + | if ((V > am)) | |
260 | + | then throw(("passed duration is less then minLockDuration=" + toString(V))) | |
261 | + | else if ((am > W)) | |
262 | + | then throw(("passed duration is greater then maxLockDuration=" + toString(W))) | |
263 | + | else if (if (bw) | |
264 | + | then ((h(be) + h(bf)) >= aJ) | |
265 | + | else false) | |
266 | + | then throw("there is an active lock - consider to use increaseLock") | |
267 | + | else { | |
268 | + | let bz = i(invoke(X, "calcGwxParamsREADONLY", [bt, aJ, am], nil)) | |
269 | + | let aK = m(bz[0]) | |
270 | + | let aL = m(bz[1]) | |
271 | + | let aA = toString(m(bz[2])) | |
272 | + | let bA = if (bw) | |
273 | + | then nil | |
274 | + | else [IntegerEntry(bu, (aj + 1)), StringEntry(ar(bv), bx), StringEntry(as(bx), bv)] | |
275 | + | (((bA ++ bc(bv, bx, bt, aJ, am, aK, aL, aA)) ++ aP(bt, am, 1, if (bw) | |
276 | + | then 0 | |
277 | + | else 1)) :+ aG("lock", bv, bt, aJ, am, aK, aL, aM)) | |
278 | + | } | |
279 | + | } | |
280 | + | } | |
281 | + | } | |
282 | + | ||
283 | + | ||
284 | + | ||
285 | + | @Callable(aM) | |
286 | + | func increaseLock (bB) = { | |
287 | + | let br = R() | |
288 | + | let bs = br[L] | |
289 | + | let T = fromBase58String(bs) | |
290 | + | let W = parseIntValue(br[O]) | |
291 | + | let X = addressFromStringValue("") | |
292 | + | let bt = bk(aM, T) | |
293 | + | let bv = toString(aM.caller) | |
294 | + | let bC = ah(bv) | |
295 | + | let bx = bC[Z] | |
296 | + | let by = parseIntValue(bC[aa]) | |
297 | + | let aJ = parseIntValue(bC[ab]) | |
298 | + | let bD = parseIntValue(bC[ac]) | |
299 | + | let bE = (aJ + bD) | |
300 | + | let bF = (by + bt) | |
301 | + | let bG = (bD + bB) | |
302 | + | if ((0 > bB)) | |
303 | + | then throw("duration is less then zero") | |
304 | + | else if ((bG > W)) | |
305 | + | then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(W))) | |
306 | + | else if (if ((height >= bE)) | |
307 | + | then (by > 0) | |
308 | + | else false) | |
309 | + | then throw("there is an expired lock - need to unlock before new lock") | |
310 | + | else { | |
311 | + | let bz = i(invoke(X, "calcGwxParamsREADONLY", [bF, height, bG], nil)) | |
312 | + | let aK = m(bz[0]) | |
313 | + | let aL = m(bz[1]) | |
314 | + | let aA = toString(m(bz[2])) | |
315 | + | ((bc(bv, bx, bF, aJ, bG, aK, aL, aA) ++ aP(bt, bB, 0, 0)) :+ aG("lock", bv, bF, aJ, bG, aK, aL, aM)) | |
316 | + | } | |
317 | + | } | |
318 | + | ||
319 | + | ||
320 | + | ||
321 | + | @Callable(aM) | |
322 | + | func unlock (ag) = { | |
323 | + | let bC = ah(ag) | |
324 | + | let bx = bC[Z] | |
325 | + | let by = parseIntValue(bC[aa]) | |
326 | + | let aJ = parseIntValue(bC[ab]) | |
327 | + | let bD = parseIntValue(bC[ac]) | |
328 | + | let bE = (aJ + bD) | |
329 | + | let br = R() | |
330 | + | let T = fromBase58String(br[L]) | |
331 | + | if ((bE >= height)) | |
332 | + | then throw((("wait " + toString(bE)) + " to unlock")) | |
333 | + | else if ((0 >= by)) | |
334 | + | then throw("nothing to unlock") | |
335 | + | else { | |
336 | + | let aA = "0" | |
337 | + | (((bc(ag, bx, 0, aJ, bD, 0, 0, aA) ++ aP(-(by), 0, 0, -1)) :+ aG("unlock", ag, by, aJ, bD, 0, 0, aM)) :+ ScriptTransfer(addressFromStringValue(ag), by, T)) | |
338 | + | } | |
339 | + | } | |
340 | + | ||
341 | + | ||
342 | + | ||
343 | + | @Callable(aM) | |
344 | + | func gwxUserInfoREADONLY (ag) = { | |
345 | + | let bH = "empty" | |
346 | + | let bI = ar(ag) | |
347 | + | let aj = valueOrElse(getString(bI), bH) | |
348 | + | let aK = valueOrElse(getInteger(ax(aj)), 0) | |
349 | + | let aL = valueOrElse(getInteger(ay(aj)), 0) | |
350 | + | let bJ = fraction(((aK * height) + aL), 1, c) | |
351 | + | let bK = if ((0 > bJ)) | |
352 | + | then 0 | |
353 | + | else bJ | |
354 | + | $Tuple2(nil, [bK]) | |
355 | + | } | |
356 | + | ||
357 | + |
github/deemru/w8io/873ac7e 28.88 ms ◑![]()