2022.02.10 13:45 [2982465] smart account 3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU > SELF 0.00000000 Waves

{ "type": 13, "id": "GdLUzyHstmfFWz8vJiDYZPcM1gFGEYCpvYx5gJ8Pk1HM", "fee": 1400000, "feeAssetId": null, "timestamp": 1644489948316, "version": 2, "chainId": 87, "sender": "3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU", "senderPublicKey": "Dmn1fWHxpwN789LPfoMHFj7uSYKSsb5VFfyNQyQ629f9", "proofs": [ "24rMKoCxZHe28yj3LxzDSEGB5FyZ2UsPqHGiUywiNQwPFawZjmZbgTwVDE258CvfMwZdx1duavLkx2jsec4Jeu6Y" ], "script": "base64:AAIFAAAAAAAAAA8IAhIECgIIARIFCgMIAQgAAAAGAAAAAAl1c2RuSWRTdHICAAAALERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwAAAAAAZ1c2RuSWQBAAAAILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgIAAAAAAQAAAA5nZXRBc3NldFN0cmluZwAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABYgUAAAAHJG1hdGNoMAkAAlgAAAABBQAAAAFiAgAAAAVXQVZFUwEAAAANZ2V0QXNzZXRCeXRlcwAAAAEAAAAKYXNzZXRJZFN0cgMJAAAAAAAAAgUAAAAKYXNzZXRJZFN0cgIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAKYXNzZXRJZFN0cgEAAAAKZ2V0QmFsYW5jZQAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAABeAUAAAAHJG1hdGNoMAgJAAPvAAAAAQUAAAAEdGhpcwAAAAlhdmFpbGFibGUJAAPwAAAAAgUAAAAEdGhpcwkBAAAABXZhbHVlAAAAAQUAAAAHYXNzZXRJZAAAAAIAAAABaQEAAAAEc3dhcAAAAAIAAAAJcm91dGVzU3RyAAAADG1pblRvUmVjZWl2ZQoBAAAABmRvU3dhcAAAAAIAAAAHYW1vdW50MAAAAARzd2FwBAAAAAZzd2FwTGkJAAS1AAAAAgUAAAAEc3dhcAIAAAABLAQAAAAJJHQwOTA2OTg3CQAFFgAAAAQJAAGRAAAAAgUAAAAGc3dhcExpAAAAAAAAAAAACQABkQAAAAIFAAAABnN3YXBMaQAAAAAAAAAAAQkAAZEAAAACBQAAAAZzd2FwTGkAAAAAAAAAAAIJAAGRAAAAAgUAAAAGc3dhcExpAAAAAAAAAAADBAAAAARkQXBwCAUAAAAJJHQwOTA2OTg3AAAAAl8xBAAAAAhkQXBwVHlwZQgFAAAACSR0MDkwNjk4NwAAAAJfMgQAAAAFdDBTdHIIBQAAAAkkdDA5MDY5ODcAAAACXzMEAAAABXQxU3RyCAUAAAAJJHQwOTA2OTg3AAAAAl80BAAAAAJ0MAkBAAAADWdldEFzc2V0Qnl0ZXMAAAABBQAAAAV0MFN0cgQAAAACdDEJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAAFdDFTdHIEAAAADWJhbGFuY2VCZWZvcmUJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAACdDEDCQAAAAAAAAIFAAAADWJhbGFuY2VCZWZvcmUFAAAADWJhbGFuY2VCZWZvcmUEAAAAAmkxAwkAAAAAAAACBQAAAAhkQXBwVHlwZQIAAAAGc3dvcGZpCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAARkQXBwAgAAAAhleGNoYW5nZQkABEwAAAACAAAAAAAAAAABBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAAAnQwBQAAAAdhbW91bnQwBQAAAANuaWwJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAABGRBcHACAAAABHN3YXAJAARMAAAAAgUAAAAFdDFTdHIJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAJ0MAUAAAAHYW1vdW50MAUAAAADbmlsAwkAAAAAAAACBQAAAAJpMQUAAAACaTEEAAAADGJhbGFuY2VBZnRlcgkBAAAACmdldEJhbGFuY2UAAAABBQAAAAJ0MQMJAAAAAAAAAgUAAAAMYmFsYW5jZUFmdGVyBQAAAAxiYWxhbmNlQWZ0ZXIJAABlAAAAAgUAAAAMYmFsYW5jZUFmdGVyBQAAAA1iYWxhbmNlQmVmb3JlCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCgEAAAAHZG9Sb3V0ZQAAAAIAAAAFYWNjdW0AAAAFcm91dGUEAAAACGFtb3VudEluCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgkABLUAAAACBQAAAAVyb3V0ZQIAAAABLwAAAAAAAAAAAAQAAAAFc3dhcHMJAAS1AAAAAgkAAZEAAAACCQAEtQAAAAIFAAAABXJvdXRlAgAAAAEvAAAAAAAAAAABAgAAAAE7BAAAAAtzd2Fwc1Jlc3VsdAoAAAAAAiRsBQAAAAVzd2FwcwoAAAAAAiRzCQABkAAAAAEFAAAAAiRsCgAAAAAFJGFjYzAFAAAACGFtb3VudEluCgEAAAAFJGYwXzEAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQEAAAAGZG9Td2FwAAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAAFJGYwXzIAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWRzIDMJAQAAAAUkZjBfMgAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAwkAAAAAAAACBQAAAAtzd2Fwc1Jlc3VsdAUAAAALc3dhcHNSZXN1bHQJAABkAAAAAgUAAAAFYWNjdW0FAAAAC3N3YXBzUmVzdWx0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQAAAAGcm91dGVzCQAEtQAAAAIFAAAACXJvdXRlc1N0cgIAAAABfAQAAAAIYW1vdW50SW4JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACCQAEtQAAAAIJAAGRAAAAAgUAAAAGcm91dGVzAAAAAAAAAAAAAgAAAAEvAAAAAAAAAAAABAAAAAhhc3NldDBJZAkAAlkAAAABCQABkQAAAAIJAAS1AAAAAgkAAZEAAAACCQAEtQAAAAIJAAGRAAAAAgkABLUAAAACCQABkQAAAAIFAAAABnJvdXRlcwAAAAAAAAAAAAIAAAABLwAAAAAAAAAAAQIAAAABOwAAAAAAAAAAAAIAAAABLAAAAAAAAAAAAgQAAAAIdG90YWxPdXQKAAAAAAIkbAUAAAAGcm91dGVzCgAAAAACJHMJAAGQAAAAAQUAAAACJGwKAAAAAAUkYWNjMAAAAAAAAAAAAAoBAAAABSRmMF8xAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkBAAAAB2RvUm91dGUAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZHMgNQkBAAAABSRmMF8yAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUDCQAAAAAAAAIFAAAACHRvdGFsT3V0BQAAAAh0b3RhbE91dAQAAAAJZmVlQW1vdW50CQAAawAAAAMFAAAACHRvdGFsT3V0AAAAAAAAAAAdAAAAAAAAACcQBAAAABBjbGVhblRvdGFsQW1vdW50CQAAZQAAAAIFAAAACHRvdGFsT3V0BQAAAAlmZWVBbW91bnQEAAAACWFzc2V0MVN0cgkAAZEAAAACCQAEtQAAAAIFAAAACXJvdXRlc1N0cgIAAAABLAkAAGUAAAACCQABkAAAAAEJAAS1AAAAAgUAAAAJcm91dGVzU3RyAgAAAAEsAAAAAAAAAAABBAAAAAZhc3NldDEJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAAJYXNzZXQxU3RyBAAAAAd1c2RuRmVlAwkAAAAAAAACBQAAAAZhc3NldDEFAAAABnVzZG5JZAUAAAAJZmVlQW1vdW50BAAAABF1c2RuQmFsYW5jZUJlZm9yZQkBAAAACmdldEJhbGFuY2UAAAABBQAAAAZ1c2RuSWQDCQAAAAAAAAIFAAAAEXVzZG5CYWxhbmNlQmVmb3JlBQAAABF1c2RuQmFsYW5jZUJlZm9yZQQAAAAMY29udmVydGVkRmVlCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAADXN0YXRpY19hc3NldF8FAAAACWFzc2V0MVN0cgIAAAALX3B1enpsZVBvb2wCAAAABHN3YXAJAARMAAAAAgUAAAAJdXNkbklkU3RyCQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAGYXNzZXQxBQAAAAlmZWVBbW91bnQFAAAAA25pbAMJAAAAAAAAAgUAAAAMY29udmVydGVkRmVlBQAAAAxjb252ZXJ0ZWRGZWUEAAAAEHVzZG5CYWxhbmNlQWZ0ZXIJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAGdXNkbklkAwkAAAAAAAACBQAAABB1c2RuQmFsYW5jZUFmdGVyBQAAABB1c2RuQmFsYW5jZUFmdGVyCQAAZQAAAAIFAAAAEHVzZG5CYWxhbmNlQWZ0ZXIFAAAAEXVzZG5CYWxhbmNlQmVmb3JlCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAAAAAACBQAAAAd1c2RuRmVlBQAAAAd1c2RuRmVlBAAAAAV0b3BVcAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXwIqtc5QhM72wGFYPKLW5PkF3zr9v8v7XAgAAAAt0b3BVcFJld2FyZAUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAZ1c2RuSWQFAAAAB3VzZG5GZWUFAAAAA25pbAMJAAAAAAAAAgUAAAAFdG9wVXAFAAAABXRvcFVwAwkAAGYAAAACBQAAAAxtaW5Ub1JlY2VpdmUFAAAAEGNsZWFuVG90YWxBbW91bnQJAAACAAAAAQkAASwAAAACAgAAAC1hbW91bnQgdG8gcmVjZWl2ZSBpcyBsb3dlciB0aGFuIGV4cGVjdGVkIG9uZSAJAAGkAAAAAQUAAAAQY2xlYW5Ub3RhbEFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAEGNsZWFuVG90YWxBbW91bnQFAAAABmFzc2V0MQUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAEHN3YXBXaXRoUmVmZXJyYWwAAAADAAAACXJvdXRlc1N0cgAAAAxtaW5Ub1JlY2VpdmUAAAAGcmVmS2V5CgEAAAAGZG9Td2FwAAAAAgAAAAdhbW91bnQwAAAABHN3YXAEAAAABnN3YXBMaQkABLUAAAACBQAAAARzd2FwAgAAAAEsBAAAAAskdDAzMDI5MzExMAkABRYAAAAECQABkQAAAAIFAAAABnN3YXBMaQAAAAAAAAAAAAkAAZEAAAACBQAAAAZzd2FwTGkAAAAAAAAAAAEJAAGRAAAAAgUAAAAGc3dhcExpAAAAAAAAAAACCQABkQAAAAIFAAAABnN3YXBMaQAAAAAAAAAAAwQAAAAEZEFwcAgFAAAACyR0MDMwMjkzMTEwAAAAAl8xBAAAAAhkQXBwVHlwZQgFAAAACyR0MDMwMjkzMTEwAAAAAl8yBAAAAAV0MFN0cggFAAAACyR0MDMwMjkzMTEwAAAAAl8zBAAAAAV0MVN0cggFAAAACyR0MDMwMjkzMTEwAAAAAl80BAAAAAJ0MAkBAAAADWdldEFzc2V0Qnl0ZXMAAAABBQAAAAV0MFN0cgQAAAACdDEJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAAFdDFTdHIEAAAADWJhbGFuY2VCZWZvcmUJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAACdDEDCQAAAAAAAAIFAAAADWJhbGFuY2VCZWZvcmUFAAAADWJhbGFuY2VCZWZvcmUEAAAAAmkxAwkAAAAAAAACBQAAAAhkQXBwVHlwZQIAAAAGc3dvcGZpCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAARkQXBwAgAAAAhleGNoYW5nZQkABEwAAAACAAAAAAAAAAABBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAAAnQwBQAAAAdhbW91bnQwBQAAAANuaWwJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAABGRBcHACAAAABHN3YXAJAARMAAAAAgUAAAAFdDFTdHIJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAJ0MAUAAAAHYW1vdW50MAUAAAADbmlsAwkAAAAAAAACBQAAAAJpMQUAAAACaTEEAAAADGJhbGFuY2VBZnRlcgkBAAAACmdldEJhbGFuY2UAAAABBQAAAAJ0MQMJAAAAAAAAAgUAAAAMYmFsYW5jZUFmdGVyBQAAAAxiYWxhbmNlQWZ0ZXIJAABlAAAAAgUAAAAMYmFsYW5jZUFmdGVyBQAAAA1iYWxhbmNlQmVmb3JlCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCgEAAAAHZG9Sb3V0ZQAAAAIAAAAFYWNjdW0AAAAFcm91dGUEAAAACGFtb3VudEluCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgkABLUAAAACBQAAAAVyb3V0ZQIAAAABLwAAAAAAAAAAAAQAAAAFc3dhcHMJAAS1AAAAAgkAAZEAAAACCQAEtQAAAAIFAAAABXJvdXRlAgAAAAEvAAAAAAAAAAABAgAAAAE7BAAAAAtzd2Fwc1Jlc3VsdAoAAAAAAiRsBQAAAAVzd2FwcwoAAAAAAiRzCQABkAAAAAEFAAAAAiRsCgAAAAAFJGFjYzAFAAAACGFtb3VudEluCgEAAAAFJGYwXzEAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQEAAAAGZG9Td2FwAAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAAFJGYwXzIAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWRzIDMJAQAAAAUkZjBfMgAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAwkAAAAAAAACBQAAAAtzd2Fwc1Jlc3VsdAUAAAALc3dhcHNSZXN1bHQJAABkAAAAAgUAAAAFYWNjdW0FAAAAC3N3YXBzUmVzdWx0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQAAAAGcm91dGVzCQAEtQAAAAIFAAAACXJvdXRlc1N0cgIAAAABfAQAAAAIYW1vdW50SW4JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACCQAEtQAAAAIJAAGRAAAAAgUAAAAGcm91dGVzAAAAAAAAAAAAAgAAAAEvAAAAAAAAAAAABAAAAAhhc3NldDBJZAkAAlkAAAABCQABkQAAAAIJAAS1AAAAAgkAAZEAAAACCQAEtQAAAAIJAAGRAAAAAgkABLUAAAACCQABkQAAAAIFAAAABnJvdXRlcwAAAAAAAAAAAAIAAAABLwAAAAAAAAAAAQIAAAABOwAAAAAAAAAAAAIAAAABLAAAAAAAAAAAAgQAAAAIdG90YWxPdXQKAAAAAAIkbAUAAAAGcm91dGVzCgAAAAACJHMJAAGQAAAAAQUAAAACJGwKAAAAAAUkYWNjMAAAAAAAAAAAAAoBAAAABSRmMF8xAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkBAAAAB2RvUm91dGUAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZHMgNQkBAAAABSRmMF8yAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUDCQAAAAAAAAIFAAAACHRvdGFsT3V0BQAAAAh0b3RhbE91dAQAAAAJZmVlQW1vdW50CQAAawAAAAMFAAAACHRvdGFsT3V0AAAAAAAAAAAdAAAAAAAAACcQBAAAABBjbGVhblRvdGFsQW1vdW50CQAAZQAAAAIFAAAACHRvdGFsT3V0BQAAAAlmZWVBbW91bnQEAAAACWFzc2V0MVN0cgkAAZEAAAACCQAEtQAAAAIFAAAACXJvdXRlc1N0cgIAAAABLAkAAGUAAAACCQABkAAAAAEJAAS1AAAAAgUAAAAJcm91dGVzU3RyAgAAAAEsAAAAAAAAAAABBAAAAAZhc3NldDEJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAAJYXNzZXQxU3RyBAAAAAd1c2RuRmVlAwkAAAAAAAACBQAAAAZhc3NldDEFAAAABnVzZG5JZAUAAAAJZmVlQW1vdW50BAAAABF1c2RuQmFsYW5jZUJlZm9yZQkBAAAACmdldEJhbGFuY2UAAAABBQAAAAZ1c2RuSWQDCQAAAAAAAAIFAAAAEXVzZG5CYWxhbmNlQmVmb3JlBQAAABF1c2RuQmFsYW5jZUJlZm9yZQQAAAAMY29udmVydGVkRmVlCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkAASwAAAACCQABLAAAAAICAAAADXN0YXRpY19hc3NldF8FAAAACWFzc2V0MVN0cgIAAAALX3B1enpsZVBvb2wCAAAABHN3YXAJAARMAAAAAgUAAAAJdXNkbklkU3RyCQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAGYXNzZXQxBQAAAAlmZWVBbW91bnQFAAAAA25pbAMJAAAAAAAAAgUAAAAMY29udmVydGVkRmVlBQAAAAxjb252ZXJ0ZWRGZWUEAAAAEHVzZG5CYWxhbmNlQWZ0ZXIJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAGdXNkbklkAwkAAAAAAAACBQAAABB1c2RuQmFsYW5jZUFmdGVyBQAAABB1c2RuQmFsYW5jZUFmdGVyCQAAZQAAAAIFAAAAEHVzZG5CYWxhbmNlQWZ0ZXIFAAAAEXVzZG5CYWxhbmNlQmVmb3JlCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAAAAAACBQAAAAd1c2RuRmVlBQAAAAd1c2RuRmVlBAAAAA9yZWZlcnJhbEFkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVf1HjRKvLs6QEcCXR3p1T/8+bvzf6Rw2EQEAAAADHJlZlVzZG5TaGFyZQkAAGsAAAADBQAAAAd1c2RuRmVlAAAAAAAAAAACAAAAAAAAAAAKBAAAAAV0b3BVcAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXwIqtc5QhM72wGFYPKLW5PkF3zr9v8v7XAgAAAAt0b3BVcFJld2FyZAUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAZ1c2RuSWQJAABlAAAAAgUAAAAHdXNkbkZlZQUAAAAMcmVmVXNkblNoYXJlBQAAAANuaWwDCQAAAAAAAAIFAAAABXRvcFVwBQAAAAV0b3BVcAMJAABmAAAAAgUAAAAMbWluVG9SZWNlaXZlBQAAABBjbGVhblRvdGFsQW1vdW50CQAAAgAAAAEJAAEsAAAAAgIAAAAtYW1vdW50IHRvIHJlY2VpdmUgaXMgbG93ZXIgdGhhbiBleHBlY3RlZCBvbmUgCQABpAAAAAEFAAAAEGNsZWFuVG90YWxBbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABBjbGVhblRvdGFsQW1vdW50BQAAAAZhc3NldDEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAPcmVmZXJyYWxBZGRyZXNzBQAAAAxyZWZVc2RuU2hhcmUFAAAABnVzZG5JZAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXl97/n5", "height": 2982465, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7j3uLBjGyvcVH2qYNzWxTXub4yMEdzPGfYgpF4Vnxwh Next: E6WBr4y7aiVe36w2RFYA9Hqz5jkz6EEPwNdVKDHEMdT3 Diff:
OldNewDifferences
141141 }
142142
143143
144+
145+@Callable(i)
146+func swapWithReferral (routesStr,minToReceive,refKey) = {
147+ func doSwap (amount0,swap) = {
148+ let swapLi = split(swap, ",")
149+ let $t030293110 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
150+ let dApp = $t030293110._1
151+ let dAppType = $t030293110._2
152+ let t0Str = $t030293110._3
153+ let t1Str = $t030293110._4
154+ let t0 = getAssetBytes(t0Str)
155+ let t1 = getAssetBytes(t1Str)
156+ let balanceBefore = getBalance(t1)
157+ if ((balanceBefore == balanceBefore))
158+ then {
159+ let i1 = if ((dAppType == "swopfi"))
160+ then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
161+ else invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
162+ if ((i1 == i1))
163+ then {
164+ let balanceAfter = getBalance(t1)
165+ if ((balanceAfter == balanceAfter))
166+ then (balanceAfter - balanceBefore)
167+ else throw("Strict value is not equal to itself.")
168+ }
169+ else throw("Strict value is not equal to itself.")
170+ }
171+ else throw("Strict value is not equal to itself.")
172+ }
173+
174+ func doRoute (accum,route) = {
175+ let amountIn = parseIntValue(split(route, "/")[0])
176+ let swaps = split(split(route, "/")[1], ";")
177+ let swapsResult = {
178+ let $l = swaps
179+ let $s = size($l)
180+ let $acc0 = amountIn
181+ func $f0_1 ($a,$i) = if (($i >= $s))
182+ then $a
183+ else doSwap($a, $l[$i])
184+
185+ func $f0_2 ($a,$i) = if (($i >= $s))
186+ then $a
187+ else throw("List size exceeds 3")
188+
189+ $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
190+ }
191+ if ((swapsResult == swapsResult))
192+ then (accum + swapsResult)
193+ else throw("Strict value is not equal to itself.")
194+ }
195+
196+ let routes = split(routesStr, "|")
197+ let amountIn = parseIntValue(split(routes[0], "/")[0])
198+ let asset0Id = fromBase58String(split(split(split(routes[0], "/")[1], ";")[0], ",")[2])
199+ let totalOut = {
200+ let $l = routes
201+ let $s = size($l)
202+ let $acc0 = 0
203+ func $f0_1 ($a,$i) = if (($i >= $s))
204+ then $a
205+ else doRoute($a, $l[$i])
206+
207+ func $f0_2 ($a,$i) = if (($i >= $s))
208+ then $a
209+ else throw("List size exceeds 5")
210+
211+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
212+ }
213+ if ((totalOut == totalOut))
214+ then {
215+ let feeAmount = fraction(totalOut, 29, 10000)
216+ let cleanTotalAmount = (totalOut - feeAmount)
217+ let asset1Str = split(routesStr, ",")[(size(split(routesStr, ",")) - 1)]
218+ let asset1 = getAssetBytes(asset1Str)
219+ let usdnFee = if ((asset1 == usdnId))
220+ then feeAmount
221+ else {
222+ let usdnBalanceBefore = getBalance(usdnId)
223+ if ((usdnBalanceBefore == usdnBalanceBefore))
224+ then {
225+ let convertedFee = invoke(Address(fromBase58String(tryGetString((("static_asset_" + asset1Str) + "_puzzlePool")))), "swap", [usdnIdStr, 0], [AttachedPayment(asset1, feeAmount)])
226+ if ((convertedFee == convertedFee))
227+ then {
228+ let usdnBalanceAfter = getBalance(usdnId)
229+ if ((usdnBalanceAfter == usdnBalanceAfter))
230+ then (usdnBalanceAfter - usdnBalanceBefore)
231+ else throw("Strict value is not equal to itself.")
232+ }
233+ else throw("Strict value is not equal to itself.")
234+ }
235+ else throw("Strict value is not equal to itself.")
236+ }
237+ if ((usdnFee == usdnFee))
238+ then {
239+ let referralAddress = Address(base58'3PQGxTse5eWufds6GA41UnbUNqLcCEnVJL3')
240+ let refUsdnShare = fraction(usdnFee, 2, 10)
241+ let topUp = invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(usdnId, (usdnFee - refUsdnShare))])
242+ if ((topUp == topUp))
243+ then if ((minToReceive > cleanTotalAmount))
244+ then throw(("amount to receive is lower than expected one " + toString(cleanTotalAmount)))
245+ else [ScriptTransfer(i.caller, cleanTotalAmount, asset1), ScriptTransfer(referralAddress, refUsdnShare, usdnId)]
246+ else throw("Strict value is not equal to itself.")
247+ }
248+ else throw("Strict value is not equal to itself.")
249+ }
250+ else throw("Strict value is not equal to itself.")
251+ }
252+
253+
144254 @Verifier(tx)
145255 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
146256
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let usdnIdStr = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
55
66 let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
77
88 func tryGetString (key) = match getString(this, key) {
99 case b: String =>
1010 b
1111 case _ =>
1212 ""
1313 }
1414
1515
1616 func getAssetString (assetId) = match assetId {
1717 case b: ByteVector =>
1818 toBase58String(b)
1919 case _ =>
2020 "WAVES"
2121 }
2222
2323
2424 func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
2525 then unit
2626 else fromBase58String(assetIdStr)
2727
2828
2929 func getBalance (assetId) = match assetId {
3030 case x: Unit =>
3131 wavesBalance(this).available
3232 case _ =>
3333 assetBalance(this, value(assetId))
3434 }
3535
3636
3737 @Callable(i)
3838 func swap (routesStr,minToReceive) = {
3939 func doSwap (amount0,swap) = {
4040 let swapLi = split(swap, ",")
4141 let $t0906987 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
4242 let dApp = $t0906987._1
4343 let dAppType = $t0906987._2
4444 let t0Str = $t0906987._3
4545 let t1Str = $t0906987._4
4646 let t0 = getAssetBytes(t0Str)
4747 let t1 = getAssetBytes(t1Str)
4848 let balanceBefore = getBalance(t1)
4949 if ((balanceBefore == balanceBefore))
5050 then {
5151 let i1 = if ((dAppType == "swopfi"))
5252 then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
5353 else invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
5454 if ((i1 == i1))
5555 then {
5656 let balanceAfter = getBalance(t1)
5757 if ((balanceAfter == balanceAfter))
5858 then (balanceAfter - balanceBefore)
5959 else throw("Strict value is not equal to itself.")
6060 }
6161 else throw("Strict value is not equal to itself.")
6262 }
6363 else throw("Strict value is not equal to itself.")
6464 }
6565
6666 func doRoute (accum,route) = {
6767 let amountIn = parseIntValue(split(route, "/")[0])
6868 let swaps = split(split(route, "/")[1], ";")
6969 let swapsResult = {
7070 let $l = swaps
7171 let $s = size($l)
7272 let $acc0 = amountIn
7373 func $f0_1 ($a,$i) = if (($i >= $s))
7474 then $a
7575 else doSwap($a, $l[$i])
7676
7777 func $f0_2 ($a,$i) = if (($i >= $s))
7878 then $a
7979 else throw("List size exceeds 3")
8080
8181 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
8282 }
8383 if ((swapsResult == swapsResult))
8484 then (accum + swapsResult)
8585 else throw("Strict value is not equal to itself.")
8686 }
8787
8888 let routes = split(routesStr, "|")
8989 let amountIn = parseIntValue(split(routes[0], "/")[0])
9090 let asset0Id = fromBase58String(split(split(split(routes[0], "/")[1], ";")[0], ",")[2])
9191 let totalOut = {
9292 let $l = routes
9393 let $s = size($l)
9494 let $acc0 = 0
9595 func $f0_1 ($a,$i) = if (($i >= $s))
9696 then $a
9797 else doRoute($a, $l[$i])
9898
9999 func $f0_2 ($a,$i) = if (($i >= $s))
100100 then $a
101101 else throw("List size exceeds 5")
102102
103103 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
104104 }
105105 if ((totalOut == totalOut))
106106 then {
107107 let feeAmount = fraction(totalOut, 29, 10000)
108108 let cleanTotalAmount = (totalOut - feeAmount)
109109 let asset1Str = split(routesStr, ",")[(size(split(routesStr, ",")) - 1)]
110110 let asset1 = getAssetBytes(asset1Str)
111111 let usdnFee = if ((asset1 == usdnId))
112112 then feeAmount
113113 else {
114114 let usdnBalanceBefore = getBalance(usdnId)
115115 if ((usdnBalanceBefore == usdnBalanceBefore))
116116 then {
117117 let convertedFee = invoke(Address(fromBase58String(tryGetString((("static_asset_" + asset1Str) + "_puzzlePool")))), "swap", [usdnIdStr, 0], [AttachedPayment(asset1, feeAmount)])
118118 if ((convertedFee == convertedFee))
119119 then {
120120 let usdnBalanceAfter = getBalance(usdnId)
121121 if ((usdnBalanceAfter == usdnBalanceAfter))
122122 then (usdnBalanceAfter - usdnBalanceBefore)
123123 else throw("Strict value is not equal to itself.")
124124 }
125125 else throw("Strict value is not equal to itself.")
126126 }
127127 else throw("Strict value is not equal to itself.")
128128 }
129129 if ((usdnFee == usdnFee))
130130 then {
131131 let topUp = invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(usdnId, usdnFee)])
132132 if ((topUp == topUp))
133133 then if ((minToReceive > cleanTotalAmount))
134134 then throw(("amount to receive is lower than expected one " + toString(cleanTotalAmount)))
135135 else [ScriptTransfer(i.caller, cleanTotalAmount, asset1)]
136136 else throw("Strict value is not equal to itself.")
137137 }
138138 else throw("Strict value is not equal to itself.")
139139 }
140140 else throw("Strict value is not equal to itself.")
141141 }
142142
143143
144+
145+@Callable(i)
146+func swapWithReferral (routesStr,minToReceive,refKey) = {
147+ func doSwap (amount0,swap) = {
148+ let swapLi = split(swap, ",")
149+ let $t030293110 = $Tuple4(swapLi[0], swapLi[1], swapLi[2], swapLi[3])
150+ let dApp = $t030293110._1
151+ let dAppType = $t030293110._2
152+ let t0Str = $t030293110._3
153+ let t1Str = $t030293110._4
154+ let t0 = getAssetBytes(t0Str)
155+ let t1 = getAssetBytes(t1Str)
156+ let balanceBefore = getBalance(t1)
157+ if ((balanceBefore == balanceBefore))
158+ then {
159+ let i1 = if ((dAppType == "swopfi"))
160+ then invoke(Address(fromBase58String(dApp)), "exchange", [1], [AttachedPayment(t0, amount0)])
161+ else invoke(Address(fromBase58String(dApp)), "swap", [t1Str, 0], [AttachedPayment(t0, amount0)])
162+ if ((i1 == i1))
163+ then {
164+ let balanceAfter = getBalance(t1)
165+ if ((balanceAfter == balanceAfter))
166+ then (balanceAfter - balanceBefore)
167+ else throw("Strict value is not equal to itself.")
168+ }
169+ else throw("Strict value is not equal to itself.")
170+ }
171+ else throw("Strict value is not equal to itself.")
172+ }
173+
174+ func doRoute (accum,route) = {
175+ let amountIn = parseIntValue(split(route, "/")[0])
176+ let swaps = split(split(route, "/")[1], ";")
177+ let swapsResult = {
178+ let $l = swaps
179+ let $s = size($l)
180+ let $acc0 = amountIn
181+ func $f0_1 ($a,$i) = if (($i >= $s))
182+ then $a
183+ else doSwap($a, $l[$i])
184+
185+ func $f0_2 ($a,$i) = if (($i >= $s))
186+ then $a
187+ else throw("List size exceeds 3")
188+
189+ $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
190+ }
191+ if ((swapsResult == swapsResult))
192+ then (accum + swapsResult)
193+ else throw("Strict value is not equal to itself.")
194+ }
195+
196+ let routes = split(routesStr, "|")
197+ let amountIn = parseIntValue(split(routes[0], "/")[0])
198+ let asset0Id = fromBase58String(split(split(split(routes[0], "/")[1], ";")[0], ",")[2])
199+ let totalOut = {
200+ let $l = routes
201+ let $s = size($l)
202+ let $acc0 = 0
203+ func $f0_1 ($a,$i) = if (($i >= $s))
204+ then $a
205+ else doRoute($a, $l[$i])
206+
207+ func $f0_2 ($a,$i) = if (($i >= $s))
208+ then $a
209+ else throw("List size exceeds 5")
210+
211+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
212+ }
213+ if ((totalOut == totalOut))
214+ then {
215+ let feeAmount = fraction(totalOut, 29, 10000)
216+ let cleanTotalAmount = (totalOut - feeAmount)
217+ let asset1Str = split(routesStr, ",")[(size(split(routesStr, ",")) - 1)]
218+ let asset1 = getAssetBytes(asset1Str)
219+ let usdnFee = if ((asset1 == usdnId))
220+ then feeAmount
221+ else {
222+ let usdnBalanceBefore = getBalance(usdnId)
223+ if ((usdnBalanceBefore == usdnBalanceBefore))
224+ then {
225+ let convertedFee = invoke(Address(fromBase58String(tryGetString((("static_asset_" + asset1Str) + "_puzzlePool")))), "swap", [usdnIdStr, 0], [AttachedPayment(asset1, feeAmount)])
226+ if ((convertedFee == convertedFee))
227+ then {
228+ let usdnBalanceAfter = getBalance(usdnId)
229+ if ((usdnBalanceAfter == usdnBalanceAfter))
230+ then (usdnBalanceAfter - usdnBalanceBefore)
231+ else throw("Strict value is not equal to itself.")
232+ }
233+ else throw("Strict value is not equal to itself.")
234+ }
235+ else throw("Strict value is not equal to itself.")
236+ }
237+ if ((usdnFee == usdnFee))
238+ then {
239+ let referralAddress = Address(base58'3PQGxTse5eWufds6GA41UnbUNqLcCEnVJL3')
240+ let refUsdnShare = fraction(usdnFee, 2, 10)
241+ let topUp = invoke(Address(base58'3PKUxbZaSYfsR7wu2HaAgiirHYwAMupDrYW'), "topUpReward", nil, [AttachedPayment(usdnId, (usdnFee - refUsdnShare))])
242+ if ((topUp == topUp))
243+ then if ((minToReceive > cleanTotalAmount))
244+ then throw(("amount to receive is lower than expected one " + toString(cleanTotalAmount)))
245+ else [ScriptTransfer(i.caller, cleanTotalAmount, asset1), ScriptTransfer(referralAddress, refUsdnShare, usdnId)]
246+ else throw("Strict value is not equal to itself.")
247+ }
248+ else throw("Strict value is not equal to itself.")
249+ }
250+ else throw("Strict value is not equal to itself.")
251+ }
252+
253+
144254 @Verifier(tx)
145255 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
146256

github/deemru/w8io/786bc32 
36.59 ms