tx · AQVsacWoCM5qvxdASZDzMqS4iGiYd62VxHfiHwcLCDLm

3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw:  -0.02000000 Waves

2022.12.01 10:21 [3406456] smart account 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw > SELF 0.00000000 Waves

{ "type": 13, "id": "AQVsacWoCM5qvxdASZDzMqS4iGiYd62VxHfiHwcLCDLm", "fee": 2000000, "feeAssetId": null, "timestamp": 1669879268440, "version": 2, "chainId": 87, "sender": "3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw", "senderPublicKey": "4MfTwwE7yP4BFGaifQrcc9Nwb5BA9t92WKhVb6Ton65k", "proofs": [ "22ySppRKrcUYcquKsw2pQPPB2TxbcASzidNbxfruiSiLdUVPye8oPopJbhJpYoDhBtjUbdFD8B2Yo1Zpsgiy4ZCx" ], "script": "base64:AAIFAAAAAAAAACoIAhIICgYYGBEBARgSCQoHGBgRERgBGBIFCgMIARgSAwoBGBIFCgMICAEAAAAcAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMQ2FuJ3QgcmVhZCAnBQAAAANrZXkCAAAADScgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAAHYWRkcmVzcwEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYW4ndCByZWFkICcFAAAAA2tleQIAAAANJyBhdCBhZGRyZXNzIAkABCUAAAABBQAAAAdhZGRyZXNzAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQAAAAxtYXliZUFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAAxtYXliZUFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAABpDYW4ndCBwYXJzZSBhZGRyZXNzIGZyb20gJwUAAAAMbWF5YmVBZGRyZXNzAgAAAAEnAQAAABFwYXJzZUludE9yRGVmYXVsdAAAAAIAAAAIbWF5YmVJbnQAAAAHZGVmYXVsdAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABLYAAAABBQAAAAhtYXliZUludAUAAAAHZGVmYXVsdAEAAAAPcGFyc2VJbnRPclRocm93AAAAAQAAAAhtYXliZUludAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEtgAAAAEFAAAACG1heWJlSW50CQABLAAAAAIJAAEsAAAAAgIAAAAaQ2FuJ3QgcGFyc2UgaW50ZWdlciBmcm9tICcFAAAACG1heWJlSW50AgAAAAEnAQAAAApnZXRBc3NldElkAAAAAQAAAAVhc3NldAMJAAAAAAAAAgUAAAAFYXNzZXQCAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAABWFzc2V0AAAAAAljb2xsZWN0b3IJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzAgAAAAljb2xsZWN0b3IAAAAAB2ZlZVJhdGUJAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMCAAAACGZlZS1yYXRlAAAAAAZvcmFjbGUJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzAgAAAAZvcmFjbGUAAAAADXN3b3BmaVJvdXRpbmcJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzAgAAAA5zd29wZmktcm91dGluZwAAAAANcHV6emxlUm91dGluZwkBAAAAE3BhcnNlQWRkcmVzc09yVGhyb3cAAAABCQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIFAAAABHRoaXMCAAAADnB1enpsZS1yb3V0aW5nAAAAAAVwb29scwkABLUAAAACCQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIFAAAABm9yYWNsZQIAAAAFcG9vbHMCAAAAASwAAAAAC3BlcmNlbnRSYXRlCQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzAgAAAAxwZXJjZW50LXJhdGUAAAAABnJlZktleQIAAAAGa2VlcGVyAAAAABRwdXp6bGVSZXdhcmRBc3NldFN0cgkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzAgAAABNwdXp6bGUtcmV3YXJkLXRva2VuAAAAABNwdXp6bGVSZXdhcmRBc3NldElkCQEAAAAKZ2V0QXNzZXRJZAAAAAEFAAAAFHB1enpsZVJld2FyZEFzc2V0U3RyAAAAAAZwUG9vbHMJAAS1AAAAAgkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzAgAAAAdwLXBvb2xzAgAAAAEsAQAAAA9hc3NldElkVG9TdHJpbmcAAAABAAAAB2Fzc2V0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c2V0UmVjZWl2ZWQDCQAAZgAAAAIAAAAAAAAAAAAFAAAAEmVzdEFtb3VudFRvUmVjZWl2ZQkAAAIAAAABAgAAACNlc3RBbW91bnRUb1JlY2VpdmUgbXVzdCBiZSBwb3NpdGl2ZQMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAAVwb29scwUAAAAEcG9vbAQAAAAKcG9vbEFzc2V0QQkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAtwb29sQWRkcmVzcwIAAAAKQV9hc3NldF9pZAQAAAAKcG9vbEFzc2V0QgkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAtwb29sQWRkcmVzcwIAAAAKQl9hc3NldF9pZAQAAAAMcG9vbEFzc2V0SWRBCQEAAAAKZ2V0QXNzZXRJZAAAAAEFAAAACnBvb2xBc3NldEEEAAAADHBvb2xBc3NldElkQgkBAAAACmdldEFzc2V0SWQAAAABBQAAAApwb29sQXNzZXRCBAAAAAskdDA0MDY4NDQxMgMDCQAAAAAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAADHBvb2xBc3NldElkQQkAAAAAAAACBQAAAA9hc3NldFJlY2VpdmVkSWQFAAAADHBvb2xBc3NldElkQgcJAAUUAAAAAgUAAAAMcG9vbEFzc2V0SWRBBQAAAAxwb29sQXNzZXRJZEIDAwkAAAAAAAACBQAAAA9hc3NldFJlY2VpdmVkSWQFAAAADHBvb2xBc3NldElkQQkAAAAAAAACCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAAxwb29sQXNzZXRJZEIHCQAFFAAAAAIFAAAADHBvb2xBc3NldElkQgUAAAAMcG9vbEFzc2V0SWRBCQAAAgAAAAECAAAAF1Vuc3VwcG9ydGVkIGFzc2V0cyBwYWlyBAAAAAdhc3NldEluCAUAAAALJHQwNDA2ODQ0MTIAAAACXzEEAAAACGFzc2V0T3V0CAUAAAALJHQwNDA2ODQ0MTIAAAACXzIEAAAABGFyZ3MDCQAAAAAAAAIFAAAADHZlcnNpb25NYWpvcgAAAAAAAAAAAQkABEwAAAACAAAAAAAAAAABBQAAAANuaWwDCQAAAAAAAAIFAAAADHZlcnNpb25NYWpvcgAAAAAAAAAAAgMJAABnAAAAAgAAAAAAAAAAAAUAAAASZXN0QW1vdW50VG9SZWNlaXZlCQAAAgAAAAECAAAAI2VzdEFtb3VudFRvUmVjZWl2ZSBtdXN0IGJlIHBvc2l0aXZlAwMJAABmAAAAAgAAAAAAAAAAAAUAAAARc2xpcHBhZ2VUb2xlcmFuY2UGCQAAZgAAAAIFAAAAEXNsaXBwYWdlVG9sZXJhbmNlAAAAAAAAAAPoCQAAAgAAAAECAAAARlNsaXBwYWdlIHRvbGVyYW5jZSBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEwMDAEAAAACW1pbkFtb3VudAkAAGUAAAACBQAAABJlc3RBbW91bnRUb1JlY2VpdmUJAABrAAAAAwUAAAASZXN0QW1vdW50VG9SZWNlaXZlBQAAABFzbGlwcGFnZVRvbGVyYW5jZQAAAAAAAAAD6AkABEwAAAACBQAAABJlc3RBbW91bnRUb1JlY2VpdmUJAARMAAAAAgMJAABmAAAAAgUAAAAJbWluQW1vdW50AAAAAAAAAAAABQAAAAltaW5BbW91bnQAAAAAAAAAAAEFAAAAA25pbAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAWVW5rbm93biBwb29sIHZlcnNpb24gJwkAAaQAAAABBQAAAAx2ZXJzaW9uTWFqb3ICAAAAFicsIGJ1dCAxIG9yIDIgZXhwZWN0ZWQEAAAADWJhbGFuY2VCZWZvcmUJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAPYXNzZXRSZWNlaXZlZElkAwkAAAAAAAACBQAAAA1iYWxhbmNlQmVmb3JlBQAAAA1iYWxhbmNlQmVmb3JlBAAAAAZyZXN1bHQJAAP8AAAABAUAAAALcG9vbEFkZHJlc3MCAAAACGV4Y2hhbmdlBQAAAARhcmdzCQAETAAAAAIFAAAAB3BheW1lbnQFAAAAA25pbAMJAAAAAAAAAgUAAAAGcmVzdWx0BQAAAAZyZXN1bHQEAAAACHJlY2VpdmVkCQAAZQAAAAIJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAPYXNzZXRSZWNlaXZlZElkBQAAAA1iYWxhbmNlQmVmb3JlAwkAAAAAAAACBQAAAAhyZWNlaXZlZAUAAAAIcmVjZWl2ZWQDCQAAZwAAAAIAAAAAAAAAAAAFAAAACHJlY2VpdmVkCQAAAgAAAAECAAAAKlJlY2VpdmVkIGFtb3VudCBmcm9tIHBvb2wgbXVzdCBiZSBwb3NpdGl2ZQUAAAAIcmVjZWl2ZWQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAGcFBvb2xzBQAAAARwb29sBAAAAA1iYWxhbmNlQmVmb3JlCQEAAAAKZ2V0QmFsYW5jZQAAAAEFAAAAD2Fzc2V0UmVjZWl2ZWRJZAMJAAAAAAAAAgUAAAANYmFsYW5jZUJlZm9yZQUAAAANYmFsYW5jZUJlZm9yZQQAAAAGcmVzdWx0CQAD/AAAAAQFAAAAC3Bvb2xBZGRyZXNzAgAAAARzd2FwCQAETAAAAAIFAAAADWFzc2V0UmVjZWl2ZWQJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsCQAETAAAAAIFAAAAB3BheW1lbnQFAAAAA25pbAMJAAAAAAAAAgUAAAAGcmVzdWx0BQAAAAZyZXN1bHQEAAAACHJlY2VpdmVkCQAAZQAAAAIJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAPYXNzZXRSZWNlaXZlZElkBQAAAA1iYWxhbmNlQmVmb3JlAwkAAAAAAAACBQAAAAhyZWNlaXZlZAUAAAAIcmVjZWl2ZWQDCQAAZwAAAAIAAAAAAAAAAAAFAAAACHJlY2VpdmVkCQAAAgAAAAECAAAAKlJlY2VpdmVkIGFtb3VudCBmcm9tIHBvb2wgbXVzdCBiZSBwb3NpdGl2ZQUAAAAIcmVjZWl2ZWQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAHVRoZXJlIGlzIG5vIHBvb2wgYXQgYWRkcmVzcyAnBQAAAARwb29sAgAAAAEnAQAAAAh3cmFwU3dhcAAAAAYAAAADaW52AAAACWFkZHJlc3NlcwAAAA9hc3NldHNUb1JlY2VpdmUAAAALZXN0UmVjZWl2ZWQAAAARc2xpcHBhZ2VUb2xlcmFuY2UAAAALbWluUmVjZWl2ZWQEAAAAA3BtdAMJAABmAAAAAgkAAZAAAAABCAUAAAADaW52AAAACHBheW1lbnRzAAAAAAAAAAAACQABkQAAAAIIBQAAAANpbnYAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAAAQUGF5bWVudCByZXF1aXJlZAQAAAAKYXNzZXRGaW5hbAkAAZEAAAACBQAAAA9hc3NldHNUb1JlY2VpdmUJAABlAAAAAgkAAZAAAAABBQAAAA9hc3NldHNUb1JlY2VpdmUAAAAAAAAAAAEEAAAADGFzc2V0RmluYWxJZAkBAAAACmdldEFzc2V0SWQAAAABBQAAAAphc3NldEZpbmFsBAAAAAdpbmRpY2VzCQAETAAAAAIAAAAAAAAAAAAJAARMAAAAAgAAAAAAAAAAAQkABEwAAAACAAAAAAAAAAACCQAETAAAAAIAAAAAAAAAAAMJAARMAAAAAgAAAAAAAAAABAkABEwAAAACAAAAAAAAAAAFCQAETAAAAAIAAAAAAAAAAAYJAARMAAAAAgAAAAAAAAAABwkABEwAAAACAAAAAAAAAAAICQAETAAAAAIAAAAAAAAAAAkFAAAAA25pbAoBAAAACGZvbGRTd2FwAAAAAgAAABBwcmV2aW91c1JlY2VpdmVkAAAABWluZGV4AwkAAGcAAAACBQAAAAVpbmRleAkAAZAAAAABBQAAAAlhZGRyZXNzZXMFAAAAEHByZXZpb3VzUmVjZWl2ZWQEAAAADWFzc2V0UmVjZWl2ZWQJAAGRAAAAAgUAAAAPYXNzZXRzVG9SZWNlaXZlBQAAAAVpbmRleAQAAAAPYXNzZXRSZWNlaXZlZElkCQEAAAAKZ2V0QXNzZXRJZAAAAAEFAAAADWFzc2V0UmVjZWl2ZWQEAAAAByRtYXRjaDAJAQAAAAZkb1N3YXAAAAAFCQABkQAAAAIFAAAACWFkZHJlc3NlcwUAAAAFaW5kZXgFAAAAEHByZXZpb3VzUmVjZWl2ZWQFAAAADWFzc2V0UmVjZWl2ZWQJAAGRAAAAAgUAAAALZXN0UmVjZWl2ZWQFAAAABWluZGV4BQAAABFzbGlwcGFnZVRvbGVyYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAZpbmNvbWUFAAAAByRtYXRjaDAJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAA9hc3NldFJlY2VpdmVkSWQFAAAABmluY29tZQkAAAIAAAABAgAAABhDYW4ndCBoYW5kbGUgc3dhcCByZXN1bHQEAAAABWZpbmFsAwkAAGYAAAACCQABkAAAAAEFAAAACWFkZHJlc3NlcwAAAAAAAAAAAAoAAAAAAiRsBQAAAAdpbmRpY2VzCgAAAAACJHMJAAGQAAAAAQUAAAACJGwKAAAAAAUkYWNjMAUAAAADcG10CgEAAAAFJGYwXzEAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQEAAAAIZm9sZFN3YXAAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAAUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQAAAAUkZjBfMgAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAAAAAAAAAAAEAAAAAAAAAAAFAAAAAAAAAAAGAAAAAAAAAAAHAAAAAAAAAAAIAAAAAAAAAAAJAAAAAAAAAAAKCQAAAgAAAAECAAAAFFBhdGggY2Fubm90IGJlIGVtcHR5BAAAAAskdDA3MDY5NzEyMQkBAAAACWRlZHVjdEZlZQAAAAEIBQAAAAVmaW5hbAAAAAZhbW91bnQEAAAADnJlc3VsdEFmdGVyRmVlCAUAAAALJHQwNzA2OTcxMjEAAAACXzEEAAAAA2ZlZQgFAAAACyR0MDcwNjk3MTIxAAAAAl8yAwkAAGcAAAACAAAAAAAAAAAACAUAAAAFZmluYWwAAAAGYW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAxTd2FwIHJlc3VsdCAJAAGkAAAAAQgFAAAABWZpbmFsAAAABmFtb3VudAIAAAARIG11c3QgYmUgcG9zaXRpdmUDCQAAZgAAAAIFAAAAC21pblJlY2VpdmVkBQAAAA5yZXN1bHRBZnRlckZlZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxTd2FwIHJlc3VsdCAJAAGkAAAAAQUAAAAOcmVzdWx0QWZ0ZXJGZWUCAAAAFyBpcyBsZXNzIHRoZW4gZXhwZWN0ZWQgCQABpAAAAAEFAAAAC21pblJlY2VpdmVkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAANpbnYAAAAGY2FsbGVyBQAAAA5yZXN1bHRBZnRlckZlZQUAAAAMYXNzZXRGaW5hbElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAACWNvbGxlY3RvcgUAAAADZmVlBQAAAAxhc3NldEZpbmFsSWQFAAAAA25pbAEAAAAOd3JhcFN3b3BmaVN3YXAAAAAHAAAAA2ludgAAAApleGNoYW5nZXJzAAAADmV4Y2hhbmdlcnNUeXBlAAAABWFyZ3MxAAAABWFyZ3MyAAAAEXJvdXRpbmdBc3NldHNLZXlzAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQQAAAADcG10AwkAAGYAAAACCQABkAAAAAEIBQAAAANpbnYAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAGRAAAAAggFAAAAA2ludgAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAABBQYXltZW50IHJlcXVpcmVkBAAAAA1sYXN0RXhjaGFuZ2VyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkAAZEAAAACBQAAAApleGNoYW5nZXJzCQAAZQAAAAIJAAGQAAAAAQUAAAAKZXhjaGFuZ2VycwAAAAAAAAAAAQIAAAApQ2FuJ3QgcGFyc2UgbGFzdCBleGNoYW5nZXIgc3dvcGZpIGFkZHJlc3MEAAAADmxhc3RBc3NldElkS2V5CQABLAAAAAIJAAGRAAAAAgkABLUAAAACCQABkQAAAAIFAAAAEXJvdXRpbmdBc3NldHNLZXlzCQAAZQAAAAIJAAGQAAAAAQUAAAARcm91dGluZ0Fzc2V0c0tleXMAAAAAAAAAAAECAAAAAV8AAAAAAAAAAAACAAAACV9hc3NldF9pZAQAAAAKYXNzZXRGaW5hbAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAADWxhc3RFeGNoYW5nZXIFAAAADmxhc3RBc3NldElkS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABZDYW4ndCByZWFkIHBhcmFtZXRlciAnBQAAAA5sYXN0QXNzZXRJZEtleQIAAAAQJyBmb3IgZXhjaGFuZ2VyIAkABCUAAAABBQAAAA1sYXN0RXhjaGFuZ2VyBAAAAAxhc3NldEZpbmFsSWQJAQAAAApnZXRBc3NldElkAAAAAQUAAAAKYXNzZXRGaW5hbAQAAAANYmFsYW5jZUJlZm9yZQkBAAAACmdldEJhbGFuY2UAAAABBQAAAAxhc3NldEZpbmFsSWQDCQAAAAAAAAIFAAAADWJhbGFuY2VCZWZvcmUFAAAADWJhbGFuY2VCZWZvcmUEAAAABnJlc3VsdAkAA/wAAAAEBQAAAA1zd29wZmlSb3V0aW5nAgAAAAxyb3V0aW5nVHJhZGUJAARMAAAAAgUAAAAKZXhjaGFuZ2VycwkABEwAAAACBQAAAA5leGNoYW5nZXJzVHlwZQkABEwAAAACBQAAAAVhcmdzMQkABEwAAAACBQAAAAVhcmdzMgkABEwAAAACBQAAABFyb3V0aW5nQXNzZXRzS2V5cwkABEwAAAACBQAAABJtaW5BbW91bnRUb1JlY2VpdmUFAAAAA25pbAkABEwAAAACBQAAAANwbXQFAAAAA25pbAMJAAAAAAAAAgUAAAAGcmVzdWx0BQAAAAZyZXN1bHQEAAAADGJhbGFuY2VBZnRlcgkBAAAACmdldEJhbGFuY2UAAAABBQAAAAxhc3NldEZpbmFsSWQDCQAAAAAAAAIFAAAADGJhbGFuY2VBZnRlcgUAAAAMYmFsYW5jZUFmdGVyBAAAAAVkZWx0YQkAAGUAAAACBQAAAAxiYWxhbmNlQWZ0ZXIFAAAADWJhbGFuY2VCZWZvcmUEAAAACyR0MDg3NjM4ODA4CQEAAAAJZGVkdWN0RmVlAAAAAQUAAAAFZGVsdGEEAAAADnJlc3VsdEFmdGVyRmVlCAUAAAALJHQwODc2Mzg4MDgAAAACXzEEAAAAA2ZlZQgFAAAACyR0MDg3NjM4ODA4AAAAAl8yAwkAAGcAAAACAAAAAAAAAAAABQAAAAVkZWx0YQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAMU3dhcCByZXN1bHQgCQABpAAAAAEFAAAABWRlbHRhAgAAABEgbXVzdCBiZSBwb3NpdGl2ZQMJAABmAAAAAgUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAAA5yZXN1bHRBZnRlckZlZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxTd2FwIHJlc3VsdCAJAAGkAAAAAQUAAAAOcmVzdWx0QWZ0ZXJGZWUCAAAAFyBpcyBsZXNzIHRoZW4gZXhwZWN0ZWQgCQABpAAAAAEFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAADaW52AAAABmNhbGxlcgUAAAAOcmVzdWx0QWZ0ZXJGZWUFAAAADGFzc2V0RmluYWxJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAljb2xsZWN0b3IFAAAAA2ZlZQUAAAAMYXNzZXRGaW5hbElkBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAAAADndyYXBQdXp6bGVTd2FwAAAAAwAAAANpbnYAAAAJcm91dGVzU3RyAAAADG1pblRvUmVjZWl2ZQQAAAADcG10AwkAAGYAAAACCQABkAAAAAEIBQAAAANpbnYAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAGRAAAAAggFAAAAA2ludgAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAABBQYXltZW50IHJlcXVpcmVkBAAAAAxhc3NldElkRmluYWwJAAGRAAAAAgkABLUAAAACBQAAAAlyb3V0ZXNTdHICAAAAASwJAABlAAAAAgkAAZAAAAABCQAEtQAAAAIFAAAACXJvdXRlc1N0cgIAAAABLAAAAAAAAAAAAQQAAAAHYXNzZXRJZAkBAAAACmdldEFzc2V0SWQAAAABBQAAAAxhc3NldElkRmluYWwEAAAADWJhbGFuY2VCZWZvcmUJAQAAAApnZXRCYWxhbmNlAAAAAQUAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAANYmFsYW5jZUJlZm9yZQUAAAANYmFsYW5jZUJlZm9yZQQAAAAGcmVzdWx0CQAD/AAAAAQFAAAADXB1enpsZVJvdXRpbmcCAAAAEHN3YXBXaXRoUmVmZXJyYWwJAARMAAAAAgUAAAAJcm91dGVzU3RyCQAETAAAAAIFAAAADG1pblRvUmVjZWl2ZQkABEwAAAACBQAAAAZyZWZLZXkFAAAAA25pbAkABEwAAAACBQAAAANwbXQFAAAAA25pbAMJAAAAAAAAAgUAAAAGcmVzdWx0BQAAAAZyZXN1bHQEAAAADGJhbGFuY2VBZnRlcgkBAAAACmdldEJhbGFuY2UAAAABBQAAAAdhc3NldElkAwkAAAAAAAACBQAAAAxiYWxhbmNlQWZ0ZXIFAAAADGJhbGFuY2VBZnRlcgQAAAAKZGVsdGFQcm94eQkAAGUAAAACBQAAAAxiYWxhbmNlQWZ0ZXIFAAAADWJhbGFuY2VCZWZvcmUDCQAAAAAAAAIFAAAACmRlbHRhUHJveHkFAAAACmRlbHRhUHJveHkJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAA2ludgAAAAZjYWxsZXIFAAAACmRlbHRhUHJveHkFAAAAB2Fzc2V0SWQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAAFAAAAA2ludgEAAAAEc3dhcAAAAAYAAAAJYWRkcmVzc2VzAAAAD2Fzc2V0c1RvUmVjZWl2ZQAAAAtlc3RSZWNlaXZlZAAAABFzbGlwcGFnZVRvbGVyYW5jZQAAAAttaW5SZWNlaXZlZAAAAAdvcHRpb25zBAAAAA0kdDAxMDAxNDEwMDY4CQEAAAAOZ2V0U3dhcE9wdGlvbnMAAAABBQAAAAdvcHRpb25zBAAAAAhkZWFkbGluZQgFAAAADSR0MDEwMDE0MTAwNjgAAAACXzEEAAAADHJlZmVycmVyTmFtZQgFAAAADSR0MDEwMDE0MTAwNjgAAAACXzIEAAAAEGlzVmFsaWRUaW1lc3RhbXAJAQAAABZ2YWxpZGF0ZUJsb2NrVGltZXN0YW1wAAAAAQUAAAAIZGVhZGxpbmUDCQAAAAAAAAIFAAAAEGlzVmFsaWRUaW1lc3RhbXAFAAAAEGlzVmFsaWRUaW1lc3RhbXAEAAAABnJlc3VsdAkBAAAACHdyYXBTd2FwAAAABgUAAAADaW52BQAAAAlhZGRyZXNzZXMFAAAAD2Fzc2V0c1RvUmVjZWl2ZQUAAAALZXN0UmVjZWl2ZWQFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBQAAAAttaW5SZWNlaXZlZAMJAAAAAAAAAgUAAAAGcmVzdWx0BQAAAAZyZXN1bHQDCQAAZgAAAAIJAAExAAAAAQUAAAAMcmVmZXJyZXJOYW1lAAAAAAAAAAAABAAAAAphc3NldEZpbmFsCQABkQAAAAIFAAAAD2Fzc2V0c1RvUmVjZWl2ZQkAAGUAAAACCQABkAAAAAEFAAAAD2Fzc2V0c1RvUmVjZWl2ZQAAAAAAAAAAAQQAAAAHYXNzZXRJZAkBAAAACmdldEFzc2V0SWQAAAABBQAAAAphc3NldEZpbmFsBAAAAA0kdDAxMDQwMDEwNDcwCQEAAAAPZ2V0UmVmZXJyZXJEYXRhAAAAAQUAAAAMcmVmZXJyZXJOYW1lBAAAAA9yZWZlcnJlckFkZHJlc3MIBQAAAA0kdDAxMDQwMDEwNDcwAAAAAl8xBAAAAA9yZWZlcnJlclBlcmNlbnQIBQAAAA0kdDAxMDQwMDEwNDcwAAAAAl8yBAAAAAxjb2xsZWN0b3JGZWUICQABkQAAAAIFAAAABnJlc3VsdAAAAAAAAAAAAQAAAAZhbW91bnQEAAAADnJlZmVycmVyUmV3YXJkCQAAawAAAAMFAAAADGNvbGxlY3RvckZlZQUAAAAPcmVmZXJyZXJQZXJjZW50AAAAAAAAAABkCQAETAAAAAIJAAGRAAAAAgUAAAAGcmVzdWx0AAAAAAAAAAAACQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAACWNvbGxlY3RvcgkAAGUAAAACBQAAAAxjb2xsZWN0b3JGZWUFAAAADnJlZmVycmVyUmV3YXJkBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAD3JlZmVycmVyQWRkcmVzcwUAAAAOcmVmZXJyZXJSZXdhcmQFAAAAB2Fzc2V0SWQFAAAAA25pbAUAAAAGcmVzdWx0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAADaW52AQAAAApzd29wZmlTd2FwAAAABwAAAApleGNoYW5nZXJzAAAADmV4Y2hhbmdlcnNUeXBlAAAABWFyZ3MxAAAABWFyZ3MyAAAAEXJvdXRpbmdBc3NldHNLZXlzAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQAAAAdvcHRpb25zBAAAAA0kdDAxMTAyMzExMDc3CQEAAAAOZ2V0U3dhcE9wdGlvbnMAAAABBQAAAAdvcHRpb25zBAAAAAhkZWFkbGluZQgFAAAADSR0MDExMDIzMTEwNzcAAAACXzEEAAAADHJlZmVycmVyTmFtZQgFAAAADSR0MDExMDIzMTEwNzcAAAACXzIEAAAAEGlzVmFsaWRUaW1lc3RhbXAJAQAAABZ2YWxpZGF0ZUJsb2NrVGltZXN0YW1wAAAAAQUAAAAIZGVhZGxpbmUDCQAAAAAAAAIFAAAAEGlzVmFsaWRUaW1lc3RhbXAFAAAAEGlzVmFsaWRUaW1lc3RhbXAEAAAABnJlc3VsdAkBAAAADndyYXBTd29wZmlTd2FwAAAABwUAAAADaW52BQAAAApleGNoYW5nZXJzBQAAAA5leGNoYW5nZXJzVHlwZQUAAAAFYXJnczEFAAAABWFyZ3MyBQAAABFyb3V0aW5nQXNzZXRzS2V5cwUAAAASbWluQW1vdW50VG9SZWNlaXZlAwkAAAAAAAACBQAAAAZyZXN1bHQFAAAABnJlc3VsdAMJAABmAAAAAgkAATEAAAABBQAAAAxyZWZlcnJlck5hbWUAAAAAAAAAAAAEAAAADWxhc3RFeGNoYW5nZXIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABCQABkQAAAAIFAAAACmV4Y2hhbmdlcnMJAABlAAAAAgkAAZAAAAABBQAAAApleGNoYW5nZXJzAAAAAAAAAAABAgAAAClDYW4ndCBwYXJzZSBsYXN0IGV4Y2hhbmdlciBzd29wZmkgYWRkcmVzcwQAAAAObGFzdEFzc2V0SWRLZXkJAAEsAAAAAgkAAZEAAAACCQAEtQAAAAIJAAGRAAAAAgUAAAARcm91dGluZ0Fzc2V0c0tleXMJAABlAAAAAgkAAZAAAAABBQAAABFyb3V0aW5nQXNzZXRzS2V5cwAAAAAAAAAAAQIAAAABXwAAAAAAAAAAAAIAAAAJX2Fzc2V0X2lkBAAAAAphc3NldEZpbmFsCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAANbGFzdEV4Y2hhbmdlcgUAAAAObGFzdEFzc2V0SWRLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAFkNhbid0IHJlYWQgcGFyYW1ldGVyICcFAAAADmxhc3RBc3NldElkS2V5AgAAABAnIGZvciBleGNoYW5nZXIgCQAEJQAAAAEFAAAADWxhc3RFeGNoYW5nZXIEAAAAB2Fzc2V0SWQJAQAAAApnZXRBc3NldElkAAAAAQUAAAAKYXNzZXRGaW5hbAQAAAANJHQwMTE3ODcxMTg1NwkBAAAAD2dldFJlZmVycmVyRGF0YQAAAAEFAAAADHJlZmVycmVyTmFtZQQAAAAPcmVmZXJyZXJBZGRyZXNzCAUAAAANJHQwMTE3ODcxMTg1NwAAAAJfMQQAAAAPcmVmZXJyZXJQZXJjZW50CAUAAAANJHQwMTE3ODcxMTg1NwAAAAJfMgQAAAAMY29sbGVjdG9yRmVlCAkAAZEAAAACBQAAAAZyZXN1bHQAAAAAAAAAAAEAAAAGYW1vdW50BAAAAA5yZWZlcnJlclJld2FyZAkAAGsAAAADBQAAAAxjb2xsZWN0b3JGZWUFAAAAD3JlZmVycmVyUGVyY2VudAAAAAAAAAAAZAkABEwAAAACCQABkQAAAAIFAAAABnJlc3VsdAAAAAAAAAAAAAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAljb2xsZWN0b3IJAABlAAAAAgUAAAAMY29sbGVjdG9yRmVlBQAAAA5yZWZlcnJlclJld2FyZAUAAAAHYXNzZXRJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA9yZWZlcnJlckFkZHJlc3MFAAAADnJlZmVycmVyUmV3YXJkBQAAAAdhc3NldElkBQAAAANuaWwFAAAABnJlc3VsdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAA2ludgEAAAAKcHV6emxlU3dhcAAAAAMAAAAJcm91dGVzU3RyAAAADG1pblRvUmVjZWl2ZQAAAAdvcHRpb25zBAAAAA0kdDAxMjI5MjEyMzQ2CQEAAAAOZ2V0U3dhcE9wdGlvbnMAAAABBQAAAAdvcHRpb25zBAAAAAhkZWFkbGluZQgFAAAADSR0MDEyMjkyMTIzNDYAAAACXzEEAAAADHJlZmVycmVyTmFtZQgFAAAADSR0MDEyMjkyMTIzNDYAAAACXzIEAAAAEGlzVmFsaWRUaW1lc3RhbXAJAQAAABZ2YWxpZGF0ZUJsb2NrVGltZXN0YW1wAAAAAQUAAAAIZGVhZGxpbmUDCQAAAAAAAAIFAAAAEGlzVmFsaWRUaW1lc3RhbXAFAAAAEGlzVmFsaWRUaW1lc3RhbXADCQAAAAAAAAIJAAExAAAAAQUAAAAJcm91dGVzU3RyAAAAAAAAAAAACQAAAgAAAAECAAAAD0ludmFsaWQgcm91dGluZwMJAABnAAAAAgAAAAAAAAAAAAUAAAAMbWluVG9SZWNlaXZlCQAAAgAAAAECAAAAGFN1bSB0byByZWNlaXZlIGlzIHRvIGxvdwQAAAANYmFsYW5jZUJlZm9yZQkBAAAAE2dldEJhbGFuY2VCeUFkZHJlc3MAAAACBQAAAAljb2xsZWN0b3IFAAAAE3B1enpsZVJld2FyZEFzc2V0SWQDCQAAAAAAAAIFAAAADWJhbGFuY2VCZWZvcmUFAAAADWJhbGFuY2VCZWZvcmUEAAAABnJlc3VsdAkBAAAADndyYXBQdXp6bGVTd2FwAAAAAwUAAAADaW52BQAAAAlyb3V0ZXNTdHIFAAAADG1pblRvUmVjZWl2ZQMJAAAAAAAAAgUAAAAGcmVzdWx0BQAAAAZyZXN1bHQDCQAAZgAAAAIJAAExAAAAAQUAAAAMcmVmZXJyZXJOYW1lAAAAAAAAAAAABAAAAAxhc3NldElkRmluYWwJAAGRAAAAAgkABLUAAAACBQAAAAlyb3V0ZXNTdHICAAAAASwJAABlAAAAAgkAAZAAAAABCQAEtQAAAAIFAAAACXJvdXRlc1N0cgIAAAABLAAAAAAAAAAAAQQAAAAHYXNzZXRJZAkBAAAACmdldEFzc2V0SWQAAAABBQAAAAxhc3NldElkRmluYWwEAAAADSR0MDEyOTA3MTI5NzcJAQAAAA9nZXRSZWZlcnJlckRhdGEAAAABBQAAAAxyZWZlcnJlck5hbWUEAAAAD3JlZmVycmVyQWRkcmVzcwgFAAAADSR0MDEyOTA3MTI5NzcAAAACXzEEAAAAD3JlZmVycmVyUGVyY2VudAgFAAAADSR0MDEyOTA3MTI5NzcAAAACXzIEAAAADGJhbGFuY2VBZnRlcgkBAAAAE2dldEJhbGFuY2VCeUFkZHJlc3MAAAACBQAAAAljb2xsZWN0b3IFAAAAE3B1enpsZVJld2FyZEFzc2V0SWQDCQAAAAAAAAIFAAAADGJhbGFuY2VBZnRlcgUAAAAMYmFsYW5jZUFmdGVyBAAAAAVkZWx0YQkAAGUAAAACBQAAAAxiYWxhbmNlQWZ0ZXIFAAAADWJhbGFuY2VCZWZvcmUDCQAAAAAAAAIFAAAABWRlbHRhBQAAAAVkZWx0YQQAAAAGcmV3YXJkCQAAawAAAAMFAAAABWRlbHRhBQAAAA9y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", "height": 3406456, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: JZnKukPtggPTJ7QKxNcGWpKzCN7Cd18XyU1EwXRgwAB Next: 2QD7zp7YZyvD9NAMpsdX4SjrzTRSBrBbXsq6Qs9aXZHg Diff:
OldNewDifferences
165165 let ao = an._1
166166 let ap = an._2
167167 let aq = if ((ah == 1))
168- then $Tuple2("callFunction", ["exchange", [1]])
168+ then [1]
169169 else if ((ah == 2))
170170 then if ((0 >= ae))
171171 then throw("estAmountToReceive must be positive")
175175 then throw("Slippage tolerance must be non-negative and less than or equal to 1000")
176176 else {
177177 let ar = (ae - fraction(ae, af, 1000))
178- $Tuple2("exchange", [ae, if ((ar > 0))
178+[ae, if ((ar > 0))
179179 then ar
180- else 1])
180+ else 1]
181181 }
182182 else throw((("Unknown pool version '" + toString(ah)) + "', but 1 or 2 expected"))
183- let as = aq._1
184- let at = aq._2
185- let au = B(ai)
186- if ((au == au))
183+ let as = B(ai)
184+ if ((as == as))
187185 then {
188- let av = invoke(ag, as, at, [ac])
189- if ((av == av))
186+ let at = invoke(ag, "exchange", aq, [ac])
187+ if ((at == at))
190188 then {
191- let aw = (B(ai) - au)
192- if ((aw == aw))
193- then if ((0 >= aw))
189+ let au = (B(ai) - as)
190+ if ((au == au))
191+ then if ((0 >= au))
194192 then throw("Received amount from pool must be positive")
195- else aw
193+ else au
196194 else throw("Strict value is not equal to itself.")
197195 }
198196 else throw("Strict value is not equal to itself.")
201199 }
202200 else if (containsElement(w, ab))
203201 then {
204- let au = B(ai)
205- if ((au == au))
202+ let as = B(ai)
203+ if ((as == as))
206204 then {
207- let av = invoke(ag, "swap", [ad, 0], [ac])
208- if ((av == av))
205+ let at = invoke(ag, "swap", [ad, 0], [ac])
206+ if ((at == at))
209207 then {
210- let aw = (B(ai) - au)
211- if ((aw == aw))
212- then if ((0 >= aw))
208+ let au = (B(ai) - as)
209+ if ((au == au))
210+ then if ((0 >= au))
213211 then throw("Received amount from pool must be positive")
214- else aw
212+ else au
215213 else throw("Strict value is not equal to itself.")
216214 }
217215 else throw("Strict value is not equal to itself.")
222220 }
223221
224222
225-func ax (ay,az,aA,aB,af,aC) = {
226- let aD = if ((size(ay.payments) > 0))
227- then ay.payments[0]
223+func av (aw,ax,ay,az,af,aA) = {
224+ let aB = if ((size(aw.payments) > 0))
225+ then aw.payments[0]
228226 else throw("Payment required")
229- let aE = aA[(size(aA) - 1)]
230- let aF = k(aE)
227+ let aC = ay[(size(ay) - 1)]
228+ let aD = k(aC)
231229 let P = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
232- func aG (aH,O) = if ((O >= size(az)))
233- then aH
230+ func aE (aF,O) = if ((O >= size(ax)))
231+ then aF
234232 else {
235- let ad = aA[O]
233+ let ad = ay[O]
236234 let ai = k(ad)
237- let z = aa(az[O], aH, ad, aB[O], af)
235+ let z = aa(ax[O], aF, ad, az[O], af)
238236 if ($isInstanceOf(z, "Int"))
239237 then {
240- let aI = z
241- AttachedPayment(ai, aI)
238+ let aG = z
239+ AttachedPayment(ai, aG)
242240 }
243241 else throw("Can't handle swap result")
244242 }
245243
246- let aJ = if ((size(az) > 0))
244+ let aH = if ((size(ax) > 0))
247245 then {
248246 let R = P
249247 let S = size(R)
250- let T = aD
248+ let T = aB
251249 func U (V,W) = if ((W >= S))
252250 then V
253- else aG(V, R[W])
251+ else aE(V, R[W])
254252
255253 func X (V,W) = if ((W >= S))
256254 then V
259257 X(U(U(U(U(U(U(U(U(U(U(T, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
260258 }
261259 else throw("Path cannot be empty")
262- let aK = D(aJ.amount)
263- let aL = aK._1
264- let F = aK._2
265- if ((0 >= aJ.amount))
266- then throw((("Swap result " + toString(aJ.amount)) + " must be positive"))
267- else if ((aC > aL))
268- then throw(((("Swap result " + toString(aL)) + " is less then expected ") + toString(aC)))
269- else [ScriptTransfer(ay.caller, aL, aF), ScriptTransfer(m, F, aF)]
260+ let aI = D(aH.amount)
261+ let aJ = aI._1
262+ let F = aI._2
263+ if ((0 >= aH.amount))
264+ then throw((("Swap result " + toString(aH.amount)) + " must be positive"))
265+ else if ((aA > aJ))
266+ then throw(((("Swap result " + toString(aJ)) + " is less then expected ") + toString(aA)))
267+ else [ScriptTransfer(aw.caller, aJ, aD), ScriptTransfer(m, F, aD)]
270268 }
271269
272270
273-func aM (ay,aN,aO,aP,aQ,aR,aS) = {
274- let aD = if ((size(ay.payments) > 0))
275- then ay.payments[0]
271+func aK (aw,aL,aM,aN,aO,aP,aQ) = {
272+ let aB = if ((size(aw.payments) > 0))
273+ then aw.payments[0]
276274 else throw("Payment required")
277- let aT = valueOrErrorMessage(addressFromString(aN[(size(aN) - 1)]), "Can't parse last exchanger swopfi address")
278- let aU = (split(aR[(size(aR) - 1)], "_")[0] + "_asset_id")
279- let aE = valueOrErrorMessage(getString(aT, aU), ((("Can't read parameter '" + aU) + "' for exchanger ") + toString(aT)))
280- let aF = k(aE)
281- let au = B(aF)
282- if ((au == au))
275+ let aR = valueOrErrorMessage(addressFromString(aL[(size(aL) - 1)]), "Can't parse last exchanger swopfi address")
276+ let aS = (split(aP[(size(aP) - 1)], "_")[0] + "_asset_id")
277+ let aC = valueOrErrorMessage(getString(aR, aS), ((("Can't read parameter '" + aS) + "' for exchanger ") + toString(aR)))
278+ let aD = k(aC)
279+ let as = B(aD)
280+ if ((as == as))
283281 then {
284- let av = invoke(p, "routingTrade", [aN, aO, aP, aQ, aR, aS], [aD])
285- if ((av == av))
282+ let at = invoke(p, "routingTrade", [aL, aM, aN, aO, aP, aQ], [aB])
283+ if ((at == at))
286284 then {
287- let aV = B(aF)
288- if ((aV == aV))
285+ let aT = B(aD)
286+ if ((aT == aT))
289287 then {
290- let aW = (aV - au)
291- let aX = D(aW)
292- let aL = aX._1
293- let F = aX._2
294- if ((0 >= aW))
295- then throw((("Swap result " + toString(aW)) + " must be positive"))
296- else if ((aS > aL))
297- then throw(((("Swap result " + toString(aL)) + " is less then expected ") + toString(aS)))
298- else [ScriptTransfer(ay.caller, aL, aF), ScriptTransfer(m, F, aF)]
288+ let aU = (aT - as)
289+ let aV = D(aU)
290+ let aJ = aV._1
291+ let F = aV._2
292+ if ((0 >= aU))
293+ then throw((("Swap result " + toString(aU)) + " must be positive"))
294+ else if ((aQ > aJ))
295+ then throw(((("Swap result " + toString(aJ)) + " is less then expected ") + toString(aQ)))
296+ else [ScriptTransfer(aw.caller, aJ, aD), ScriptTransfer(m, F, aD)]
299297 }
300298 else throw("Strict value is not equal to itself.")
301299 }
305303 }
306304
307305
308-func aY (ay,aZ,ba) = {
309- let aD = if ((size(ay.payments) > 0))
310- then ay.payments[0]
306+func aW (aw,aX,aY) = {
307+ let aB = if ((size(aw.payments) > 0))
308+ then aw.payments[0]
311309 else throw("Payment required")
312- let bb = split(aZ, ",")[(size(split(aZ, ",")) - 1)]
313- let y = k(bb)
314- let au = B(y)
315- if ((au == au))
310+ let aZ = split(aX, ",")[(size(split(aX, ",")) - 1)]
311+ let y = k(aZ)
312+ let as = B(y)
313+ if ((as == as))
316314 then {
317- let av = invoke(q, "swapWithReferral", [aZ, ba, t], [aD])
318- if ((av == av))
315+ let at = invoke(q, "swapWithReferral", [aX, aY, t], [aB])
316+ if ((at == at))
319317 then {
320- let aV = B(y)
321- if ((aV == aV))
318+ let aT = B(y)
319+ if ((aT == aT))
322320 then {
323- let bc = (aV - au)
324- if ((bc == bc))
325- then [ScriptTransfer(ay.caller, bc, y)]
321+ let ba = (aT - as)
322+ if ((ba == ba))
323+ then [ScriptTransfer(aw.caller, ba, y)]
326324 else throw("Strict value is not equal to itself.")
327325 }
328326 else throw("Strict value is not equal to itself.")
333331 }
334332
335333
336-@Callable(ay)
337-func swap (az,aA,aB,af,aC,L) = {
338- let bd = K(L)
339- let Y = bd._1
340- let H = bd._2
341- let be = Z(Y)
342- if ((be == be))
334+@Callable(aw)
335+func swap (ax,ay,az,af,aA,L) = {
336+ let bb = K(L)
337+ let Y = bb._1
338+ let H = bb._2
339+ let bc = Z(Y)
340+ if ((bc == bc))
343341 then {
344- let av = ax(ay, az, aA, aB, af, aC)
345- if ((av == av))
342+ let at = av(aw, ax, ay, az, af, aA)
343+ if ((at == at))
346344 then if ((size(H) > 0))
347345 then {
348- let aE = aA[(size(aA) - 1)]
349- let y = k(aE)
350- let bf = G(H)
351- let bg = bf._1
352- let bh = bf._2
353- let bi = av[1].amount
354- let bj = fraction(bi, bh, 100)
355-[av[0], ScriptTransfer(m, (bi - bj), y), ScriptTransfer(bg, bj, y)]
346+ let aC = ay[(size(ay) - 1)]
347+ let y = k(aC)
348+ let bd = G(H)
349+ let be = bd._1
350+ let bf = bd._2
351+ let bg = at[1].amount
352+ let bh = fraction(bg, bf, 100)
353+[at[0], ScriptTransfer(m, (bg - bh), y), ScriptTransfer(be, bh, y)]
356354 }
357- else av
355+ else at
358356 else throw("Strict value is not equal to itself.")
359357 }
360358 else throw("Strict value is not equal to itself.")
362360
363361
364362
365-@Callable(ay)
366-func swopfiSwap (aN,aO,aP,aQ,aR,aS,L) = {
367- let bk = K(L)
368- let Y = bk._1
369- let H = bk._2
370- let be = Z(Y)
371- if ((be == be))
363+@Callable(aw)
364+func swopfiSwap (aL,aM,aN,aO,aP,aQ,L) = {
365+ let bi = K(L)
366+ let Y = bi._1
367+ let H = bi._2
368+ let bc = Z(Y)
369+ if ((bc == bc))
372370 then {
373- let av = aM(ay, aN, aO, aP, aQ, aR, aS)
374- if ((av == av))
371+ let at = aK(aw, aL, aM, aN, aO, aP, aQ)
372+ if ((at == at))
375373 then if ((size(H) > 0))
376374 then {
377- let aT = valueOrErrorMessage(addressFromString(aN[(size(aN) - 1)]), "Can't parse last exchanger swopfi address")
378- let aU = (split(aR[(size(aR) - 1)], "_")[0] + "_asset_id")
379- let aE = valueOrErrorMessage(getString(aT, aU), ((("Can't read parameter '" + aU) + "' for exchanger ") + toString(aT)))
380- let y = k(aE)
381- let bl = G(H)
382- let bg = bl._1
383- let bh = bl._2
384- let bi = av[1].amount
385- let bj = fraction(bi, bh, 100)
386-[av[0], ScriptTransfer(m, (bi - bj), y), ScriptTransfer(bg, bj, y)]
375+ let aR = valueOrErrorMessage(addressFromString(aL[(size(aL) - 1)]), "Can't parse last exchanger swopfi address")
376+ let aS = (split(aP[(size(aP) - 1)], "_")[0] + "_asset_id")
377+ let aC = valueOrErrorMessage(getString(aR, aS), ((("Can't read parameter '" + aS) + "' for exchanger ") + toString(aR)))
378+ let y = k(aC)
379+ let bj = G(H)
380+ let be = bj._1
381+ let bf = bj._2
382+ let bg = at[1].amount
383+ let bh = fraction(bg, bf, 100)
384+[at[0], ScriptTransfer(m, (bg - bh), y), ScriptTransfer(be, bh, y)]
387385 }
388- else av
386+ else at
389387 else throw("Strict value is not equal to itself.")
390388 }
391389 else throw("Strict value is not equal to itself.")
393391
394392
395393
396-@Callable(ay)
397-func puzzleSwap (aZ,ba,L) = {
398- let bm = K(L)
399- let Y = bm._1
400- let H = bm._2
401- let be = Z(Y)
402- if ((be == be))
403- then if ((size(aZ) == 0))
394+@Callable(aw)
395+func puzzleSwap (aX,aY,L) = {
396+ let bk = K(L)
397+ let Y = bk._1
398+ let H = bk._2
399+ let bc = Z(Y)
400+ if ((bc == bc))
401+ then if ((size(aX) == 0))
404402 then throw("Invalid routing")
405- else if ((0 >= ba))
403+ else if ((0 >= aY))
406404 then throw("Sum to receive is to low")
407405 else {
408- let au = C(m, v)
409- if ((au == au))
406+ let as = C(m, v)
407+ if ((as == as))
410408 then {
411- let av = aY(ay, aZ, ba)
412- if ((av == av))
409+ let at = aW(aw, aX, aY)
410+ if ((at == at))
413411 then if ((size(H) > 0))
414412 then {
415- let bb = split(aZ, ",")[(size(split(aZ, ",")) - 1)]
416- let y = k(bb)
417- let bn = G(H)
418- let bg = bn._1
419- let bh = bn._2
420- let aV = C(m, v)
421- if ((aV == aV))
413+ let aZ = split(aX, ",")[(size(split(aX, ",")) - 1)]
414+ let y = k(aZ)
415+ let bl = G(H)
416+ let be = bl._1
417+ let bf = bl._2
418+ let aT = C(m, v)
419+ if ((aT == aT))
422420 then {
423- let aW = (aV - au)
424- if ((aW == aW))
421+ let aU = (aT - as)
422+ if ((aU == aU))
425423 then {
426- let bo = fraction(aW, bh, 100)
427- let bp = invoke(m, "claimReferrerReward", [bo, u], nil)
428- if ((bp == bp))
429- then (av :+ ScriptTransfer(bg, bo, v))
424+ let bm = fraction(aU, bf, 100)
425+ let bn = invoke(m, "claimReferrerReward", [bm, u], nil)
426+ if ((bn == bn))
427+ then (at :+ ScriptTransfer(be, bm, v))
430428 else throw("Strict value is not equal to itself.")
431429 }
432430 else throw("Strict value is not equal to itself.")
433431 }
434432 else throw("Strict value is not equal to itself.")
435433 }
436- else av
434+ else at
437435 else throw("Strict value is not equal to itself.")
438436 }
439437 else throw("Strict value is not equal to itself.")
443441
444442
445443
446-@Callable(ay)
447-func addPools (bq) = {
448- func br (r,ab) = if (containsElement(r, ab))
444+@Callable(aw)
445+func addPools (bo) = {
446+ func bp (r,ab) = if (containsElement(r, ab))
449447 then throw((("Pool '" + ab) + "' is already added"))
450448 else (r :+ toString(e(ab)))
451449
452- if (!(containsElement([this, m], ay.caller)))
450+ if (!(containsElement([this, m], aw.caller)))
453451 then throw("only self calls or by collector are allowed")
454452 else [StringEntry("p-pools", makeString({
455- let R = bq
453+ let R = bo
456454 let S = size(R)
457455 let T = w
458456 func U (V,W) = if ((W >= S))
459457 then V
460- else br(V, R[W])
458+ else bp(V, R[W])
461459
462460 func X (V,W) = if ((W >= S))
463461 then V
469467
470468
471469
472-@Callable(ay)
473-func addReferer (H,bs,bt) = {
474- let b = e(bs)
475- if (if ((0 > bt))
470+@Callable(aw)
471+func addReferer (H,bq,br) = {
472+ let b = e(bq)
473+ if (if ((0 > br))
476474 then true
477- else (bt > 100))
475+ else (br > 100))
478476 then throw("Incorrect percent rate")
479477 else if ((size(H) == 0))
480478 then throw("Referrer name invalid")
481- else if (!(containsElement([this, m], ay.caller)))
479+ else if (!(containsElement([this, m], aw.caller)))
482480 then throw("only self calls or by collector are allowed")
483- else [StringEntry((("referrer-" + H) + "-address"), bs), IntegerEntry((("referrer-" + H) + "-percent"), bt)]
481+ else [StringEntry((("referrer-" + H) + "-address"), bq), IntegerEntry((("referrer-" + H) + "-percent"), br)]
484482 }
485483
486484
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = valueOrErrorMessage(getString(b, c), ((("Can't read '" + c) + "' at address ") + toString(b)))
55
66
77 func d (b,c) = valueOrErrorMessage(getInteger(b, c), ((("Can't read '" + c) + "' at address ") + toString(b)))
88
99
1010 func e (f) = valueOrErrorMessage(addressFromString(f), (("Can't parse address from '" + f) + "'"))
1111
1212
1313 func g (h,i) = valueOrElse(parseInt(h), i)
1414
1515
1616 func j (h) = valueOrErrorMessage(parseInt(h), (("Can't parse integer from '" + h) + "'"))
1717
1818
1919 func k (l) = if ((l == "WAVES"))
2020 then unit
2121 else fromBase58String(l)
2222
2323
2424 let m = e(a(this, "collector"))
2525
2626 let n = d(this, "fee-rate")
2727
2828 let o = e(a(this, "oracle"))
2929
3030 let p = e(a(this, "swopfi-routing"))
3131
3232 let q = e(a(this, "puzzle-routing"))
3333
3434 let r = split(a(o, "pools"), ",")
3535
3636 let s = d(this, "percent-rate")
3737
3838 let t = "keeper"
3939
4040 let u = a(this, "puzzle-reward-token")
4141
4242 let v = k(u)
4343
4444 let w = split(a(this, "p-pools"), ",")
4545
4646 func x (y) = {
4747 let z = y
4848 if ($isInstanceOf(z, "ByteVector"))
4949 then {
5050 let l = z
5151 toBase58String(l)
5252 }
5353 else if ($isInstanceOf(z, "Unit"))
5454 then {
5555 let A = z
5656 "WAVES"
5757 }
5858 else throw("Match error")
5959 }
6060
6161
6262 func B (y) = {
6363 let z = y
6464 if ($isInstanceOf(z, "ByteVector"))
6565 then {
6666 let l = z
6767 assetBalance(this, l)
6868 }
6969 else if ($isInstanceOf(z, "Unit"))
7070 then {
7171 let A = z
7272 wavesBalance(this).available
7373 }
7474 else throw("Match error")
7575 }
7676
7777
7878 func C (b,y) = {
7979 let z = y
8080 if ($isInstanceOf(z, "ByteVector"))
8181 then {
8282 let l = z
8383 assetBalance(b, l)
8484 }
8585 else if ($isInstanceOf(z, "Unit"))
8686 then {
8787 let A = z
8888 wavesBalance(b).available
8989 }
9090 else throw("Match error")
9191 }
9292
9393
9494 func D (E) = {
9595 let F = fraction(E, 1, n)
9696 $Tuple2((E - F), F)
9797 }
9898
9999
100100 func G (H) = {
101101 let I = e(valueOrErrorMessage(getString(this, (("referrer-" + H) + "-address")), (("referrer with name " + H) + " not found")))
102102 let J = valueOrElse(getInteger(this, (("referrer-" + H) + "-percent")), s)
103103 if (if ((0 > J))
104104 then true
105105 else (J > 100))
106106 then throw("Incorrect percent rate")
107107 else $Tuple2(I, J)
108108 }
109109
110110
111111 func K (L) = {
112112 func M (N,O) = if ((O >= size(L)))
113113 then (N :+ "")
114114 else (N :+ L[O])
115115
116116 let P = [0, 1]
117117 let Q = {
118118 let R = P
119119 let S = size(R)
120120 let T = nil
121121 func U (V,W) = if ((W >= S))
122122 then V
123123 else M(V, R[W])
124124
125125 func X (V,W) = if ((W >= S))
126126 then V
127127 else throw("List size exceeds 2")
128128
129129 X(U(U(T, 0), 1), 2)
130130 }
131131 let Y = g(Q[0], 0)
132132 let H = Q[1]
133133 $Tuple2(Y, H)
134134 }
135135
136136
137137 func Z (Y) = if (if ((Y > 0))
138138 then (lastBlock.timestamp > Y)
139139 else false)
140140 then throw(((("This swap expired at timestamp " + toString(Y)) + ". Current: ") + toString(lastBlock.timestamp)))
141141 else true
142142
143143
144144 func aa (ab,ac,ad,ae,af) = {
145145 let ag = e(ab)
146146 let ah = j(split(a(ag, "version"), ".")[0])
147147 let ai = k(ad)
148148 if ((0 > ae))
149149 then throw("estAmountToReceive must be positive")
150150 else if (containsElement(r, ab))
151151 then {
152152 let aj = a(ag, "A_asset_id")
153153 let ak = a(ag, "B_asset_id")
154154 let al = k(aj)
155155 let am = k(ak)
156156 let an = if (if ((ac.assetId == al))
157157 then (ai == am)
158158 else false)
159159 then $Tuple2(al, am)
160160 else if (if ((ai == al))
161161 then (ac.assetId == am)
162162 else false)
163163 then $Tuple2(am, al)
164164 else throw("Unsupported assets pair")
165165 let ao = an._1
166166 let ap = an._2
167167 let aq = if ((ah == 1))
168- then $Tuple2("callFunction", ["exchange", [1]])
168+ then [1]
169169 else if ((ah == 2))
170170 then if ((0 >= ae))
171171 then throw("estAmountToReceive must be positive")
172172 else if (if ((0 > af))
173173 then true
174174 else (af > 1000))
175175 then throw("Slippage tolerance must be non-negative and less than or equal to 1000")
176176 else {
177177 let ar = (ae - fraction(ae, af, 1000))
178- $Tuple2("exchange", [ae, if ((ar > 0))
178+[ae, if ((ar > 0))
179179 then ar
180- else 1])
180+ else 1]
181181 }
182182 else throw((("Unknown pool version '" + toString(ah)) + "', but 1 or 2 expected"))
183- let as = aq._1
184- let at = aq._2
185- let au = B(ai)
186- if ((au == au))
183+ let as = B(ai)
184+ if ((as == as))
187185 then {
188- let av = invoke(ag, as, at, [ac])
189- if ((av == av))
186+ let at = invoke(ag, "exchange", aq, [ac])
187+ if ((at == at))
190188 then {
191- let aw = (B(ai) - au)
192- if ((aw == aw))
193- then if ((0 >= aw))
189+ let au = (B(ai) - as)
190+ if ((au == au))
191+ then if ((0 >= au))
194192 then throw("Received amount from pool must be positive")
195- else aw
193+ else au
196194 else throw("Strict value is not equal to itself.")
197195 }
198196 else throw("Strict value is not equal to itself.")
199197 }
200198 else throw("Strict value is not equal to itself.")
201199 }
202200 else if (containsElement(w, ab))
203201 then {
204- let au = B(ai)
205- if ((au == au))
202+ let as = B(ai)
203+ if ((as == as))
206204 then {
207- let av = invoke(ag, "swap", [ad, 0], [ac])
208- if ((av == av))
205+ let at = invoke(ag, "swap", [ad, 0], [ac])
206+ if ((at == at))
209207 then {
210- let aw = (B(ai) - au)
211- if ((aw == aw))
212- then if ((0 >= aw))
208+ let au = (B(ai) - as)
209+ if ((au == au))
210+ then if ((0 >= au))
213211 then throw("Received amount from pool must be positive")
214- else aw
212+ else au
215213 else throw("Strict value is not equal to itself.")
216214 }
217215 else throw("Strict value is not equal to itself.")
218216 }
219217 else throw("Strict value is not equal to itself.")
220218 }
221219 else throw((("There is no pool at address '" + ab) + "'"))
222220 }
223221
224222
225-func ax (ay,az,aA,aB,af,aC) = {
226- let aD = if ((size(ay.payments) > 0))
227- then ay.payments[0]
223+func av (aw,ax,ay,az,af,aA) = {
224+ let aB = if ((size(aw.payments) > 0))
225+ then aw.payments[0]
228226 else throw("Payment required")
229- let aE = aA[(size(aA) - 1)]
230- let aF = k(aE)
227+ let aC = ay[(size(ay) - 1)]
228+ let aD = k(aC)
231229 let P = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
232- func aG (aH,O) = if ((O >= size(az)))
233- then aH
230+ func aE (aF,O) = if ((O >= size(ax)))
231+ then aF
234232 else {
235- let ad = aA[O]
233+ let ad = ay[O]
236234 let ai = k(ad)
237- let z = aa(az[O], aH, ad, aB[O], af)
235+ let z = aa(ax[O], aF, ad, az[O], af)
238236 if ($isInstanceOf(z, "Int"))
239237 then {
240- let aI = z
241- AttachedPayment(ai, aI)
238+ let aG = z
239+ AttachedPayment(ai, aG)
242240 }
243241 else throw("Can't handle swap result")
244242 }
245243
246- let aJ = if ((size(az) > 0))
244+ let aH = if ((size(ax) > 0))
247245 then {
248246 let R = P
249247 let S = size(R)
250- let T = aD
248+ let T = aB
251249 func U (V,W) = if ((W >= S))
252250 then V
253- else aG(V, R[W])
251+ else aE(V, R[W])
254252
255253 func X (V,W) = if ((W >= S))
256254 then V
257255 else throw("List size exceeds 10")
258256
259257 X(U(U(U(U(U(U(U(U(U(U(T, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
260258 }
261259 else throw("Path cannot be empty")
262- let aK = D(aJ.amount)
263- let aL = aK._1
264- let F = aK._2
265- if ((0 >= aJ.amount))
266- then throw((("Swap result " + toString(aJ.amount)) + " must be positive"))
267- else if ((aC > aL))
268- then throw(((("Swap result " + toString(aL)) + " is less then expected ") + toString(aC)))
269- else [ScriptTransfer(ay.caller, aL, aF), ScriptTransfer(m, F, aF)]
260+ let aI = D(aH.amount)
261+ let aJ = aI._1
262+ let F = aI._2
263+ if ((0 >= aH.amount))
264+ then throw((("Swap result " + toString(aH.amount)) + " must be positive"))
265+ else if ((aA > aJ))
266+ then throw(((("Swap result " + toString(aJ)) + " is less then expected ") + toString(aA)))
267+ else [ScriptTransfer(aw.caller, aJ, aD), ScriptTransfer(m, F, aD)]
270268 }
271269
272270
273-func aM (ay,aN,aO,aP,aQ,aR,aS) = {
274- let aD = if ((size(ay.payments) > 0))
275- then ay.payments[0]
271+func aK (aw,aL,aM,aN,aO,aP,aQ) = {
272+ let aB = if ((size(aw.payments) > 0))
273+ then aw.payments[0]
276274 else throw("Payment required")
277- let aT = valueOrErrorMessage(addressFromString(aN[(size(aN) - 1)]), "Can't parse last exchanger swopfi address")
278- let aU = (split(aR[(size(aR) - 1)], "_")[0] + "_asset_id")
279- let aE = valueOrErrorMessage(getString(aT, aU), ((("Can't read parameter '" + aU) + "' for exchanger ") + toString(aT)))
280- let aF = k(aE)
281- let au = B(aF)
282- if ((au == au))
275+ let aR = valueOrErrorMessage(addressFromString(aL[(size(aL) - 1)]), "Can't parse last exchanger swopfi address")
276+ let aS = (split(aP[(size(aP) - 1)], "_")[0] + "_asset_id")
277+ let aC = valueOrErrorMessage(getString(aR, aS), ((("Can't read parameter '" + aS) + "' for exchanger ") + toString(aR)))
278+ let aD = k(aC)
279+ let as = B(aD)
280+ if ((as == as))
283281 then {
284- let av = invoke(p, "routingTrade", [aN, aO, aP, aQ, aR, aS], [aD])
285- if ((av == av))
282+ let at = invoke(p, "routingTrade", [aL, aM, aN, aO, aP, aQ], [aB])
283+ if ((at == at))
286284 then {
287- let aV = B(aF)
288- if ((aV == aV))
285+ let aT = B(aD)
286+ if ((aT == aT))
289287 then {
290- let aW = (aV - au)
291- let aX = D(aW)
292- let aL = aX._1
293- let F = aX._2
294- if ((0 >= aW))
295- then throw((("Swap result " + toString(aW)) + " must be positive"))
296- else if ((aS > aL))
297- then throw(((("Swap result " + toString(aL)) + " is less then expected ") + toString(aS)))
298- else [ScriptTransfer(ay.caller, aL, aF), ScriptTransfer(m, F, aF)]
288+ let aU = (aT - as)
289+ let aV = D(aU)
290+ let aJ = aV._1
291+ let F = aV._2
292+ if ((0 >= aU))
293+ then throw((("Swap result " + toString(aU)) + " must be positive"))
294+ else if ((aQ > aJ))
295+ then throw(((("Swap result " + toString(aJ)) + " is less then expected ") + toString(aQ)))
296+ else [ScriptTransfer(aw.caller, aJ, aD), ScriptTransfer(m, F, aD)]
299297 }
300298 else throw("Strict value is not equal to itself.")
301299 }
302300 else throw("Strict value is not equal to itself.")
303301 }
304302 else throw("Strict value is not equal to itself.")
305303 }
306304
307305
308-func aY (ay,aZ,ba) = {
309- let aD = if ((size(ay.payments) > 0))
310- then ay.payments[0]
306+func aW (aw,aX,aY) = {
307+ let aB = if ((size(aw.payments) > 0))
308+ then aw.payments[0]
311309 else throw("Payment required")
312- let bb = split(aZ, ",")[(size(split(aZ, ",")) - 1)]
313- let y = k(bb)
314- let au = B(y)
315- if ((au == au))
310+ let aZ = split(aX, ",")[(size(split(aX, ",")) - 1)]
311+ let y = k(aZ)
312+ let as = B(y)
313+ if ((as == as))
316314 then {
317- let av = invoke(q, "swapWithReferral", [aZ, ba, t], [aD])
318- if ((av == av))
315+ let at = invoke(q, "swapWithReferral", [aX, aY, t], [aB])
316+ if ((at == at))
319317 then {
320- let aV = B(y)
321- if ((aV == aV))
318+ let aT = B(y)
319+ if ((aT == aT))
322320 then {
323- let bc = (aV - au)
324- if ((bc == bc))
325- then [ScriptTransfer(ay.caller, bc, y)]
321+ let ba = (aT - as)
322+ if ((ba == ba))
323+ then [ScriptTransfer(aw.caller, ba, y)]
326324 else throw("Strict value is not equal to itself.")
327325 }
328326 else throw("Strict value is not equal to itself.")
329327 }
330328 else throw("Strict value is not equal to itself.")
331329 }
332330 else throw("Strict value is not equal to itself.")
333331 }
334332
335333
336-@Callable(ay)
337-func swap (az,aA,aB,af,aC,L) = {
338- let bd = K(L)
339- let Y = bd._1
340- let H = bd._2
341- let be = Z(Y)
342- if ((be == be))
334+@Callable(aw)
335+func swap (ax,ay,az,af,aA,L) = {
336+ let bb = K(L)
337+ let Y = bb._1
338+ let H = bb._2
339+ let bc = Z(Y)
340+ if ((bc == bc))
343341 then {
344- let av = ax(ay, az, aA, aB, af, aC)
345- if ((av == av))
342+ let at = av(aw, ax, ay, az, af, aA)
343+ if ((at == at))
346344 then if ((size(H) > 0))
347345 then {
348- let aE = aA[(size(aA) - 1)]
349- let y = k(aE)
350- let bf = G(H)
351- let bg = bf._1
352- let bh = bf._2
353- let bi = av[1].amount
354- let bj = fraction(bi, bh, 100)
355-[av[0], ScriptTransfer(m, (bi - bj), y), ScriptTransfer(bg, bj, y)]
346+ let aC = ay[(size(ay) - 1)]
347+ let y = k(aC)
348+ let bd = G(H)
349+ let be = bd._1
350+ let bf = bd._2
351+ let bg = at[1].amount
352+ let bh = fraction(bg, bf, 100)
353+[at[0], ScriptTransfer(m, (bg - bh), y), ScriptTransfer(be, bh, y)]
356354 }
357- else av
355+ else at
358356 else throw("Strict value is not equal to itself.")
359357 }
360358 else throw("Strict value is not equal to itself.")
361359 }
362360
363361
364362
365-@Callable(ay)
366-func swopfiSwap (aN,aO,aP,aQ,aR,aS,L) = {
367- let bk = K(L)
368- let Y = bk._1
369- let H = bk._2
370- let be = Z(Y)
371- if ((be == be))
363+@Callable(aw)
364+func swopfiSwap (aL,aM,aN,aO,aP,aQ,L) = {
365+ let bi = K(L)
366+ let Y = bi._1
367+ let H = bi._2
368+ let bc = Z(Y)
369+ if ((bc == bc))
372370 then {
373- let av = aM(ay, aN, aO, aP, aQ, aR, aS)
374- if ((av == av))
371+ let at = aK(aw, aL, aM, aN, aO, aP, aQ)
372+ if ((at == at))
375373 then if ((size(H) > 0))
376374 then {
377- let aT = valueOrErrorMessage(addressFromString(aN[(size(aN) - 1)]), "Can't parse last exchanger swopfi address")
378- let aU = (split(aR[(size(aR) - 1)], "_")[0] + "_asset_id")
379- let aE = valueOrErrorMessage(getString(aT, aU), ((("Can't read parameter '" + aU) + "' for exchanger ") + toString(aT)))
380- let y = k(aE)
381- let bl = G(H)
382- let bg = bl._1
383- let bh = bl._2
384- let bi = av[1].amount
385- let bj = fraction(bi, bh, 100)
386-[av[0], ScriptTransfer(m, (bi - bj), y), ScriptTransfer(bg, bj, y)]
375+ let aR = valueOrErrorMessage(addressFromString(aL[(size(aL) - 1)]), "Can't parse last exchanger swopfi address")
376+ let aS = (split(aP[(size(aP) - 1)], "_")[0] + "_asset_id")
377+ let aC = valueOrErrorMessage(getString(aR, aS), ((("Can't read parameter '" + aS) + "' for exchanger ") + toString(aR)))
378+ let y = k(aC)
379+ let bj = G(H)
380+ let be = bj._1
381+ let bf = bj._2
382+ let bg = at[1].amount
383+ let bh = fraction(bg, bf, 100)
384+[at[0], ScriptTransfer(m, (bg - bh), y), ScriptTransfer(be, bh, y)]
387385 }
388- else av
386+ else at
389387 else throw("Strict value is not equal to itself.")
390388 }
391389 else throw("Strict value is not equal to itself.")
392390 }
393391
394392
395393
396-@Callable(ay)
397-func puzzleSwap (aZ,ba,L) = {
398- let bm = K(L)
399- let Y = bm._1
400- let H = bm._2
401- let be = Z(Y)
402- if ((be == be))
403- then if ((size(aZ) == 0))
394+@Callable(aw)
395+func puzzleSwap (aX,aY,L) = {
396+ let bk = K(L)
397+ let Y = bk._1
398+ let H = bk._2
399+ let bc = Z(Y)
400+ if ((bc == bc))
401+ then if ((size(aX) == 0))
404402 then throw("Invalid routing")
405- else if ((0 >= ba))
403+ else if ((0 >= aY))
406404 then throw("Sum to receive is to low")
407405 else {
408- let au = C(m, v)
409- if ((au == au))
406+ let as = C(m, v)
407+ if ((as == as))
410408 then {
411- let av = aY(ay, aZ, ba)
412- if ((av == av))
409+ let at = aW(aw, aX, aY)
410+ if ((at == at))
413411 then if ((size(H) > 0))
414412 then {
415- let bb = split(aZ, ",")[(size(split(aZ, ",")) - 1)]
416- let y = k(bb)
417- let bn = G(H)
418- let bg = bn._1
419- let bh = bn._2
420- let aV = C(m, v)
421- if ((aV == aV))
413+ let aZ = split(aX, ",")[(size(split(aX, ",")) - 1)]
414+ let y = k(aZ)
415+ let bl = G(H)
416+ let be = bl._1
417+ let bf = bl._2
418+ let aT = C(m, v)
419+ if ((aT == aT))
422420 then {
423- let aW = (aV - au)
424- if ((aW == aW))
421+ let aU = (aT - as)
422+ if ((aU == aU))
425423 then {
426- let bo = fraction(aW, bh, 100)
427- let bp = invoke(m, "claimReferrerReward", [bo, u], nil)
428- if ((bp == bp))
429- then (av :+ ScriptTransfer(bg, bo, v))
424+ let bm = fraction(aU, bf, 100)
425+ let bn = invoke(m, "claimReferrerReward", [bm, u], nil)
426+ if ((bn == bn))
427+ then (at :+ ScriptTransfer(be, bm, v))
430428 else throw("Strict value is not equal to itself.")
431429 }
432430 else throw("Strict value is not equal to itself.")
433431 }
434432 else throw("Strict value is not equal to itself.")
435433 }
436- else av
434+ else at
437435 else throw("Strict value is not equal to itself.")
438436 }
439437 else throw("Strict value is not equal to itself.")
440438 }
441439 else throw("Strict value is not equal to itself.")
442440 }
443441
444442
445443
446-@Callable(ay)
447-func addPools (bq) = {
448- func br (r,ab) = if (containsElement(r, ab))
444+@Callable(aw)
445+func addPools (bo) = {
446+ func bp (r,ab) = if (containsElement(r, ab))
449447 then throw((("Pool '" + ab) + "' is already added"))
450448 else (r :+ toString(e(ab)))
451449
452- if (!(containsElement([this, m], ay.caller)))
450+ if (!(containsElement([this, m], aw.caller)))
453451 then throw("only self calls or by collector are allowed")
454452 else [StringEntry("p-pools", makeString({
455- let R = bq
453+ let R = bo
456454 let S = size(R)
457455 let T = w
458456 func U (V,W) = if ((W >= S))
459457 then V
460- else br(V, R[W])
458+ else bp(V, R[W])
461459
462460 func X (V,W) = if ((W >= S))
463461 then V
464462 else throw("List size exceeds 10")
465463
466464 X(U(U(U(U(U(U(U(U(U(U(T, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
467465 }, ","))]
468466 }
469467
470468
471469
472-@Callable(ay)
473-func addReferer (H,bs,bt) = {
474- let b = e(bs)
475- if (if ((0 > bt))
470+@Callable(aw)
471+func addReferer (H,bq,br) = {
472+ let b = e(bq)
473+ if (if ((0 > br))
476474 then true
477- else (bt > 100))
475+ else (br > 100))
478476 then throw("Incorrect percent rate")
479477 else if ((size(H) == 0))
480478 then throw("Referrer name invalid")
481- else if (!(containsElement([this, m], ay.caller)))
479+ else if (!(containsElement([this, m], aw.caller)))
482480 then throw("only self calls or by collector are allowed")
483- else [StringEntry((("referrer-" + H) + "-address"), bs), IntegerEntry((("referrer-" + H) + "-percent"), bt)]
481+ else [StringEntry((("referrer-" + H) + "-address"), bq), IntegerEntry((("referrer-" + H) + "-percent"), br)]
484482 }
485483
486484

github/deemru/w8io/0e76f2f 
181.31 ms