tx · 9infFmSwSemZgNBGjP6kd7DHhHBQY9QavdZYVBD9Gx69

3N74cvawpTtuuCbAasBo7oMJYrohgZYFCTj:  -0.01400000 Waves

2021.12.23 18:15 [1847071] smart account 3N74cvawpTtuuCbAasBo7oMJYrohgZYFCTj > SELF 0.00000000 Waves

{ "type": 13, "id": "9infFmSwSemZgNBGjP6kd7DHhHBQY9QavdZYVBD9Gx69", "fee": 1400000, "feeAssetId": null, "timestamp": 1640272537014, "version": 1, "sender": "3N74cvawpTtuuCbAasBo7oMJYrohgZYFCTj", "senderPublicKey": "BgnyKECwUvFW1ThWpgKbmHMmJXJRgg5K56jKHZwVMbXL", "proofs": [ "y3qayji1NQAh4wZu4AvZbgZgYo6P5VizxXJFDBwsbUwejweMqaKuvJUYPzmnXdJXFWixCHLVoN2zMwcNehhcJT8" ], "script": "base64:AAIFAAAAAAAAAEUIAhIHCgUCAQEBARIAEgASBwoFAgEBAQESABIDCgEIEgUKAwEBARIFCgMBAQESBgoECAgIARIDCgEIEgASBwoFCAgICAgAAAAsAAAAAAtyZXZpc2lvbk51bQIAAAAAAAAAAANTRVACAAAAAl9fAAAAAAhNQVhERVBUSAAAAAAAAAAAEQAAAAAJVVNFUkRFUFRIAAAAAAAAAAAaAAAAAAVTQ0FMRQAAAAAAAAAD6AAAAAAFTVVMVDgAAAAAAAX14QAAAAAACnplcm9CaWdJbnQJAAE2AAAAAQAAAAAAAAAAAAEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkAAAAAAAAAAAABAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AgAAAAABAAAAD2dldFN0cmluZ09yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgIAAAAPbWFuZGF0b3J5IHRoaXMuBQAAAANrZXkCAAAADyBpcyBub3QgZGVmaW5lZAEAAAADYWJzAAAAAQAAAAN2YWwDCQABPwAAAAIFAAAACnplcm9CaWdJbnQFAAAAA3ZhbAkAAT4AAAABBQAAAAN2YWwFAAAAA3ZhbAEAAAARa2V5RmFjdG9yeUFkZHJlc3MAAAAAAgAAABwlcyVzX19jb25maWdfX2ZhY3RvcnlBZGRyZXNzAAAAABFmYWN0b3J5QWRkcmVzc1N0cgkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAABFrZXlGYWN0b3J5QWRkcmVzcwAAAAAAAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAARZmFjdG9yeUFkZHJlc3NTdHIAAAAADUlkeENmZ0Fzc2V0SWQAAAAAAAAAAAEAAAAAFklkeENmZ1BhY2VtYWtlckFkZHJlc3MAAAAAAAAAAAIAAAAAFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QAAAAAAAAAAAMAAAAADklkeENmZ01heERlcHRoAAAAAAAAAAAEAQAAAAlrZXlDb25maWcAAAAAAgAAAAolc19fY29uZmlnAQAAABVyZWFkQ29uZmlnQXJyYXlPckZhaWwAAAAACQAEtQAAAAIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAAJa2V5Q29uZmlnAAAAAAUAAAADU0VQAQAAAAxmb3JtYXRDb25maWcAAAAEAAAADHd4QXNzZXRJZFN0cgAAABptYXRjaGVyUGFjZW1ha2VyQWRkcmVzc1N0cgAAABpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgAAAAhtYXhEZXB0aAkABLkAAAACCQAETAAAAAICAAAACCVzJXMlcyVkCQAETAAAAAIFAAAADHd4QXNzZXRJZFN0cgkABEwAAAACBQAAABptYXRjaGVyUGFjZW1ha2VyQWRkcmVzc1N0cgkABEwAAAACBQAAABpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgkABEwAAAACCQABpAAAAAEFAAAACG1heERlcHRoBQAAAANuaWwFAAAAA1NFUAEAAAAfa2V5R3d4UmV3YXJkRW1pc3Npb25TdGFydEhlaWdodAAAAAACAAAAKCVzJXNfX2d3eFJld2FyZEVtaXNzaW9uUGFydF9fc3RhcnRIZWlnaHQBAAAADWtleVVzZXJzQ291bnQAAAAAAgAAAA8lc19fbmV4dFVzZXJOdW0BAAAAFGtleU5leHRQcm9jZXNzZWRVc2VyAAAAAAIAAAAVJXNfX25leHRQcm9jZXNzZWRVc2VyAQAAAA9rZXlMYXRlc3RQZXJpb2QAAAAAAgAAABAlc19fbGF0ZXN0UGVyaW9kAQAAAA1rZXlOZXh0UGVyaW9kAAAAAAIAAAAOJXNfX25leHRQZXJpb2QBAAAAFmtleU5leHRQcm9jZXNzZWRQZXJpb2QAAAAAAgAAABclc19fbmV4dFByb2Nlc3NlZFBlcmlvZAEAAAAba2V5TmV4dFVubGFpbWVkUGVyaW9kT2ZVc2VyAAAAAQAAAAl1c2VySW5kZXgJAAS5AAAAAgkABEwAAAACAgAAABclcyVkX19uZXh0Q2xhaW1lZFBlcmlvZAkABEwAAAACCQABpAAAAAEFAAAACXVzZXJJ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AAAADnRvdGFsV2VpZ2h0S2V5AAAABndlaWdodAMJAABnAAAAAgUAAAAMbGF0ZXN0UGVyaW9kCQAAZAAAAAIFAAAADWN1cnJlbnRQZXJpb2QAAAAAAAAAAAEJAQAAAA1pbnZva2VQcm9jZXNzAAAABQUAAAAQYm9vc3RpbmdDb250cmFjdAkAAGQAAAACBQAAAA1jdXJyZW50UGVyaW9kAAAAAAAAAAABAAAAAAAAAAAACQAAZQAAAAIFAAAABWRlcHRoAAAAAAAAAAABAAAAAAAAAAAACQAFFQAAAAMJAABkAAAAAgUAAAANY3VycmVudFBlcmlvZAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAYcHJvY2Vzc05leHRCYXRjaEludGVybmFsAAAABQAAABBib29zdGluZ0NvbnRyYWN0AAAADWN1cnJlbnRQZXJpb2QAAAALY3VycmVudFVzZXIAAAAFZGVwdGgAAAALdG90YWxXZWlnaHQEAAAAF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEFAAAAEGJvb3N0aW5nQ29udHJhY3QEAAAADGxhdGVzdFBlcmlvZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2tleUxhdGVzdFBlcmlvZAAAAAAEAAAACnVzZXJzQ291bnQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MJAQAAAA1rZXlVc2Vyc0NvdW50AAAAAAAAAAAAAAAAAAQAAAAOdG90YWxXZWlnaHRLZXkJAQAAABdrZXlUb3RhbFdlaWdodEZvclBlcmlvZAAAAAEFAAAADWN1cnJlbnRQZXJpb2QEAAAAD2hlaWdodEZvclBlcmlvZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEmtleUhlaWdodEZvclBlcmlvZAAAAAEFAAAADWN1cnJlbnRQZXJpb2QDAwkAAGYAAAACBQAAAAVkZXB0aAAAAAAAAAAAAAkAAGcAAAACBQAAAAxsYXRlc3RQZXJpb2QFAAAADWN1cnJlbnRQZXJpb2QHBAAAAAJ0MAkBAAAADmNhbGNVc2VyV2VpZ2h0AAAABAUAAAAXYm9vc3RpbmdDb250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ABZrZXlOZXh0UHJvY2Vzc2VkUGVyaW9kAAAAAAQAAAALdG90YWxXZWlnaHQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABdrZXlUb3RhbFdlaWdodEZvclBlcmlvZAAAAAEFAAAADWN1cnJlbnRQZXJpb2QEAAAAD2hlaWdodEZvclBlcmlvZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEmtleUhlaWdodEZvclBlcmlvZAAAAAEFAAAADWN1cnJlbnRQZXJpb2QEAAAADSR0MDExMjE5MTEzMzEJAQAAAA5jYWxjVXNlcldlaWdodAAAAAQFAAAAF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzBQAAAA9oZWlnaHRGb3JQZXJpb2QFAAAADWN1cnJlbnRQZXJpb2QFAAAAC2N1cnJlbnRVc2VyBAAAAAp1c2VyV2VpZ2h0CAUAAAANJHQwMTEyMTkxMTMzMQAAAAJfMQQAAAAHaWdub3JlZAgFAAAADSR0MDExMjE5MTEzMzEAAAACXzIEAAAAE3VzZXJBbW91bnRGb3JQZXJpb2QJAABrAAAAAwkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAF2tleVRvdGFsQW1vdW50Rm9yUGVyaW9kAAAAAQUAAAANY3VycmVudFBlcmlvZAUAAAAKdXNlcldlaWdodAUAAAALdG90YWxXZWlnaHQDAwkAAGcAAAACAAAAAAAAAAAABQAAAAVkZXB0aAYJAABnAAAAAgkAAGQAAAACBQAAAA1jdXJyZW50UGVyaW9kAAAAAAAAAAABBQAAAAxsYXRlc3RQZXJpb2QJAAUUAAAAAgkAAGQAAAACBQAAAA1jdXJyZW50UGVyaW9kAAAAAAAAAAABCQAAZAAAAAIFAAAAD3VzZXJBY2N1bXVsYXRlZAUAAAATdXNlckFtb3VudEZvclBlcmlvZAkBAAAAC2ludm9rZUNsYWltAAAABQUAAAAQYm9vc3RpbmdDb250cmFjdAkAAGQAAAACBQAAAA1jdXJyZW50UGVyaW9kAAAAAAAAAAABBQAAAAtjdXJyZW50VXNlcgkAAGUAAAACBQAAAAVkZXB0aAAAAAAAAAAAAQkAAGQAAAACBQAAAA91c2VyQWNjdW11bGF0ZWQFAAAAE3VzZXJBbW91bnRGb3JQZXJpb2QBAAAAEWNvbW1vbkNsYWltUmV3YXJkAAAAAQAAAAt1c2VyQWRkcmVzcwQAAAAIY2ZnQXJyYXkJAQAAABVyZWFkQ29uZmlnQXJyYXlPckZhaWwAAAAABAAAAAd1c2VySWR4CQEAAAAVZ2V0VXNlckluZGV4QnlBZGRyZXNzAAAAAgkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAWSWR4Q2ZnQm9vc3RpbmdDb250cmFjdAUAAAALdXNlckFkZHJlc3MEAAAADWN1cnJlbnRQZXJpb2QJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABtrZXlOZXh0VW5sYWltZWRQZXJpb2RPZlVzZXIAAAABBQAAAAd1c2VySWR4BAAAAAxsYXRlc3RQZXJpb2QJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABZrZXlOZXh0UHJvY2Vzc2VkUGVyaW9kAAAAAAMJAABnAAAAAgUAAAANY3VycmVudFBlcmlvZAUAAAAMbGF0ZXN0UGVyaW9kCQAAAgAAAAECAAAAEE5vdGhpbmcgdG8gY2xhaW0EAAAAEGJvb3N0aW5nQ29udHJhY3QJAAJZAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAWSWR4Q2ZnQm9vc3RpbmdDb250cmFjdAQAAAANJHQwMTIyNTIxMjM0NAkBAAAADWNsYWltSW50ZXJuYWwAAAAFBQAAABBib29zdGluZ0NvbnRyYWN0BQAAAA1jdXJyZW50UGVyaW9kBQAAAAd1c2VySWR4BQAAAAlVU0VSREVQVEgAAAAAAAAAAAAEAAAABnBlcmlvZAgFAAAADSR0MDEyMjUyMTIzNDQAAAACXzEEAAAABmFtb3VudAgFAAAADSR0MDEyMjUyMTIzNDQAAAACXzIJAAUXAAAABQUAAAAGcGVyaW9kBQAAAAZhbW91bnQFAAAAB3VzZXJJZHgFAAAACGNmZ0FycmF5BQAAAAxsYXRlc3RQZXJpb2QAAAAMAAAAAWkBAAAAEHByb2Nlc3NOZXh0QmF0Y2gAAAAFAAAAEGJvb3N0aW5nQ29udHJhY3QAAAANY3VycmVudFBlcmlvZAAAAAtjdXJyZW50VXNlcgAAAAVkZXB0aAAAAAt0b3RhbFdlaWdodAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAACRTaG91bGQgYmUgY2FsbGVkIGJ5IHRoaXMgc2NyaXB0IG9ubHkEAAAAA3RwbAkBAAAAGHByb2Nlc3NOZXh0QmF0Y2hJbnRlcm5hbAAAAAUFAAAAEGJvb3N0aW5nQ29udHJhY3QFAAAADWN1cnJlbnRQZXJpb2QFAAAAC2N1cnJlbnRVc2VyBQAAAAVkZXB0aAUAAAALdG90YWxXZWlnaHQJAAUUAAAAAggFAAAAA3RwbAAAAAJfMQkABRUAAAADCAUAAAADdHBsAAAAAl8yCAUAAAADdHBsAAAAAl8zCAUAAAADdHBsAAAAAl80AAAAAWkBAAAAHXByb2Nlc3NQZW5kaW5nUGVyaW9kc0FuZFVzZXJzAAAAAAQAAAANY3VycmVudFBlcmlvZAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmtleU5leHRQcm9jZXNzZWRQZXJpb2QAAAAAAwkAAGYAAAACBQAAAA1jdXJyZW50UGVyaW9kCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAPa2V5TGF0ZXN0UGVyaW9kAAAAAAkAAAIAAAABAgAAABJOb3RoaW5nIHRvIHByb2Nlc3MEAAAACGNmZ0FycmF5CQEAAAAVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAAAAAQAAAAFZGVwdGgJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAOSWR4Q2ZnTWF4RGVwdGgDCQAAZgAAAAIFAAAABWRlcHRoBQAAAAhNQVhERVBUSAkAAAIAAAABAgAAABZEZXB0aCBleGNlZWRzIE1BWERFUFRIBAAAABBib29zdGluZ0NvbnRyYWN0CQACWQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAAFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QEAAAAC2N1cnJlbnRVc2VyCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAUa2V5TmV4dFByb2Nlc3NlZFVzZXIAAAAABAAAAAt0b3RhbFdlaWdodAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAF2tleVRvdGFsV2VpZ2h0Rm9yUGVyaW9kAAAAAQUAAAANY3VycmVudFBlcmlvZAQAAAABcgkBAAAAGHByb2Nlc3NOZXh0QmF0Y2hJbnRlcm5hbAAAAAUFAAAAEGJvb3N0aW5nQ29udHJhY3QFAAAADWN1cnJlbnRQZXJpb2QFAAAAC2N1cnJlbnRVc2VyBQAAAAVkZXB0aAUAAAALdG90YWxXZWlnaHQJAARNAAAAAgkABE0AAAACCAUAAAABcgAAAAJfMQkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZrZXlOZXh0UHJvY2Vzc2VkUGVyaW9kAAAAAAgFAAAAAXIAAAACXzIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAUa2V5TmV4dFByb2Nlc3NlZFVzZXIAAAAACAUAAAABcgAAAAJfMwAAAAFpAQAAAAdkZXBvc2l0AAAAAAQAAAAIY2ZnQXJyYXkJAQAAABVyZWFkQ29uZmlnQXJyYXlPckZhaWwAAAAAAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAAWSWR4Q2ZnUGFjZW1ha2VyQWRkcmVzcwkAAAIAAAABAgAAABRXcm9uZyBjYWxsZXIgYWRkcmVzcwQAAAAHYXNzZXRJZAkBAAAABXZhbHVlAAAAAQgJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAMJAQAAAAIhPQAAAAIFAAAAB2Fzc2V0SWQJAAJZAAAAAQkAAZEAAAACBQAAAAhjZmdBcnJheQUAAAANSWR4Q2ZnQXNzZXRJZAkAAAIAAAABAgAAABNXcm9uZyBwYXltZW50IGFzc2V0BAAAAAZwZXJpb2QJAQAAAApuZXh0UGVyaW9kAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAD2tleUxhdGVzdFBlcmlvZAAAAAAFAAAABnBlcmlvZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEmtleUhlaWdodEZvclBlcmlvZAAAAAEFAAAABnBlcmlvZAUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAXa2V5VG90YWxBbW91bnRGb3JQZXJpb2QAAAABBQAAAAZwZXJpb2QICQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADWtleU5leHRQZXJpb2QAAAAACQAAZAAAAAIFAAAABnBlcmlvZAAAAAAAAAAAAQUAAAADbmlsAAAAAWkBAAAADmNsYWltTmV4dEJhdGNoAAAABQAAABBib29zdGluZ0NvbnRyYWN0AAAADWN1cnJlbnRQZXJpb2QAAAALY3VycmVudFVzZXIAAAAFZGVwdGgAAAALdG90YWxXZWlnaHQDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAkU2hvdWxkIGJlIGNhbGxlZCBieSB0aGlzIHNjcmlwdCBvbmx5BAAAAA5wZXJpb2RBbmRUb3RhbAkBAAAADWNsYWltSW50ZXJuYWwAAAAFBQAAABBib29zdGluZ0NvbnRyYWN0BQAAAA1jdXJyZW50UGVyaW9kBQAAAAtjdXJyZW50VXNlcgUAAAAFZGVwdGgFAAAAC3RvdGFsV2VpZ2h0CQAFFAAAAAIFAAAAA25pbAUAAAAOcGVyaW9kQW5kVG90YWwAAAABaQEAAAALY2xhaW1SZXdhcmQAAAAABAAAAAdhZGRyZXNzCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANJHQwMTUyODQxNTM2NgkBAAAAEWNvbW1vbkNsYWltUmV3YXJkAAAAAQUAAAAHYWRkcmVzcwQAAAAGcGVyaW9kCAUAAAANJHQwMTUyODQxNTM2NgAAAAJfMQQAAAAGYW1vdW50CAUAAAANJHQwMTUyODQxNTM2NgAAAAJfMgQAAAAHdXNlcklkeAgFAAAADSR0MDE1Mjg0MTUzNjYAAAACXzMEAAAACGNmZ0FycmF5CAUAAAANJHQwMTUyODQxNTM2NgAAAAJfNAQAAAAMbGF0ZXN0UGVyaW9kCAUAAAANJHQwMTUyODQxNTM2NgAAAAJfNQkABRQAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAba2V5TmV4dFVubGFpbWVkUGVyaW9kT2ZVc2VyAAAAAQUAAAAHdXNlcklkeAUAAAAGcGVyaW9kCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50CQACWQAAAAEJAAGRAAAAAgUAAAAIY2ZnQXJyYXkFAAAADUlkeENmZ0Fzc2V0SWQJAARMAAAAAgkBAAAADEhpc3RvcnlFbnRyeQAAAAYCAAAABWNsYWltBQAAAAdhZGRyZXNzBQAAAAZhbW91bnQFAAAABnBlcmlvZAUAAAAMbGF0ZXN0UGVyaW9kBQAAAAFpBQAAAANuaWwFAAAABmFtb3VudAAAAAFpAQAAABNjbGFpbVJld2FyZFJFQURPTkxZAAAAAQAAAAdhZGRyZXNzBAAAAAxjbGFpbVJlc3VsdHMJAQAAABFjb21tb25DbGFpbVJld2FyZAAAAAEFAAAAB2FkZHJlc3MEAAAABmFtb3VudAgFAAAADGNsYWltUmVzdWx0cwAAAAJfMgkABRQAAAACBQAAAANuaWwFAAAABmFtb3VudAAAAAFpAQAAABVjYWxjR3d4UGFyYW1zUkVBRE9OTFkAAAADAAAACHd4QW1vdW50AAAAD2xvY2tTdGFydEhlaWdodAAAABJsb2NrRHVyYXRpb25CbG9ja3MEAAAADWxvY2tFbmRIZWlnaHQJAABkAAAAAgUAAAAPbG9ja1N0YXJ0SGVpZ2h0BQAAABJsb2NrRHVyYXRpb25CbG9ja3MEAAAADHNjYWxlOFBhcmFtSwkBAAAAAS0AAAABCQAAawAAAAMFAAAACHd4QW1vdW50BQAAAAVTQ0FMRQUAAAASbG9ja0R1cmF0aW9uQmxvY2tzBAAAAAxzY2FsZThQYXJhbUIJAABoAAAAAgkAAGsAAAADBQAAAAh3eEFtb3VudAUAAAAFU0NBTEUFAAAAEmxvY2tEdXJhdGlvbkJsb2NrcwUAAAANbG9ja0VuZEhlaWdodAkABRQAAAACBQAAAANuaWwJAARMAAAAAgUAAAAMc2NhbGU4UGFyYW1LCQAETAAAAAIFAAAADHNjYWxlOFBhcmFtQgkABEwAAAACCQEAAAAKbmV4dFBlcmlvZAAAAAAFAAAAA25pbAAAAAFpAQAAABpjYWxjR3d4QW1vdW50U3RhcnRSRUFET05MWQAAAAMAAAAKbG9ja0Ftb3VudAAAAAxsb2NrRHVyYXRpb24AAAAPbWF4TG9ja0R1cmF0aW9uBAAAAAdjb2VmZlg4CQAAawAAAAMFAAAADGxvY2tEdXJhdGlvbgUAAAAFTVVMVDgFAAAAD21heExvY2tEdXJhdGlvbgQAAAAOZ1d4QW1vdW50U3RhcnQJAABrAAAAAwUAAAAKbG9ja0Ftb3VudAUAAAAHY29lZmZYOAUAAAAFTVVMVDgJAAUUAAAAAgUAAAADbmlsCQAETAAAAAIFAAAADmdXeEFtb3VudFN0YXJ0BQAAAANuaWwAAAABaQEAAAALY29uc3RydWN0b3IAAAAEAAAADHd4QXNzZXRJZFN0cgAAABptYXRjaGVyUGFjZW1ha2VyQWRkcmVzc1N0cgAAABpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgAAAAhtYXhEZXB0aAMJAQAAAAIhPQAAAAIFAAAABHRoaXMIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAAA5ub3QgYXV0aG9yaXplZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAJa2V5Q29uZmlnAAAAAAkBAAAADGZvcm1hdENvbmZpZwAAAAQFAAAADHd4QXNzZXRJZFN0cgUAAAAabWF0Y2hlclBhY2VtYWtlckFkZHJlc3NTdHIFAAAAGmJvb3N0aW5nQ29udHJhY3RBZGRyZXNzU3RyBQAAAAhtYXhEZXB0aAUAAAADbmlsAAAAAWkBAAAADWNvbnN0cnVjdG9yVjIAAAABAAAADmZhY3RvcnlBZGRyZXNzAwkBAAAAAiE9AAAAAgUAAAAEdGhpcwgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAADm5vdCBhdXRob3JpemVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABFrZXlGYWN0b3J5QWRkcmVzcwAAAAAFAAAADmZhY3RvcnlBZGRyZXNzBQAAAANuaWwAAAABaQEAAAAVb25FbWlzc2lvbkZvckd3eFN0YXJ0AAAAAAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAPZmFjdG9yeUNvbnRyYWN0CQAAAgAAAAECAAAAEnBlcm1pc3Npb25zIGRlbmll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", "chainId": 84, "height": 1847071, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D6GLY9gYQZkDJVecwJrXyrhsktQuPmBR1mzChqvVWbNM Next: none Diff:
OldNewDifferences
1111
1212 let e = 1000
1313
14-func f (g) = valueOrElse(getInteger(this, g), 0)
14+let f = 100000000
15+
16+let g = toBigInt(0)
17+
18+func h (i) = valueOrElse(getInteger(this, i), 0)
1519
1620
17-func h (g) = valueOrElse(getString(this, g), "")
21+func j (i) = valueOrElse(getString(this, i), "")
1822
1923
20-func i (g) = valueOrErrorMessage(getString(g), (("mandatory this." + g) + " is not defined"))
24+func k (i) = valueOrErrorMessage(getString(i), (("mandatory this." + i) + " is not defined"))
2125
2226
23-let j = 1
24-
25-let k = 2
26-
27-let l = 3
28-
29-let m = 4
30-
31-func n () = "%s__config"
27+func l (m) = if ((g > m))
28+ then -(m)
29+ else m
3230
3331
34-func o () = split(i(n()), b)
32+func n () = "%s%s__config__factoryAddress"
3533
3634
37-func p (q,r,s,t) = makeString(["%s%s%s%d", q, r, s, toString(t)], b)
35+let o = k(n())
36+
37+let p = addressFromStringValue(o)
38+
39+let q = 1
40+
41+let r = 2
42+
43+let s = 3
44+
45+let t = 4
46+
47+func u () = "%s__config"
3848
3949
40-func u () = "%s__nextUserNum"
50+func v () = split(k(u()), b)
4151
4252
43-func v () = "%s__nextProcessedUser"
53+func w (x,y,z,A) = makeString(["%s%s%s%d", x, y, z, toString(A)], b)
4454
4555
46-func w () = "%s__latestPeriod"
56+func B () = "%s%s__gwxRewardEmissionPart__startHeight"
4757
4858
49-func x () = "%s__nextPeriod"
59+func C () = "%s__nextUserNum"
5060
5161
52-func y () = "%s__nextProcessedPeriod"
62+func D () = "%s__nextProcessedUser"
5363
5464
55-func z (A) = makeString(["%s%d__nextClaimedPeriod", toString(A)], b)
65+func E () = "%s__latestPeriod"
5666
5767
58-func B (A) = makeString(["%s%d__lastProcessedPeriod", toString(A)], b)
68+func F () = "%s__nextPeriod"
5969
6070
61-func C (D) = makeString(["%s%d__startHeightForPeriod", toString(D)], b)
71+func G () = "%s__nextProcessedPeriod"
6272
6373
64-func E (D) = makeString(["%s%d__totalAmountForPeriod", toString(D)], b)
74+func H (I) = makeString(["%s%d__nextClaimedPeriod", toString(I)], b)
6575
6676
67-func F (D) = makeString(["%s%d__totalWeightForPeriod", toString(D)], b)
77+func J (I) = makeString(["%s%d__lastProcessedPeriod", toString(I)], b)
6878
6979
70-func G (D,A) = makeString(["%s%d%s%d__paramByPeriod", toString(A), "k", toString(D)], b)
80+func K (L) = makeString(["%s%d__startHeightForPeriod", toString(L)], b)
7181
7282
73-func H (D,A) = makeString(["%s%d%s%d__paramByPeriod", toString(A), "b", toString(D)], b)
83+func M (L) = makeString(["%s%d__totalAmountForPeriod", toString(L)], b)
7484
7585
76-func I (J,K,L,M,N,O) = {
77- let P = makeString(["%s%s%s%s__history", J, K, toBase58String(O.transactionId)], b)
78- let Q = makeString(["%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(L), toString(M), toString(N)], b)
79- StringEntry(P, Q)
86+func N (L) = makeString(["%s%d__totalWeightForPeriod", toString(L)], b)
87+
88+
89+func O (L,I) = makeString(["%s%d%s%d__paramByPeriod", toString(I), "k", toString(L)], b)
90+
91+
92+func P (L,I) = makeString(["%s%d%s%d__paramByPeriod", toString(I), "b", toString(L)], b)
93+
94+
95+func Q (R,S,T,U,V,W) = {
96+ let X = makeString(["%s%s%s%s__history", R, S, toBase58String(W.transactionId)], b)
97+ let Y = makeString(["%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(T), toString(U), toString(V)], b)
98+ StringEntry(X, Y)
8099 }
81100
82101
83-func R (S,T,D,A) = {
84- let U = B(A)
85- let V = G(D, A)
86- let W = getInteger(S, V)
87- if (isDefined(W))
102+func Z (aa,ab,L,I) = {
103+ let ac = J(I)
104+ let ad = O(L, I)
105+ let ae = getInteger(aa, ad)
106+ if (isDefined(ae))
88107 then {
89- let X = value(W)
90- let Y = value(getInteger(S, H(D, A)))
91- let Z = ((X * T) + Y)
92- if ((Z > 0))
93- then $Tuple2((Z / e), [IntegerEntry(U, D)])
108+ let af = value(ae)
109+ let ag = value(getInteger(aa, P(L, I)))
110+ let ah = ((af * ab) + ag)
111+ if ((ah > 0))
112+ then $Tuple2((ah / e), [IntegerEntry(ac, L)])
94113 else $Tuple2(0, nil)
95114 }
96115 else {
97- let aa = getInteger(this, U)
98- if (isDefined(aa))
116+ let ai = getInteger(this, ac)
117+ if (isDefined(ai))
99118 then {
100- let ab = value(aa)
101- let X = value(getInteger(S, G(ab, A)))
102- let Y = value(getInteger(S, H(ab, A)))
103- let Z = ((X * T) + Y)
104- if ((Z > 0))
105- then $Tuple2((Z / e), nil)
119+ let aj = value(ai)
120+ let af = value(getInteger(aa, O(aj, I)))
121+ let ag = value(getInteger(aa, P(aj, I)))
122+ let ah = ((af * ab) + ag)
123+ if ((ah > 0))
124+ then $Tuple2((ah / e), nil)
106125 else $Tuple2(0, nil)
107126 }
108127 else $Tuple2(0, nil)
110129 }
111130
112131
113-func ac (s,ad) = {
114- let g = makeString(["%s%s%s", "mapping", "user2num", ad], b)
115- parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(s)), g), ((("User address " + ad) + " is not found in boosting contract data, key=") + g)))
132+func ak (z,al) = {
133+ let i = makeString(["%s%s%s", "mapping", "user2num", al], b)
134+ parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(z)), i), ((("User address " + al) + " is not found in boosting contract data, key=") + i)))
116135 }
117136
118137
119-func ae () = f(x())
138+func am () = h(F())
120139
121140
122-func af (ag,D,K,ah,ai) = {
123- let aj = invoke(this, "processNextBatch", [ag, D, K, ah, ai], nil)
124- if ((aj == aj))
141+func an (ao,L,S,ap,aq) = {
142+ let ar = invoke(this, "processNextBatch", [ao, L, S, ap, aq], nil)
143+ if ((ar == ar))
125144 then {
126- let ak = aj
127- if ($isInstanceOf(ak, "(Int, Int, Int)"))
145+ let as = ar
146+ if ($isInstanceOf(as, "(Int, Int, Int)"))
128147 then {
129- let al = ak
130- al
148+ let at = as
149+ at
131150 }
132151 else throw("Incorrect invoke result")
133152 }
135154 }
136155
137156
138-func am (ag,M,N,ah,an,ai) = if ((N >= (M + 1)))
139- then af(ag, (M + 1), 0, (ah - 1), 0)
140- else $Tuple3((M + 1), 0, 0)
157+func au (ao,U,V,ap,av,aq) = if ((V >= (U + 1)))
158+ then an(ao, (U + 1), 0, (ap - 1), 0)
159+ else $Tuple3((U + 1), 0, 0)
141160
142161
143-func ao (ag,M,ap,ah,aq) = {
144- let S = Address(ag)
145- let N = f(w())
146- let ar = valueOrElse(getInteger(S, u()), 0)
147- let an = F(M)
148- let T = f(C(M))
149- if (if ((ah > 0))
150- then (N >= M)
162+func aw (ao,U,ax,ap,ay) = {
163+ let aa = Address(ao)
164+ let V = h(E())
165+ let az = valueOrElse(getInteger(aa, C()), 0)
166+ let av = N(U)
167+ let ab = h(K(U))
168+ if (if ((ap > 0))
169+ then (V >= U)
151170 else false)
152171 then {
153- let as = R(S, T, M, ap)
154- let at = (aq + as._1)
155- if ((ar > (ap + 1)))
172+ let aA = Z(aa, ab, U, ax)
173+ let aB = (ay + aA._1)
174+ if ((az > (ax + 1)))
156175 then {
157- let au = R(S, T, M, (ap + 1))
158- let av = (at + au._1)
159- if ((ar > (ap + 2)))
176+ let aC = Z(aa, ab, U, (ax + 1))
177+ let aD = (aB + aC._1)
178+ if ((az > (ax + 2)))
160179 then {
161- let aw = R(S, T, M, (ap + 2))
162- let ax = (av + aw._1)
163- if ((ar > (ap + 3)))
180+ let aE = Z(aa, ab, U, (ax + 2))
181+ let aF = (aD + aE._1)
182+ if ((az > (ax + 3)))
164183 then {
165- let ay = R(S, T, M, (ap + 3))
166- let az = (ax + ay._1)
167- if ((ar > (ap + 4)))
184+ let aG = Z(aa, ab, U, (ax + 3))
185+ let aH = (aF + aG._1)
186+ if ((az > (ax + 4)))
168187 then {
169- let aA = R(S, T, M, (ap + 4))
170- let aB = (az + aA._1)
171- if ((ar > (ap + 5)))
188+ let aI = Z(aa, ab, U, (ax + 4))
189+ let aJ = (aH + aI._1)
190+ if ((az > (ax + 5)))
172191 then {
173- let aC = R(S, T, M, (ap + 5))
174- let aD = (aB + aC._1)
175- if ((ar > (ap + 6)))
192+ let aK = Z(aa, ab, U, (ax + 5))
193+ let aL = (aJ + aK._1)
194+ if ((az > (ax + 6)))
176195 then {
177- let aE = af(ag, M, (ap + 6), (ah - 1), aD)
178- $Tuple4((((((as._2 ++ au._2) ++ aw._2) ++ ay._2) ++ aA._2) ++ aC._2), aE._1, aE._2, aE._3)
196+ let aM = an(ao, U, (ax + 6), (ap - 1), aL)
197+ $Tuple4((((((aA._2 ++ aC._2) ++ aE._2) ++ aG._2) ++ aI._2) ++ aK._2), aM._1, aM._2, aM._3)
179198 }
180199 else {
181- let aE = am(ag, M, N, ah, an, aD)
182- $Tuple4((((((([IntegerEntry(an, aD)] ++ as._2) ++ au._2) ++ aw._2) ++ ay._2) ++ aA._2) ++ aC._2), aE._1, aE._2, aE._3)
200+ let aM = au(ao, U, V, ap, av, aL)
201+ $Tuple4((((((([IntegerEntry(av, aL)] ++ aA._2) ++ aC._2) ++ aE._2) ++ aG._2) ++ aI._2) ++ aK._2), aM._1, aM._2, aM._3)
183202 }
184203 }
185204 else {
186- let aF = am(ag, M, N, ah, an, aB)
187- $Tuple4(((((([IntegerEntry(an, aB)] ++ as._2) ++ au._2) ++ aw._2) ++ ay._2) ++ aA._2), aF._1, aF._2, aF._3)
205+ let aN = au(ao, U, V, ap, av, aJ)
206+ $Tuple4(((((([IntegerEntry(av, aJ)] ++ aA._2) ++ aC._2) ++ aE._2) ++ aG._2) ++ aI._2), aN._1, aN._2, aN._3)
188207 }
189208 }
190209 else {
191- let aG = am(ag, M, N, ah, an, az)
192- $Tuple4((((([IntegerEntry(an, az)] ++ as._2) ++ au._2) ++ aw._2) ++ ay._2), aG._1, aG._2, aG._3)
210+ let aO = au(ao, U, V, ap, av, aH)
211+ $Tuple4((((([IntegerEntry(av, aH)] ++ aA._2) ++ aC._2) ++ aE._2) ++ aG._2), aO._1, aO._2, aO._3)
193212 }
194213 }
195214 else {
196- let aH = am(ag, M, N, ah, an, ax)
197- $Tuple4(((([IntegerEntry(an, ax)] ++ as._2) ++ au._2) ++ aw._2), aH._1, aH._2, aH._3)
215+ let aP = au(ao, U, V, ap, av, aF)
216+ $Tuple4(((([IntegerEntry(av, aF)] ++ aA._2) ++ aC._2) ++ aE._2), aP._1, aP._2, aP._3)
198217 }
199218 }
200219 else {
201- let aI = am(ag, M, N, ah, an, av)
202- $Tuple4((([IntegerEntry(an, av)] ++ as._2) ++ au._2), aI._1, aI._2, aI._3)
220+ let aQ = au(ao, U, V, ap, av, aD)
221+ $Tuple4((([IntegerEntry(av, aD)] ++ aA._2) ++ aC._2), aQ._1, aQ._2, aQ._3)
203222 }
204223 }
205224 else {
206- let aJ = am(ag, M, N, ah, an, at)
207- $Tuple4(([IntegerEntry(an, at)] ++ as._2), aJ._1, aJ._2, aJ._3)
225+ let aR = au(ao, U, V, ap, av, aB)
226+ $Tuple4(([IntegerEntry(av, aB)] ++ aA._2), aR._1, aR._2, aR._3)
208227 }
209228 }
210- else if ((ap == 0))
211- then $Tuple4(nil, M, 0, 0)
212- else $Tuple4([IntegerEntry(an, aq)], M, ap, 0)
229+ else if ((ax == 0))
230+ then $Tuple4(nil, U, 0, 0)
231+ else $Tuple4([IntegerEntry(av, ay)], U, ax, 0)
213232 }
214233
215234
216-func aK (ag,D,K,ah,aL) = {
217- let aj = invoke(this, "claimNextBatch", [ag, D, K, ah, aL], nil)
218- if ((aj == aj))
235+func aS (ao,L,S,ap,aT) = {
236+ let ar = invoke(this, "claimNextBatch", [ao, L, S, ap, aT], nil)
237+ if ((ar == ar))
219238 then {
220- let ak = aj
221- if ($isInstanceOf(ak, "(Int, Int)"))
239+ let as = ar
240+ if ($isInstanceOf(as, "(Int, Int)"))
222241 then {
223- let al = ak
224- al
242+ let at = as
243+ at
225244 }
226245 else throw("Incorrect invoke result")
227246 }
229248 }
230249
231250
232-func aM (ag,M,ap,ah,aN) = {
233- let S = Address(ag)
234- let N = f(y())
235- let aq = f(F(M))
236- let T = f(C(M))
237- let aO = R(S, T, M, ap)
238- let aP = aO._1
239- let aQ = aO._2
240- let aR = fraction(f(E(M)), aP, aq)
241- if (if ((0 >= ah))
251+func aU (ao,U,ax,ap,aV) = {
252+ let aa = Address(ao)
253+ let V = h(G())
254+ let ay = h(N(U))
255+ let ab = h(K(U))
256+ let aW = Z(aa, ab, U, ax)
257+ let aX = aW._1
258+ let aY = aW._2
259+ let aZ = fraction(h(M(U)), aX, ay)
260+ if (if ((0 >= ap))
242261 then true
243- else ((M + 1) >= N))
244- then $Tuple2((M + 1), (aN + aR))
245- else aK(ag, (M + 1), ap, (ah - 1), (aN + aR))
262+ else ((U + 1) >= V))
263+ then $Tuple2((U + 1), (aV + aZ))
264+ else aS(ao, (U + 1), ax, (ap - 1), (aV + aZ))
246265 }
247266
248267
249-func aS (ad) = {
250- let aT = o()
251- let aU = ac(aT[l], ad)
252- let M = f(z(aU))
253- let N = f(y())
254- if ((M >= N))
268+func ba (al) = {
269+ let bb = v()
270+ let bc = ak(bb[s], al)
271+ let U = h(H(bc))
272+ let V = h(G())
273+ if ((U >= V))
255274 then throw("Nothing to claim")
256275 else {
257- let ag = fromBase58String(aT[l])
258- let aV = aM(ag, M, aU, d, 0)
259- let D = aV._1
260- let L = aV._2
261- $Tuple5(D, L, aU, aT, N)
276+ let ao = fromBase58String(bb[s])
277+ let bd = aU(ao, U, bc, d, 0)
278+ let L = bd._1
279+ let T = bd._2
280+ $Tuple5(L, T, bc, bb, V)
262281 }
263282 }
264283
265284
266-@Callable(O)
267-func processNextBatch (ag,M,ap,ah,aq) = if ((O.caller != this))
285+@Callable(W)
286+func processNextBatch (ao,U,ax,ap,ay) = if ((W.caller != this))
268287 then throw("Should be called by this script only")
269288 else {
270- let aW = ao(ag, M, ap, ah, aq)
271- $Tuple2(aW._1, $Tuple3(aW._2, aW._3, aW._4))
289+ let be = aw(ao, U, ax, ap, ay)
290+ $Tuple2(be._1, $Tuple3(be._2, be._3, be._4))
272291 }
273292
274293
275294
276-@Callable(O)
295+@Callable(W)
277296 func processPendingPeriodsAndUsers () = {
278- let M = f(y())
279- if ((M > f(w())))
297+ let U = h(G())
298+ if ((U > h(E())))
280299 then throw("Nothing to process")
281300 else {
282- let aT = o()
283- let ah = parseIntValue(aT[m])
284- if ((ah > c))
301+ let bb = v()
302+ let ap = parseIntValue(bb[t])
303+ if ((ap > c))
285304 then throw("Depth exceeds MAXDEPTH")
286305 else {
287- let ag = fromBase58String(aT[l])
288- let ap = f(v())
289- let aq = f(F(M))
290- let al = ao(ag, M, ap, ah, aq)
291- ((al._1 :+ IntegerEntry(y(), al._2)) :+ IntegerEntry(v(), al._3))
306+ let ao = fromBase58String(bb[s])
307+ let ax = h(D())
308+ let ay = h(N(U))
309+ let at = aw(ao, U, ax, ap, ay)
310+ ((at._1 :+ IntegerEntry(G(), at._2)) :+ IntegerEntry(D(), at._3))
292311 }
293312 }
294313 }
295314
296315
297316
298-@Callable(O)
317+@Callable(W)
299318 func deposit () = {
300- let aT = o()
301- if ((O.caller != Address(fromBase58String(aT[k]))))
319+ let bb = v()
320+ if ((W.caller != Address(fromBase58String(bb[r]))))
302321 then throw("Wrong caller address")
303322 else {
304- let aX = value(value(O.payments[0]).assetId)
305- if ((aX != fromBase58String(aT[j])))
323+ let bf = value(value(W.payments[0]).assetId)
324+ if ((bf != fromBase58String(bb[q])))
306325 then throw("Wrong payment asset")
307326 else {
308- let D = ae()
309-[IntegerEntry(w(), D), IntegerEntry(C(D), height), IntegerEntry(E(D), value(O.payments[0]).amount), IntegerEntry(x(), (D + 1))]
327+ let L = am()
328+[IntegerEntry(E(), L), IntegerEntry(K(L), height), IntegerEntry(M(L), value(W.payments[0]).amount), IntegerEntry(F(), (L + 1))]
310329 }
311330 }
312331 }
313332
314333
315334
316-@Callable(O)
317-func claimNextBatch (ag,M,ap,ah,aq) = if ((O.caller != this))
335+@Callable(W)
336+func claimNextBatch (ao,U,ax,ap,ay) = if ((W.caller != this))
318337 then throw("Should be called by this script only")
319338 else {
320- let aY = aM(ag, M, ap, ah, aq)
321- $Tuple2(nil, aY)
339+ let bg = aU(ao, U, ax, ap, ay)
340+ $Tuple2(nil, bg)
322341 }
323342
324343
325344
326-@Callable(O)
345+@Callable(W)
327346 func claimReward () = {
328- let aZ = toString(O.caller)
329- let ba = aS(aZ)
330- let D = ba._1
331- let L = ba._2
332- let aU = ba._3
333- let aT = ba._4
334- let N = ba._5
335- $Tuple2([IntegerEntry(z(aU), D), ScriptTransfer(O.caller, L, fromBase58String(aT[j])), I("claim", aZ, L, D, N, O)], L)
347+ let bh = toString(W.caller)
348+ let bi = ba(bh)
349+ let L = bi._1
350+ let T = bi._2
351+ let bc = bi._3
352+ let bb = bi._4
353+ let V = bi._5
354+ $Tuple2([IntegerEntry(H(bc), L), ScriptTransfer(W.caller, T, fromBase58String(bb[q])), Q("claim", bh, T, L, V, W)], T)
336355 }
337356
338357
339358
340-@Callable(O)
341-func claimRewardREADONLY (aZ) = {
342- let bb = aS(aZ)
343- let L = bb._2
344- $Tuple2(nil, L)
359+@Callable(W)
360+func claimRewardREADONLY (bh) = {
361+ let bj = ba(bh)
362+ let T = bj._2
363+ $Tuple2(nil, T)
345364 }
346365
347366
348367
349-@Callable(O)
350-func calcGwxParamsREADONLY (bc,bd,be) = {
351- let bf = (bd + be)
352- let bg = -(fraction(bc, e, be))
353- let bh = (fraction(bc, e, be) * bf)
354- $Tuple2(nil, [bg, bh, ae()])
368+@Callable(W)
369+func calcGwxParamsREADONLY (bk,bl,bm) = {
370+ let bn = (bl + bm)
371+ let bo = -(fraction(bk, e, bm))
372+ let bp = (fraction(bk, e, bm) * bn)
373+ $Tuple2(nil, [bo, bp, am()])
355374 }
356375
357376
358377
359-@Callable(O)
360-func constructor (q,r,s,t) = if ((this != O.caller))
378+@Callable(W)
379+func calcGwxAmountStartREADONLY (bq,br,bs) = {
380+ let bt = fraction(br, f, bs)
381+ let bu = fraction(bq, bt, f)
382+ $Tuple2(nil, [bu])
383+ }
384+
385+
386+
387+@Callable(W)
388+func constructor (x,y,z,A) = if ((this != W.caller))
361389 then throw("not authorized")
362- else [StringEntry(n(), p(q, r, s, t))]
390+ else [StringEntry(u(), w(x, y, z, A))]
391+
392+
393+
394+@Callable(W)
395+func constructorV2 (bv) = if ((this != W.caller))
396+ then throw("not authorized")
397+ else [StringEntry(n(), bv)]
398+
399+
400+
401+@Callable(W)
402+func onEmissionForGwxStart () = if ((W.caller != p))
403+ then throw("permissions denied")
404+ else [IntegerEntry(B(), height)]
405+
406+
407+
408+@Callable(W)
409+func calcD (bw,bx,by,bz,bA) = {
410+ let bB = toBigInt(2)
411+ let bC = parseBigIntValue(bz)
412+ let bD = parseBigIntValue(bA)
413+ let bE = parseBigIntValue(bw)
414+ let bF = parseBigIntValue(bx)
415+ let bG = (parseBigIntValue(by) * bC)
416+ let bH = (bE + bF)
417+ if ((bH == g))
418+ then $Tuple2(nil, toString(g))
419+ else {
420+ let bI = (bG * bB)
421+ let bJ = [1, 2, 3, 4, 5, 6, 7]
422+ func bK (bL,bM) = {
423+ let bN = bL
424+ let bO = bN._1
425+ let bP = bN._2
426+ let bQ = (((bO * bO) * bO) / (((bE * bF) * bB) * bB))
427+ let bR = (((((bI * bH) / bC) + (bQ * bB)) * bO) / ((((bI - bC) * bO) / bC) + ((bB + toBigInt(1)) * bQ)))
428+ $Tuple2(bR, bO)
429+ }
430+
431+ let bS = {
432+ let bT = bJ
433+ let bU = size(bT)
434+ let bV = $Tuple2(bH, unit)
435+ func bW (bX,bY) = if ((bY >= bU))
436+ then bX
437+ else bK(bX, bT[bY])
438+
439+ func bZ (bX,bY) = if ((bY >= bU))
440+ then bX
441+ else throw("List size exceeds 7")
442+
443+ bZ(bW(bW(bW(bW(bW(bW(bW(bV, 0), 1), 2), 3), 4), 5), 6), 7)
444+ }
445+ let bR = bS._1
446+ let bP = bS._2
447+ let ca = l((bR - value(bP)))
448+ if ((bD >= ca))
449+ then $Tuple2(nil, toString(bR))
450+ else throw(("D calculation error, dDiff = " + toString(ca)))
451+ }
452+ }
363453
364454
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = ""
55
66 let b = "__"
77
88 let c = 17
99
1010 let d = 26
1111
1212 let e = 1000
1313
14-func f (g) = valueOrElse(getInteger(this, g), 0)
14+let f = 100000000
15+
16+let g = toBigInt(0)
17+
18+func h (i) = valueOrElse(getInteger(this, i), 0)
1519
1620
17-func h (g) = valueOrElse(getString(this, g), "")
21+func j (i) = valueOrElse(getString(this, i), "")
1822
1923
20-func i (g) = valueOrErrorMessage(getString(g), (("mandatory this." + g) + " is not defined"))
24+func k (i) = valueOrErrorMessage(getString(i), (("mandatory this." + i) + " is not defined"))
2125
2226
23-let j = 1
24-
25-let k = 2
26-
27-let l = 3
28-
29-let m = 4
30-
31-func n () = "%s__config"
27+func l (m) = if ((g > m))
28+ then -(m)
29+ else m
3230
3331
34-func o () = split(i(n()), b)
32+func n () = "%s%s__config__factoryAddress"
3533
3634
37-func p (q,r,s,t) = makeString(["%s%s%s%d", q, r, s, toString(t)], b)
35+let o = k(n())
36+
37+let p = addressFromStringValue(o)
38+
39+let q = 1
40+
41+let r = 2
42+
43+let s = 3
44+
45+let t = 4
46+
47+func u () = "%s__config"
3848
3949
40-func u () = "%s__nextUserNum"
50+func v () = split(k(u()), b)
4151
4252
43-func v () = "%s__nextProcessedUser"
53+func w (x,y,z,A) = makeString(["%s%s%s%d", x, y, z, toString(A)], b)
4454
4555
46-func w () = "%s__latestPeriod"
56+func B () = "%s%s__gwxRewardEmissionPart__startHeight"
4757
4858
49-func x () = "%s__nextPeriod"
59+func C () = "%s__nextUserNum"
5060
5161
52-func y () = "%s__nextProcessedPeriod"
62+func D () = "%s__nextProcessedUser"
5363
5464
55-func z (A) = makeString(["%s%d__nextClaimedPeriod", toString(A)], b)
65+func E () = "%s__latestPeriod"
5666
5767
58-func B (A) = makeString(["%s%d__lastProcessedPeriod", toString(A)], b)
68+func F () = "%s__nextPeriod"
5969
6070
61-func C (D) = makeString(["%s%d__startHeightForPeriod", toString(D)], b)
71+func G () = "%s__nextProcessedPeriod"
6272
6373
64-func E (D) = makeString(["%s%d__totalAmountForPeriod", toString(D)], b)
74+func H (I) = makeString(["%s%d__nextClaimedPeriod", toString(I)], b)
6575
6676
67-func F (D) = makeString(["%s%d__totalWeightForPeriod", toString(D)], b)
77+func J (I) = makeString(["%s%d__lastProcessedPeriod", toString(I)], b)
6878
6979
70-func G (D,A) = makeString(["%s%d%s%d__paramByPeriod", toString(A), "k", toString(D)], b)
80+func K (L) = makeString(["%s%d__startHeightForPeriod", toString(L)], b)
7181
7282
73-func H (D,A) = makeString(["%s%d%s%d__paramByPeriod", toString(A), "b", toString(D)], b)
83+func M (L) = makeString(["%s%d__totalAmountForPeriod", toString(L)], b)
7484
7585
76-func I (J,K,L,M,N,O) = {
77- let P = makeString(["%s%s%s%s__history", J, K, toBase58String(O.transactionId)], b)
78- let Q = makeString(["%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(L), toString(M), toString(N)], b)
79- StringEntry(P, Q)
86+func N (L) = makeString(["%s%d__totalWeightForPeriod", toString(L)], b)
87+
88+
89+func O (L,I) = makeString(["%s%d%s%d__paramByPeriod", toString(I), "k", toString(L)], b)
90+
91+
92+func P (L,I) = makeString(["%s%d%s%d__paramByPeriod", toString(I), "b", toString(L)], b)
93+
94+
95+func Q (R,S,T,U,V,W) = {
96+ let X = makeString(["%s%s%s%s__history", R, S, toBase58String(W.transactionId)], b)
97+ let Y = makeString(["%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(T), toString(U), toString(V)], b)
98+ StringEntry(X, Y)
8099 }
81100
82101
83-func R (S,T,D,A) = {
84- let U = B(A)
85- let V = G(D, A)
86- let W = getInteger(S, V)
87- if (isDefined(W))
102+func Z (aa,ab,L,I) = {
103+ let ac = J(I)
104+ let ad = O(L, I)
105+ let ae = getInteger(aa, ad)
106+ if (isDefined(ae))
88107 then {
89- let X = value(W)
90- let Y = value(getInteger(S, H(D, A)))
91- let Z = ((X * T) + Y)
92- if ((Z > 0))
93- then $Tuple2((Z / e), [IntegerEntry(U, D)])
108+ let af = value(ae)
109+ let ag = value(getInteger(aa, P(L, I)))
110+ let ah = ((af * ab) + ag)
111+ if ((ah > 0))
112+ then $Tuple2((ah / e), [IntegerEntry(ac, L)])
94113 else $Tuple2(0, nil)
95114 }
96115 else {
97- let aa = getInteger(this, U)
98- if (isDefined(aa))
116+ let ai = getInteger(this, ac)
117+ if (isDefined(ai))
99118 then {
100- let ab = value(aa)
101- let X = value(getInteger(S, G(ab, A)))
102- let Y = value(getInteger(S, H(ab, A)))
103- let Z = ((X * T) + Y)
104- if ((Z > 0))
105- then $Tuple2((Z / e), nil)
119+ let aj = value(ai)
120+ let af = value(getInteger(aa, O(aj, I)))
121+ let ag = value(getInteger(aa, P(aj, I)))
122+ let ah = ((af * ab) + ag)
123+ if ((ah > 0))
124+ then $Tuple2((ah / e), nil)
106125 else $Tuple2(0, nil)
107126 }
108127 else $Tuple2(0, nil)
109128 }
110129 }
111130
112131
113-func ac (s,ad) = {
114- let g = makeString(["%s%s%s", "mapping", "user2num", ad], b)
115- parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(s)), g), ((("User address " + ad) + " is not found in boosting contract data, key=") + g)))
132+func ak (z,al) = {
133+ let i = makeString(["%s%s%s", "mapping", "user2num", al], b)
134+ parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(z)), i), ((("User address " + al) + " is not found in boosting contract data, key=") + i)))
116135 }
117136
118137
119-func ae () = f(x())
138+func am () = h(F())
120139
121140
122-func af (ag,D,K,ah,ai) = {
123- let aj = invoke(this, "processNextBatch", [ag, D, K, ah, ai], nil)
124- if ((aj == aj))
141+func an (ao,L,S,ap,aq) = {
142+ let ar = invoke(this, "processNextBatch", [ao, L, S, ap, aq], nil)
143+ if ((ar == ar))
125144 then {
126- let ak = aj
127- if ($isInstanceOf(ak, "(Int, Int, Int)"))
145+ let as = ar
146+ if ($isInstanceOf(as, "(Int, Int, Int)"))
128147 then {
129- let al = ak
130- al
148+ let at = as
149+ at
131150 }
132151 else throw("Incorrect invoke result")
133152 }
134153 else throw("Strict value is not equal to itself.")
135154 }
136155
137156
138-func am (ag,M,N,ah,an,ai) = if ((N >= (M + 1)))
139- then af(ag, (M + 1), 0, (ah - 1), 0)
140- else $Tuple3((M + 1), 0, 0)
157+func au (ao,U,V,ap,av,aq) = if ((V >= (U + 1)))
158+ then an(ao, (U + 1), 0, (ap - 1), 0)
159+ else $Tuple3((U + 1), 0, 0)
141160
142161
143-func ao (ag,M,ap,ah,aq) = {
144- let S = Address(ag)
145- let N = f(w())
146- let ar = valueOrElse(getInteger(S, u()), 0)
147- let an = F(M)
148- let T = f(C(M))
149- if (if ((ah > 0))
150- then (N >= M)
162+func aw (ao,U,ax,ap,ay) = {
163+ let aa = Address(ao)
164+ let V = h(E())
165+ let az = valueOrElse(getInteger(aa, C()), 0)
166+ let av = N(U)
167+ let ab = h(K(U))
168+ if (if ((ap > 0))
169+ then (V >= U)
151170 else false)
152171 then {
153- let as = R(S, T, M, ap)
154- let at = (aq + as._1)
155- if ((ar > (ap + 1)))
172+ let aA = Z(aa, ab, U, ax)
173+ let aB = (ay + aA._1)
174+ if ((az > (ax + 1)))
156175 then {
157- let au = R(S, T, M, (ap + 1))
158- let av = (at + au._1)
159- if ((ar > (ap + 2)))
176+ let aC = Z(aa, ab, U, (ax + 1))
177+ let aD = (aB + aC._1)
178+ if ((az > (ax + 2)))
160179 then {
161- let aw = R(S, T, M, (ap + 2))
162- let ax = (av + aw._1)
163- if ((ar > (ap + 3)))
180+ let aE = Z(aa, ab, U, (ax + 2))
181+ let aF = (aD + aE._1)
182+ if ((az > (ax + 3)))
164183 then {
165- let ay = R(S, T, M, (ap + 3))
166- let az = (ax + ay._1)
167- if ((ar > (ap + 4)))
184+ let aG = Z(aa, ab, U, (ax + 3))
185+ let aH = (aF + aG._1)
186+ if ((az > (ax + 4)))
168187 then {
169- let aA = R(S, T, M, (ap + 4))
170- let aB = (az + aA._1)
171- if ((ar > (ap + 5)))
188+ let aI = Z(aa, ab, U, (ax + 4))
189+ let aJ = (aH + aI._1)
190+ if ((az > (ax + 5)))
172191 then {
173- let aC = R(S, T, M, (ap + 5))
174- let aD = (aB + aC._1)
175- if ((ar > (ap + 6)))
192+ let aK = Z(aa, ab, U, (ax + 5))
193+ let aL = (aJ + aK._1)
194+ if ((az > (ax + 6)))
176195 then {
177- let aE = af(ag, M, (ap + 6), (ah - 1), aD)
178- $Tuple4((((((as._2 ++ au._2) ++ aw._2) ++ ay._2) ++ aA._2) ++ aC._2), aE._1, aE._2, aE._3)
196+ let aM = an(ao, U, (ax + 6), (ap - 1), aL)
197+ $Tuple4((((((aA._2 ++ aC._2) ++ aE._2) ++ aG._2) ++ aI._2) ++ aK._2), aM._1, aM._2, aM._3)
179198 }
180199 else {
181- let aE = am(ag, M, N, ah, an, aD)
182- $Tuple4((((((([IntegerEntry(an, aD)] ++ as._2) ++ au._2) ++ aw._2) ++ ay._2) ++ aA._2) ++ aC._2), aE._1, aE._2, aE._3)
200+ let aM = au(ao, U, V, ap, av, aL)
201+ $Tuple4((((((([IntegerEntry(av, aL)] ++ aA._2) ++ aC._2) ++ aE._2) ++ aG._2) ++ aI._2) ++ aK._2), aM._1, aM._2, aM._3)
183202 }
184203 }
185204 else {
186- let aF = am(ag, M, N, ah, an, aB)
187- $Tuple4(((((([IntegerEntry(an, aB)] ++ as._2) ++ au._2) ++ aw._2) ++ ay._2) ++ aA._2), aF._1, aF._2, aF._3)
205+ let aN = au(ao, U, V, ap, av, aJ)
206+ $Tuple4(((((([IntegerEntry(av, aJ)] ++ aA._2) ++ aC._2) ++ aE._2) ++ aG._2) ++ aI._2), aN._1, aN._2, aN._3)
188207 }
189208 }
190209 else {
191- let aG = am(ag, M, N, ah, an, az)
192- $Tuple4((((([IntegerEntry(an, az)] ++ as._2) ++ au._2) ++ aw._2) ++ ay._2), aG._1, aG._2, aG._3)
210+ let aO = au(ao, U, V, ap, av, aH)
211+ $Tuple4((((([IntegerEntry(av, aH)] ++ aA._2) ++ aC._2) ++ aE._2) ++ aG._2), aO._1, aO._2, aO._3)
193212 }
194213 }
195214 else {
196- let aH = am(ag, M, N, ah, an, ax)
197- $Tuple4(((([IntegerEntry(an, ax)] ++ as._2) ++ au._2) ++ aw._2), aH._1, aH._2, aH._3)
215+ let aP = au(ao, U, V, ap, av, aF)
216+ $Tuple4(((([IntegerEntry(av, aF)] ++ aA._2) ++ aC._2) ++ aE._2), aP._1, aP._2, aP._3)
198217 }
199218 }
200219 else {
201- let aI = am(ag, M, N, ah, an, av)
202- $Tuple4((([IntegerEntry(an, av)] ++ as._2) ++ au._2), aI._1, aI._2, aI._3)
220+ let aQ = au(ao, U, V, ap, av, aD)
221+ $Tuple4((([IntegerEntry(av, aD)] ++ aA._2) ++ aC._2), aQ._1, aQ._2, aQ._3)
203222 }
204223 }
205224 else {
206- let aJ = am(ag, M, N, ah, an, at)
207- $Tuple4(([IntegerEntry(an, at)] ++ as._2), aJ._1, aJ._2, aJ._3)
225+ let aR = au(ao, U, V, ap, av, aB)
226+ $Tuple4(([IntegerEntry(av, aB)] ++ aA._2), aR._1, aR._2, aR._3)
208227 }
209228 }
210- else if ((ap == 0))
211- then $Tuple4(nil, M, 0, 0)
212- else $Tuple4([IntegerEntry(an, aq)], M, ap, 0)
229+ else if ((ax == 0))
230+ then $Tuple4(nil, U, 0, 0)
231+ else $Tuple4([IntegerEntry(av, ay)], U, ax, 0)
213232 }
214233
215234
216-func aK (ag,D,K,ah,aL) = {
217- let aj = invoke(this, "claimNextBatch", [ag, D, K, ah, aL], nil)
218- if ((aj == aj))
235+func aS (ao,L,S,ap,aT) = {
236+ let ar = invoke(this, "claimNextBatch", [ao, L, S, ap, aT], nil)
237+ if ((ar == ar))
219238 then {
220- let ak = aj
221- if ($isInstanceOf(ak, "(Int, Int)"))
239+ let as = ar
240+ if ($isInstanceOf(as, "(Int, Int)"))
222241 then {
223- let al = ak
224- al
242+ let at = as
243+ at
225244 }
226245 else throw("Incorrect invoke result")
227246 }
228247 else throw("Strict value is not equal to itself.")
229248 }
230249
231250
232-func aM (ag,M,ap,ah,aN) = {
233- let S = Address(ag)
234- let N = f(y())
235- let aq = f(F(M))
236- let T = f(C(M))
237- let aO = R(S, T, M, ap)
238- let aP = aO._1
239- let aQ = aO._2
240- let aR = fraction(f(E(M)), aP, aq)
241- if (if ((0 >= ah))
251+func aU (ao,U,ax,ap,aV) = {
252+ let aa = Address(ao)
253+ let V = h(G())
254+ let ay = h(N(U))
255+ let ab = h(K(U))
256+ let aW = Z(aa, ab, U, ax)
257+ let aX = aW._1
258+ let aY = aW._2
259+ let aZ = fraction(h(M(U)), aX, ay)
260+ if (if ((0 >= ap))
242261 then true
243- else ((M + 1) >= N))
244- then $Tuple2((M + 1), (aN + aR))
245- else aK(ag, (M + 1), ap, (ah - 1), (aN + aR))
262+ else ((U + 1) >= V))
263+ then $Tuple2((U + 1), (aV + aZ))
264+ else aS(ao, (U + 1), ax, (ap - 1), (aV + aZ))
246265 }
247266
248267
249-func aS (ad) = {
250- let aT = o()
251- let aU = ac(aT[l], ad)
252- let M = f(z(aU))
253- let N = f(y())
254- if ((M >= N))
268+func ba (al) = {
269+ let bb = v()
270+ let bc = ak(bb[s], al)
271+ let U = h(H(bc))
272+ let V = h(G())
273+ if ((U >= V))
255274 then throw("Nothing to claim")
256275 else {
257- let ag = fromBase58String(aT[l])
258- let aV = aM(ag, M, aU, d, 0)
259- let D = aV._1
260- let L = aV._2
261- $Tuple5(D, L, aU, aT, N)
276+ let ao = fromBase58String(bb[s])
277+ let bd = aU(ao, U, bc, d, 0)
278+ let L = bd._1
279+ let T = bd._2
280+ $Tuple5(L, T, bc, bb, V)
262281 }
263282 }
264283
265284
266-@Callable(O)
267-func processNextBatch (ag,M,ap,ah,aq) = if ((O.caller != this))
285+@Callable(W)
286+func processNextBatch (ao,U,ax,ap,ay) = if ((W.caller != this))
268287 then throw("Should be called by this script only")
269288 else {
270- let aW = ao(ag, M, ap, ah, aq)
271- $Tuple2(aW._1, $Tuple3(aW._2, aW._3, aW._4))
289+ let be = aw(ao, U, ax, ap, ay)
290+ $Tuple2(be._1, $Tuple3(be._2, be._3, be._4))
272291 }
273292
274293
275294
276-@Callable(O)
295+@Callable(W)
277296 func processPendingPeriodsAndUsers () = {
278- let M = f(y())
279- if ((M > f(w())))
297+ let U = h(G())
298+ if ((U > h(E())))
280299 then throw("Nothing to process")
281300 else {
282- let aT = o()
283- let ah = parseIntValue(aT[m])
284- if ((ah > c))
301+ let bb = v()
302+ let ap = parseIntValue(bb[t])
303+ if ((ap > c))
285304 then throw("Depth exceeds MAXDEPTH")
286305 else {
287- let ag = fromBase58String(aT[l])
288- let ap = f(v())
289- let aq = f(F(M))
290- let al = ao(ag, M, ap, ah, aq)
291- ((al._1 :+ IntegerEntry(y(), al._2)) :+ IntegerEntry(v(), al._3))
306+ let ao = fromBase58String(bb[s])
307+ let ax = h(D())
308+ let ay = h(N(U))
309+ let at = aw(ao, U, ax, ap, ay)
310+ ((at._1 :+ IntegerEntry(G(), at._2)) :+ IntegerEntry(D(), at._3))
292311 }
293312 }
294313 }
295314
296315
297316
298-@Callable(O)
317+@Callable(W)
299318 func deposit () = {
300- let aT = o()
301- if ((O.caller != Address(fromBase58String(aT[k]))))
319+ let bb = v()
320+ if ((W.caller != Address(fromBase58String(bb[r]))))
302321 then throw("Wrong caller address")
303322 else {
304- let aX = value(value(O.payments[0]).assetId)
305- if ((aX != fromBase58String(aT[j])))
323+ let bf = value(value(W.payments[0]).assetId)
324+ if ((bf != fromBase58String(bb[q])))
306325 then throw("Wrong payment asset")
307326 else {
308- let D = ae()
309-[IntegerEntry(w(), D), IntegerEntry(C(D), height), IntegerEntry(E(D), value(O.payments[0]).amount), IntegerEntry(x(), (D + 1))]
327+ let L = am()
328+[IntegerEntry(E(), L), IntegerEntry(K(L), height), IntegerEntry(M(L), value(W.payments[0]).amount), IntegerEntry(F(), (L + 1))]
310329 }
311330 }
312331 }
313332
314333
315334
316-@Callable(O)
317-func claimNextBatch (ag,M,ap,ah,aq) = if ((O.caller != this))
335+@Callable(W)
336+func claimNextBatch (ao,U,ax,ap,ay) = if ((W.caller != this))
318337 then throw("Should be called by this script only")
319338 else {
320- let aY = aM(ag, M, ap, ah, aq)
321- $Tuple2(nil, aY)
339+ let bg = aU(ao, U, ax, ap, ay)
340+ $Tuple2(nil, bg)
322341 }
323342
324343
325344
326-@Callable(O)
345+@Callable(W)
327346 func claimReward () = {
328- let aZ = toString(O.caller)
329- let ba = aS(aZ)
330- let D = ba._1
331- let L = ba._2
332- let aU = ba._3
333- let aT = ba._4
334- let N = ba._5
335- $Tuple2([IntegerEntry(z(aU), D), ScriptTransfer(O.caller, L, fromBase58String(aT[j])), I("claim", aZ, L, D, N, O)], L)
347+ let bh = toString(W.caller)
348+ let bi = ba(bh)
349+ let L = bi._1
350+ let T = bi._2
351+ let bc = bi._3
352+ let bb = bi._4
353+ let V = bi._5
354+ $Tuple2([IntegerEntry(H(bc), L), ScriptTransfer(W.caller, T, fromBase58String(bb[q])), Q("claim", bh, T, L, V, W)], T)
336355 }
337356
338357
339358
340-@Callable(O)
341-func claimRewardREADONLY (aZ) = {
342- let bb = aS(aZ)
343- let L = bb._2
344- $Tuple2(nil, L)
359+@Callable(W)
360+func claimRewardREADONLY (bh) = {
361+ let bj = ba(bh)
362+ let T = bj._2
363+ $Tuple2(nil, T)
345364 }
346365
347366
348367
349-@Callable(O)
350-func calcGwxParamsREADONLY (bc,bd,be) = {
351- let bf = (bd + be)
352- let bg = -(fraction(bc, e, be))
353- let bh = (fraction(bc, e, be) * bf)
354- $Tuple2(nil, [bg, bh, ae()])
368+@Callable(W)
369+func calcGwxParamsREADONLY (bk,bl,bm) = {
370+ let bn = (bl + bm)
371+ let bo = -(fraction(bk, e, bm))
372+ let bp = (fraction(bk, e, bm) * bn)
373+ $Tuple2(nil, [bo, bp, am()])
355374 }
356375
357376
358377
359-@Callable(O)
360-func constructor (q,r,s,t) = if ((this != O.caller))
378+@Callable(W)
379+func calcGwxAmountStartREADONLY (bq,br,bs) = {
380+ let bt = fraction(br, f, bs)
381+ let bu = fraction(bq, bt, f)
382+ $Tuple2(nil, [bu])
383+ }
384+
385+
386+
387+@Callable(W)
388+func constructor (x,y,z,A) = if ((this != W.caller))
361389 then throw("not authorized")
362- else [StringEntry(n(), p(q, r, s, t))]
390+ else [StringEntry(u(), w(x, y, z, A))]
391+
392+
393+
394+@Callable(W)
395+func constructorV2 (bv) = if ((this != W.caller))
396+ then throw("not authorized")
397+ else [StringEntry(n(), bv)]
398+
399+
400+
401+@Callable(W)
402+func onEmissionForGwxStart () = if ((W.caller != p))
403+ then throw("permissions denied")
404+ else [IntegerEntry(B(), height)]
405+
406+
407+
408+@Callable(W)
409+func calcD (bw,bx,by,bz,bA) = {
410+ let bB = toBigInt(2)
411+ let bC = parseBigIntValue(bz)
412+ let bD = parseBigIntValue(bA)
413+ let bE = parseBigIntValue(bw)
414+ let bF = parseBigIntValue(bx)
415+ let bG = (parseBigIntValue(by) * bC)
416+ let bH = (bE + bF)
417+ if ((bH == g))
418+ then $Tuple2(nil, toString(g))
419+ else {
420+ let bI = (bG * bB)
421+ let bJ = [1, 2, 3, 4, 5, 6, 7]
422+ func bK (bL,bM) = {
423+ let bN = bL
424+ let bO = bN._1
425+ let bP = bN._2
426+ let bQ = (((bO * bO) * bO) / (((bE * bF) * bB) * bB))
427+ let bR = (((((bI * bH) / bC) + (bQ * bB)) * bO) / ((((bI - bC) * bO) / bC) + ((bB + toBigInt(1)) * bQ)))
428+ $Tuple2(bR, bO)
429+ }
430+
431+ let bS = {
432+ let bT = bJ
433+ let bU = size(bT)
434+ let bV = $Tuple2(bH, unit)
435+ func bW (bX,bY) = if ((bY >= bU))
436+ then bX
437+ else bK(bX, bT[bY])
438+
439+ func bZ (bX,bY) = if ((bY >= bU))
440+ then bX
441+ else throw("List size exceeds 7")
442+
443+ bZ(bW(bW(bW(bW(bW(bW(bW(bV, 0), 1), 2), 3), 4), 5), 6), 7)
444+ }
445+ let bR = bS._1
446+ let bP = bS._2
447+ let ca = l((bR - value(bP)))
448+ if ((bD >= ca))
449+ then $Tuple2(nil, toString(bR))
450+ else throw(("D calculation error, dDiff = " + toString(ca)))
451+ }
452+ }
363453
364454

github/deemru/w8io/169f3d6 
136.51 ms