tx · C24uVMYefwR9q7c1M1kKeH13Pk6eb9KHHMyEdkNAfBtC

3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph:  -0.01400000 Waves

2022.02.19 15:00 [1930487] smart account 3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph > SELF 0.00000000 Waves

{ "type": 13, "id": "C24uVMYefwR9q7c1M1kKeH13Pk6eb9KHHMyEdkNAfBtC", "fee": 1400000, "feeAssetId": null, "timestamp": 1645272045852, "version": 2, "chainId": 84, "sender": "3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph", "senderPublicKey": "G7cNXePvAHUHmZfXa1eHnvFeH6DuykPC5wm9v9djTKgD", "proofs": [ "4hU4296Z2xGgtknhVQfHErbznAU5mqUytgSC2uh6dQJYC5bxssCzr2kQvv94YyfUW5n9LuLyRYXh77dMQs6kHCak", "txxxicVM8cePAvWnKWqB2wroWScJ46YSbeEymmZbKUQjKQQnkMjeU5F3qM8F4TiHcGWeyUK6uoFHRb2mRj8SVEL", "25BcV9wqZwKAynqpAiaMqNyoygFdYzcamRimcnpag359cYdYQTkXUdniUK8GLDsNBoeyeVi3GmTTGLSnZyiAT4LL" ], "script": "base64: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ABBkQXBwU3Rha2VkVG9rZW5zBQAAABR0cmFuc2ZlclRvVXNlckFtb3VudAQAAAAUdHJhbnNmZXJUb1VzZXJBbW91bnQJAABrAAAAAwUAAAAGYW1vdW50BQAAABBkQXBwU3Rha2VkVG9rZW5zBQAAAA9hc3NldElkUXVhbnRpdHkFAAAAFHRyYW5zZmVyVG9Vc2VyQW1vdW50AQAAAA91c2VyV2l0aGRyYXdLZXkAAAADAAAABHBvb2wAAAALdXNlckFkZHJlc3MAAAANdHJhbnNhY3Rpb25JZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8FAAAAC3VzZXJBZGRyZXNzAgAAAAFfBQAAAA10cmFuc2FjdGlvbklkAgAAAAlfd2l0aGRyYXcBAAAAGXVzZXJXaXRoZHJhd0J1cm5Ub2tlbnNLZXkAAAADAAAABHBvb2wAAAALdXNlckFkZHJlc3MAAAANdHJhbnNhY3Rpb25JZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8FAAAAC3VzZXJBZGRyZXNzAgAAAAFfBQAAAA10cmFuc2FjdGlvbklkAgAAABRfd2l0aGRyYXdfYnVybl90b2tlbgEAAAAVZ2V0VXNlclRvdGFsTG9ja2VkS2V5AAAAAgAAAARwb29sAAAAC3VzZXJBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfBQAAAAt1c2VyQWRkcmVzcwUAAAAXc2VydmljZVRva2VuVG90YWxMb2NrZWQBAAAAEmdldFVzZXJUb3RhbExvY2tlZAAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHwAAAAEFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAQAAAAHbm90aGluZwUAAAAHJG1hdGNoMAAAAAAAAAAAAAAAAAkAAAABaQEAAAAIYWRkUG9vbHMAAAAEAAAABXBvb2xzAAAAD2xpcXVpZGl0eVRva2VucwAAAA1zZXJ2aWNlVG9rZW5zAAAAFmxpcXVpZGl0eVRva2VuRGVjaW1hbHMDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkKAQAAABBnZW5lcmF0ZVBvb2xLZXlzAAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wCAAAADl9hc3NldF9iYWxhbmNlAAAAAAAAAAAABQAAAAthY2N1bXVsYXRlZAoBAAAAHmdlbmVyYXRlUG9vbExpcXVpZGl0eVRva2VuS2V5cwAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAQAAAAJcG9vbEluZGV4CQEAAAAFdmFsdWUAAAABCQAETwAAAAIFAAAABXBvb2xzBQAAAARwb29sBAAAAA5saXF1aWRpdHlUb2tlbgkAAZEAAAACBQAAAA9saXF1aWRpdHlUb2tlbnMFAAAACXBvb2xJbmRleAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAEF9saXF1aWRpdHlfdG9rZW4FAAAADmxpcXVpZGl0eVRva2VuBQAAAAthY2N1bXVsYXRlZAoBAAAAHGdlbmVyYXRlUG9vbFNlcnZpY2VUb2tlbktleXMAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAVwb29scwUAAAAEcG9vbAQAAAAObGlxdWlkaXR5VG9rZW4JAAGRAAAAAgUAAAANc2VydmljZVRva2VucwUAAAAJcG9vbEluZGV4CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAIAAAAOX3NlcnZpY2VfdG9rZW4FAAAADmxpcXVpZGl0eVRva2VuBQAAAAthY2N1bXVsYXRlZAoBAAAAJWdlbmVyYXRlUG9vbExpcXVpZGl0eVRva2VuRGVjaW1hbEtleXMAAAACAAAAC2FjY3VtdWxhdGVk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VG9rZW5LZXlzBQAAABRwb29sU2VydmljZVRva2VuS2V5cwUAAAAdcG9vbExpcXVpZGl0eVRva2VuRGVjaW1hbEtleXMFAAAADnBvb2xBY3RpdmVLZXlzCQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgAAAAFpAQAAABhkZWxldGVEZXBvc2l0TG9ja1JlY29yZHMAAAADAAAAB3JlY29yZHMAAAAQbG9ja2VkQW1vdW50S2V5cwAAABJsb2NrZWRBbW91bnRWYWx1ZXMDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkKAQAAABRnZW5lcmF0ZURlbGV0aW5nS2V5cwAAAAIAAAALYWNjdW11bGF0ZWQAAAAGcmVjb3JkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAGcmVjb3JkAgAAAAdfbG9ja2VkBQAAAAthY2N1bXVsYXRlZAoBAAAAEmdlbmVyYXRlTG9ja2VkS2V5cwAAAAIAAAALYWNjdW11bGF0ZWQAAAAJbG9ja2VkS2V5BAAAAA5sb2NrZWRLZXlJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAABBsb2NrZWRBbW91bnRLZXlzBQAAAAlsb2NrZWRLZXkEAAAADGxvY2tlZEFtb3VudAkAAZEAAAACBQAAABJsb2NrZWRBbW91bnRWYWx1ZXMFAAAADmxvY2tlZEtleUluZGV4BAAAAA1jdXJyZW50TG9ja2VkCQEAAAASZ2V0VXNlclRvdGFsTG9ja2VkAAAAAQkAASwAAAACBQAAAAlsb2NrZWRLZXkFAAAAF3NlcnZpY2VUb2tlblRvdGFsTG9ja2VkBAAAAA5uZXdMb2NrZWRWYWx1ZQkAAGUAAAACBQAAAA1jdXJyZW50TG9ja2VkBQAAAAxsb2NrZWRBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAJbG9ja2VkS2V5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YQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkAAAIAAAABAgAAABRMaXN0IHNpemUgZXhjZWVkcyA1MAkBAAAABSRmMV8yAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUA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b29sQWN0aXZlAAAAAQUAAAAEcG9vbAQAAAAVbGlxdWlkaXR5VG9rZW5EZWNpbWFsBAAAAAckbWF0Y2gwCQAD7AAAAAEJAAJZAAAAAQUAAAAVbGlxdWlkdXR5QXNzZXRBZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVBc3NldAQAAAAFYXNzZXQFAAAAByRtYXRjaDAIBQAAAAVhc3NldAAAAAhkZWNpbWFscwkAAAIAAAABAgAAABBDYW4ndCBmaW5kIGFzc2V0AwkBAAAAAiE9AAAAAgUAAAAVbGlxdWlkdXR5QXNzZXRBZGRyZXNzBQAAAA1hc3NldElkU3RyaW5nCQAAAgAAAAECAAAAL1lvdSBhdHRhY2hlZCB3cm9uZyBsaXF1aWRpdHkgdG9rZW4gZnJvbSBTd29wLmZpBAAAABJ1c2VyVG90YWxMb2NrZWRLZXkJAQAAABVnZXRVc2VyVG90YWxMb2NrZWRLZXkAAAACBQAAAARwb29sBQAAAAt1c2VyQWRkcmVzcwQAAAAPdXNlclRvdGFsTG9ja2VkCQEAAAASZ2V0VXNlclRvdGFsTG9ja2VkAAAAAQUAAAASdXNlclRvdGFsTG9ja2VkS2V5BAAAABR1c2VyQW1vdW50V2l0aG91dEZlZQkAAGUAAAACCQAAZQAAAAIFAAAABmFtb3VudAkBAAAACGZyYWN0aW9uAAAABAUAAAAGYW1vdW50AAAAAAAAAAABBQAAAApkZXBvc2l0RmVlBQAAAAZIQUxGVVAJAQAAAAhmcmFjdGlvbgAAAAQFAAAABmFtb3VudAAAAAAAAAAAAQUAAAANY29udHJvbGxlckZlZQUAAAAGSEFMRlVQBAAAABR0cmFuc2ZlclRvVXNlckFtb3VudAkBAAAADnRyYW5zZmVyVG9Vc2VyAAAABAUAAAAUdXNlckFtb3VudFdpdGhvdXRGZWUJAAJZAAAAAQUAAAAQZEFwcEFzc2V0QWRkcmVzcwUAAAAEcG9vbAUAAAALZGVwb3NpdFR5cGUEAAAAA2ZlZQkAAGUAAAACBQAAAAZhbW91bnQFAAAAFHVzZXJBbW91bnRXaXRob3V0RmVlBAAAABJuZXdVc2VyVG90YWxMb2NrZWQJAABkAAAAAgUAAAAPdXNlclRvdGFsTG9ja2VkBQAAABR1c2VyQW1vdW50V2l0aG91dEZlZQQAAAANbG9ja1Rva2Vuc0tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAAV8FAAAAC3VzZXJBZGRyZXNzAgAAAAFfCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQCAAAAB19sb2NrZWQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADCQACWQAAAAEFAAAAEGRBcHBBc3NldEFkZHJlc3MFAAAAFHRyYW5zZmVyVG9Vc2VyQW1vdW50BgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAFHRyYW5zZmVyVG9Vc2VyQW1vdW50CQACWQAAAAEFAAAAEGRBcHBBc3NldEFkZHJlc3MJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARZ292ZXJtYW5jZUFkZHJlc3MFAAAAA2ZlZQkAAlkAAAABBQAAABVsaXF1aWR1dHlBc3NldEFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWxvY2tUb2tlbnNLZXkFAAAAFHVzZXJBbW91bnRXaXRob3V0RmVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJ1c2VyVG90YWxMb2NrZWRLZXkFAAAAEm5ld1VzZXJUb3RhbExvY2tlZAUAAAADbmlsCQAAAgAAAAECAAAAE1Bvb2wgaXMgbm90IGFjdGl2ZSEAAAABaQEAAAAMaW5pdFdpdGhkcmF3AAAAAQAAAARwb29sAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAgkAAAIAAAABAgAAAB1Ud28gYXR0YWNoZWQgcGF5bWVudCBleHBlY3RlZAQAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQEAAAAB2Fzc2V0SWQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAAFXdhdmVzQ29tbWlzc2lvbkFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEAAAAGYW1vdW50AwkBAAAAAiE9AAAAAgUAAAAVd2F2ZXNDb21taXNzaW9uQW1vdW50BQAAABp3YXZlc0NvbW1pc3Npb25Gb3JXaXRoZHJhdwkAAAIAAAABAgAAABpZb3UgYWRkZWQgd3JvbmcgY29tbWlzc2lvbgQAAAANYXNzZXRJZFN0cmluZwQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACaWQFAAAAByRtYXRjaDAJAAJYAAAAAQUAAAACaWQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IEAAAAEWFzc2V0SWRCeXRlVmVjdG9yBAAAAAckbWF0Y2gwBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAJpZAUAAAAHJG1hdGNoMAUAAAACaWQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IDCQAAZwAAAAIAAAAAAAAAAAAFAAAABmFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAKVdpdGhyYXcgYW1vdW50IG11c3QgYmUgcG9zaXRpdmUuIEFjdHVhbDogCQABpAAAAAEFAAAABmFtb3VudAMJAQAAAAxpc1Bvb2xBY3RpdmUAAAABBQAAAARwb29sBAAAAAt1c2VyQWRkcmVzcwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAEnVzZXJUb3RhbExvY2tlZEtleQkBAAAAFWdldFVzZXJUb3RhbExvY2tlZEtleQAAAAIFAAAABHBvb2wFAAAAC3VzZXJBZGRyZXNzBAAAAA91c2VyVG90YWxMb2NrZWQJAQAAABJnZXRVc2VyVG90YWxMb2NrZWQAAAABBQAAABJ1c2VyVG90YWxMb2NrZWRLZXkEAAAAKXVzZXJUb3RhbEJhbGFuY2VXaXRob3V0Q3VycmVudFRyYW5zYWN0aW9uCQAD8AAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARYXNzZXRJZEJ5dGVWZWN0b3IEAAAAEHVzZXJUb3RhbEJhbGFuY2UJAABkAAAAAgUAAAApdXNlclRvdGFsQmFsYW5jZVdpdGhvdXRDdXJyZW50VHJhbnNhY3Rpb24FAAAABmFtb3VudAQAAAASbWF4VHJhbnNhZmVyVG9Vc2VyCQEAAAAOdHJhbnNmZXJUb1VzZXIAAAAEBQAAABB1c2VyVG90YWxCYWxhbmNlCQACWQAAAAEFAAAADWFzc2V0SWRTdHJpbmcFAAAABHBvb2wFAAAADHdpdGhkcmF3VHlwZQQAAAAUdHJhbnNmZXJUb1VzZXJBbW91bnQJAQAAAA50cmFuc2ZlclRvVXNlcgAAAAQFAAAABmFtb3VudAkAAlkAAAABBQAAAA1hc3NldElkU3RyaW5nBQAAAARwb29sBQAAAAx3aXRoZHJhd1R5cGUEAAAAEG5vbkxvY2tlZEJhbGFuY2UJAABlAAAAAgUAAAASbWF4VHJhbnNhZmVyVG9Vc2VyBQAAAA91c2VyVG90YWxMb2NrZWQDCQEAAAABIQAAAAEJAABnAAAAAgUAAAAQbm9uTG9ja2VkQmFsYW5jZQUAAAAUdHJhbnNmZXJUb1VzZXJBbW91bnQJAAACAAAAAQIAAABJWW91IGhhdmUgYSBsb2NrZWQgdG9rZW5zLiBXYWl0IGEgdGltZSBmb3IgdW5sb2NrIG9yIHRyeSB0byB3aXRoZHJyYXcgbGVzcwQAAAANdXNlclJlY29yZEtleQkBAAAAD3VzZXJXaXRoZHJhd0tleQAAAAMFAAAABHBvb2wFAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAAGHVzZXJXaXRoZHJhd0J1cm5Ub2tlbktleQkBAAAAGXVzZXJXaXRoZHJhd0J1cm5Ub2tlbnNLZXkAAAADBQAAAARwb29sBQAAAAt1c2VyQWRkcmVzcwkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA11c2VyUmVjb3JkS2V5BQAAABR0cmFuc2ZlclRvVXNlckFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAYdXNlcldpdGhkcmF3QnVyblRva2VuS2V5BQAAAAZhbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAMYWRtaW5QdWJLZXk0AAAAAAAAB6EgBQAAAAR1bml0BQAAAANuaWwJAAACAAAAAQIAAAATUG9vbCBpcyBub3QgYWN0aXZlIQAAAAFpAQAAAAh3aXRoZHJhdwAAAAMAAAAEcG9vbAAAAAt1c2VyQWRkcmVzcwAAAA10cmFuc2FjdGlvbklkAwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAA11c2VyUmVjb3JkS2V5CQEAAAAPdXNlcldpdGhkcmF3S2V5AAAAAwUAAAAEcG9vbAUAAAALdXNlckFkZHJlc3MFAAAADXRyYW5zYWN0aW9uSWQEAAAAGHVzZXJXaXRoZHJhd0J1cm5Ub2tlbktleQkBAAAAGXVzZXJXaXRoZHJhd0J1cm5Ub2tlbnNLZXkAAAADBQAAAARwb29sBQAAAAt1c2VyQWRkcmVzcwUAAAANdHJhbnNhY3Rpb25JZAQAAAAOc2VuZFVzZXJBbW91bnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAADXVzZXJSZWNvcmRLZXkEAAAAD2J1cm5Ub2tlbkFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAAYdXNlcldpdGhkcmF3QnVyblRva2VuS2V5BAAAABBkQXBwQXNzZXRBZGRyZXNzCQEAAAATZ2V0REFwcEFzc2V0QWRkcmVzcwAAAAEFAAAABHBvb2wEAAAAFWxpcXVpZHV0eUFzc2V0QWRkcmVzcwkBAAAAGGdldExpcXVpZHV0eUFzc2V0QWRkcmVzcwAAAAEFAAAABHBvb2wJAARMAAAAAgkBAAAABEJ1cm4AAAACCQACWQAAAAEFAAAAEGRBcHBBc3NldEFkZHJlc3MFAAAAD2J1cm5Ub2tlbkFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEBAAAACQE8G+KB2EIX4gUAAAAOc2VuZFVzZXJBbW91bnQJAAJZAAAAAQUAAAAVbGlxdWlkdXR5QXNzZXRBZGRyZXNzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAADXVzZXJSZWNvcmRLZXkJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAYdXNlcldpdGhkcmF3QnVyblRva2VuS2V5BQAAAANuaWwJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAAAAAWkBAAAADnBvb2xBY3RpdmF0aW5nAAAAAgAAAAVwb29scwAAAAhzdGF0dXNlcwMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQoBAAAAFmdlbmVyYXRlUG9vbEFjdGl2ZUtleXMAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAVwb29scwUAAAAEcG9vbAQAAAAGc3RhdHVzCQABkQAAAAIFAAAACHN0YXR1c2VzBQAAAAlwb29sSW5kZXgJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAIAAAAHX2FjdGl2ZQUAAAAGc3RhdHVzBQAAAAthY2N1bXVsYXRlZAQAAAAOcG9vbEFjdGl2ZUtleXMKAAAAAAIkbAUAAAAFcG9vbHMKAAAAAAIkcwkAAZAAAAABBQAAAAIkbAoAAAAABSRhY2MwBQAAAANuaWwKAQAAAAUkZjBfMQAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAQAAABZnZW5lcmF0ZVBvb2xBY3RpdmVLZXlzAAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAAFJGYwXzIAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQAAAgAAAAECAAAAFUxpc3Qgc2l6ZSBleGNlZWRzIDEwMAkBAAAABSRmMF8yAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUAAAAAAAAAAAYAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAkAAAAAAAAAAAoAAAAAAAAAAAsAAAAAAAAAAAwAAAAAAAAAAA0AAAAAAAAAAA4AAAAAAAAAAA8AAAAAAAAAABAAAAAAAAAAABEAAAAAAAAAABIAAAAAAAAAABMAAAAAAAAAABQAAAAAAAAAABUAAAAAAAAAABYAAAAAAAAAABcAAAAAAAAAABgAAAAAAAAAABkAAAAAAAAAABoAAAAAAAAAABsAAAAAAAAAABwAAAAAAAAAAB0AAAAAAAAAAB4AAAAAAAAAAB8AAAAAAAAAACAAAAAAAAAAACEAAAAAAAAAACIAAAAAAAAAACMAAAAAAAAAACQAAAAAAAAAACUAAAAAAAAAACYAAAAAAAAAACcAAAAAAAAAACgAAAAAAAAAACkAAAAAAAAAACoAAAAAAAAAACsAAAAAAAAAACwAAAAAAAAAAC0AAAAAAAAAAC4AAAAAAAAAAC8AAAAAAAAAADAAAAAAAAAAADEAAAAAAAAAADIAAAAAAAAAADMAAAAAAAAAADQAAAAAAAAAADUAAAAAAAAAADYAAAAAAAAAADcAAAAAAAAAADgAAAAAAAAAADkAAAAAAAAAADoAAAAAAAAAADsAAAAAAAAAADwAAAAAAAAAAD0AAAAAAAAAAD4AAAAAAAAAAD8AAAAAAAAAAEAAAAAAAAAAAEEAAAAAAAAAAEIAAAAAAAAAAEMAAAAAAAAAAEQAAAAAAAAAAEUAAAAAAAAAAEYAAAAAAAAAAEcAAAAAAAAAAEgAAAAAAAAAAEkAAAAAAAAAAEoAAAAAAAAAAEsAAAAAAAAAAEwAAAAAAAAAAE0AAAAAAAAAAE4AAAAAAAAAAE8AAAAAAAAAAFAAAAAAAAAAAFEAAAAAAAAAAFIAAAAAAAAAAFMAAAAAAAAAAFQAAAAAAAAAAFUAAAAAAAAAAFYAAAAAAAAAAFcAAAAAAAAAAFgAAAAAAAAAAFkAAAAAAAAAAFoAAAAAAAAAAFsAAAAAAAAAAFwAAAAAAAAAAF0AAAAAAAAAAF4AAAAAAAAAAF8AAAAAAAAAAGAAAAAAAAAAAGEAAAAAAAAAAGIAAAAAAAAAAGMAAAAAAAAAAGQFAAAADnBvb2xBY3RpdmVLZXlzCQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgAAAAFpAQAAAA9kZWxldGVVbnNlZERhdGEAAAAAAwkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAECAAAAezNQS3kybVpxbnZUMkV0cHdEaW05TWdzNll2Q1JlNHM4NW5YXzNQNXVadUdqUlg3a2RyQ2J2bTNpc1dOdlNpSFF6cHZXR1BIXzJpVVZLQ3k0elV2Z0JnZzdBY2N5cUtmQkNZaHBvVkVWN0VDbTlOWExaQlA0X2xvY2tlZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABAgAAAHszUEt5Mm1acW52VDJFdHB3RGltOU1nczZZdkNSZTRzODVuWF8zUDV1WnVHalJYN2tkckNidm0zaXNXTnZTaUhRenB2V0dQSF80blhHVE05WmIzb0gyZm1ab3ozUzRtb1c5THIyWVhhd0Q3OEJTRXZDSENhTl9sb2NrZWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQIAAAB7M1BLeTJtWnFudlQyRXRwd0RpbTlNZ3M2WXZDUmU0czg1blhfM1A1dVp1R2pSWDdrZHJDYnZtM2lzV052U2lIUXpwdldHUEhfQXQzV0dLQ2lDRG45S2I3OFBLOXRKOUVTdGJjd0dTRkxDUFhCdkZ2b0dib29fbG9ja2VkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAECAAAAezNQS3kybVpxbnZUMkV0cHdEaW05TWdzNll2Q1JlNHM4NW5YXzNQNXVadUdqUlg3a2RyQ2J2bTNpc1dOdlNpSFF6cHZXR1BIX0NiMW1UTEpBWm1FV2lyQTVGRThVVzdlV2tyTVdHZ2pUR1JkSEEyZjlkMjdVX2xvY2tlZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABAgAAAHszUEt5Mm1acW52VDJFdHB3RGltOU1nczZZdkNSZTRzODVuWF8zUDV1WnVHalJYN2tkckNidm0zaXNXTnZTaUhRenB2V0dQSF9GZURzanRaTHA3NHU2RzZDcHRvaXBkUnRReHp3ak0xV1J1ZllKVXczNHRjRl9sb2NrZWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQIAAAB7M1BLeTJtWnFudlQyRXRwd0RpbTlNZ3M2WXZDUmU0czg1blhfM1A1dVp1R2pSWDdrZHJDYnZtM2lzV052U2lIUXpwdldHUEhfSEFyZnVRQlpNeW54emRlQmc0d3FzTTcyeXNwUUJoSHE3RGlEcUV1YWtKM2pfbG9ja2VkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAECAAAAYDNQS3kybVpxbnZUMkV0cHdEaW05TWdzNll2Q1JlNHM4NW5YXzNQNXVadUdqUlg3a2RyQ2J2bTNpc1dOdlNpSFF6cHZXR1BIX1NXT1BfbGFzdF9jbGFpbWVkX2Ftb3VudAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABAgAAAFUzUEt5Mm1acW52VDJFdHB3RGltOU1nczZZdkNSZTRzODVuWF8zUDV1WnVHalJYN2tkckNidm0zaXNXTnZTaUhRenB2V0dQSF9hc3NldF9iYWxhbmNlCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAECAAAAVjNQS3kybVpxbnZUMkV0cHdEaW05TWdzNll2Q1JlNHM4NW5YXzNQNXVadUdqUlg3a2RyQ2J2bTNpc1dOdlNpSFF6cHZXR1BIX2F2YWlsYWJsZV9TV09QCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAECAAAAVjNQS3kybVpxbnZUMkV0cHdEaW05TWdzNll2Q1JlNHM4NW5YXzNQNXVadUdqUlg3a2RyQ2J2bTNpc1dOdlNpSFF6cHZXR1BIX2N1cnJlbnRfcmV3YXJkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAECAAAAVTNQS3kybVpxbnZUMkV0cHdEaW05TWdzNll2Q1JlNHM4NW5YXzNQNXVadUdqUlg3a2RyQ2J2bTNpc1dOdlNpSFF6cHZXR1BIX2xhc3RfaW50ZXJlc3QJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQIAAABWM1BLeTJtWnFudlQyRXRwd0RpbTlNZ3M2WXZDUmU0czg1blhfM1BEakpQZTFQeHF3akpLYTd1U2tYMzY3Q0ZCdFZBVnlwV1dfY3VycmVudF9yZXdhcmQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQIAAABVM1BLeTJtWnFudlQyRXRwd0RpbTlNZ3M2WXZDUmU0czg1blhfM1BEakpQZTFQeHF3akpLYTd1U2tYMzY3Q0ZCdFZBVnlwV1dfYXNzZXRfYmFsYW5jZQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABAgAAAFYzUEt5Mm1acW52VDJFdHB3RGltOU1nczZZdkNSZTRzODVuWF8zUERqSlBlMVB4cXdqSkthN3VTa1gzNjdDRkJ0VkFWeXBXV19jdXJyZW50X3Jld2FyZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABAgAAADEzUEt5Mm1acW52VDJFdHB3RGltOU1nczZZdkNSZTRzODVuWF9sYXN0X2ludGVyZXN0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAECAAAAODNQS3kybVpxbnZUMkV0cHdEaW05TWdzNll2Q1JlNHM4NW5YX2xhc3RfaW50ZXJlc3RfaGVpZ2h0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAECAAAAhEVoaWU1eFlwZU44b3AxQ2N0YzZhR1VycXg4anEzanRmMURTalhEYmZtN2FUXzNQNXVadUdqUlg3a2RyQ2J2bTNpc1dOdlNpSFF6cHZXR1BIX0F2Z2pmN0N3UGhuYkFaWEc4ZURtQ3NWYTgzMzlWZlJBTFJKZ3NTYkp0c2tjX2xvY2tlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAABiM1BOVkZXb3B3Q0Q5Q2dHWGtwWVdFWTk0b1E1WENBRVhCbVFfM1BEakpQZTFQeHF3akpLYTd1U2tYMzY3Q0ZCdFZBVnlwV1dfc2VydmljZV90b2tlbl90b3RhbF9sb2NrZWQAAAAAAAAAAAAJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQIAAABeRWhpZTV4WXBlTjhvcDFDY3RjNmFHVXJxeDhqcTNqdGYxRFNqWERiZm03YVRfM1A1dVp1R2pSWDdrZHJDYnZtM2lzV052U2lIUXpwdldHUEhfYXNzZXRfYmFsYW5jZQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABAgAAAIRFaGllNXhZcGVOOG9wMUNjdGM2YUdVcnF4OGpxM2p0ZjFEU2pYRGJmbTdhVF8zUERqSlBlMVB4cXdqSkthN3VTa1gzNjdDRkJ0VkFWeXBXV19HOEF4ZGJTUHZLd3N4dndFRlZGeEUxd0FXMkNyR3NBUXd5NWRpeWlTSlFjMV9sb2NrZWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQIAAABeRWhpZTV4WXBlTjhvcDFDY3RjNmFHVXJxeDhqcTNqdGYxRFNqWERiZm03YVRfM1BEakpQZTFQeHF3akpLYTd1U2tYMzY3Q0ZCdFZBVnlwV1dfYXNzZXRfYmFsYW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAABrRWhpZTV4WXBlTjhvcDFDY3RjNmFHVXJxeDhqcTNqdGYxRFNqWERiZm03YVRfM1BEakpQZTFQeHF3akpLYTd1U2tYMzY3Q0ZCdFZBVnlwV1dfc2VydmljZV90b2tlbl90b3RhbF9sb2NrZWQAAAAAAAAAAAAFAAAAA25pbAkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24EAAAAA2ludgUAAAAHJG1hdGNoMAQAAAAPbG9ja1NoYXJlVG9rZW5zAwkAAAAAAAACCAUAAAADaW52AAAABGRBcHAFAAAADmZhcm1pbmdBZGRyZXNzAwMJAAAAAAAAAggFAAAAA2ludgAAAAhmdW5jdGlvbgIAAAAPbG9ja1NoYXJlVG9rZW5zBgkAAAAAAAACCAUAAAADaW52AAAACGZ1bmN0aW9uAgAAAAVjbGFpbQYJAAAAAAAAAggFAAAAA2ludgAAAAhmdW5jdGlvbgIAAAATd2l0aGRyYXdTaGFyZVRva2VucwcEAAAABHN3b3ADCQAAAAAAAAIIBQAAAANpbnYAAAAEZEFwcAUAAAAXc3dvcEZpR292ZXJtYW5jZUFkZHJlc3MDAwkAAAAAAAACCAUAAAADaW52AAAACGZ1bmN0aW9uAgAAAAhsb2NrU1dPUAYJAAAAAAAAAggFAAAAA2ludgAAAAhmdW5jdGlvbgIAAAAMd2l0aGRyYXdTV09QBgkAAAAAAAACCAUAAAADaW52AAAACGZ1bmN0aW9uAgAAABFjbGFpbUFuZFN0YWtlU1dPUAcEAAAAC2RBcHBBZGRyZXNzBAAAAAckbWF0Y2gxCAUAAAADaW52AAAABGRBcHADCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAB0FkZHJlc3MEAAAABGRBcHAFAAAAByRtYXRjaDEJAAQlAAAAAQUAAAAEZEFwcAkAAAIAAAABAgAAACJUcmFuc2FjdGlvbiBtdXN0IGhhdmUgb25seSBhZGRyZXNzBAAAAA1wb29sRnVuY3Rpb25zAwkBAAAADGlzUG9vbEFjdGl2ZQAAAAEFAAAAC2RBcHBBZGRyZXNzCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAPc3dvcEZpRnVuY3Rpb25zCAUAAAADaW52AAAACGZ1bmN0aW9uBwQAAAANc2lnbmVkQnlBZG1pbgMDAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAADGFkbWluUHViS2V5MQYJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAxhZG1pblB1YktleTIGCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAMYWRtaW5QdWJLZXk0BgkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkDAwMFAAAAD2xvY2tTaGFyZVRva2VucwYFAAAADXBvb2xGdW5jdGlvbnMGBQAAAARzd29wBQAAAA1zaWduZWRCeUFkbWluBwQAAAAKYWRtMVNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAxhZG1pblB1YktleTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAACmFkbTJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAMYWRtaW5QdWJLZXkyAAAAAAAAAAABAAAAAAAAAAAABAAAAAphZG0zU2lnbmVkAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAADGFkbWluUHViS2V5MwAAAAAAAAAAAQAAAAAAAAAAAAkAAGcAAAACCQAAZAAAAAIJAABkAAAAAgUAAAAKYWRtMVNpZ25lZAUAAAAKYWRtMlNpZ25lZAUAAAAKYWRtM1NpZ25lZAAAAAAAAAAAAsLdBgc=", "height": 1930487, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9KVeFANAXYa27dKUgiifNrrxGQTusU9TwQuXeh6C3uUU Next: 7y1p2vnMQqd39nr8JYm3FWwCC8zoR2T5KbnBeTRXT6K4 Diff:
OldNewDifferences
1313
1414 let f = base58'ALsqwPqiUP3bVbM7grozc1Y5oHVBAGKqACRJ5J8RXceC'
1515
16-let g = base58'ALsqwPqiUP3bVbM7grozc1Y5oHVBAGKqACRJ5J8RXceC'
16+let g = base58'68Po1k24uP6goKr7RDmXPg4QkMiKuyTMEirao14rif8s'
1717
18-let h = Address(base58'3N7ExjwfofPYTvNBv2zqtAtLcMxqjTxS7iL')
18+let h = Address(base58'3PKoJ7GHwmidFPX6NiqKZdq8Zj2auPMNPnE')
1919
2020 let i = Address(base58'3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS')
2121
22-let j = Address(base58'3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL')
22+let j = Address(base58'3P73HDkPqG15nLXevjCbmXtazHYTZbpPoPw')
2323
2424 let k = "SWOP_id"
2525
3333
3434 let p = "_service_token_total_locked"
3535
36-let q = ["3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX", "3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W"]
36+let q = ["replenishWithTwoTokens", "exchange", "replenishWithOneToken"]
3737
38-let r = ["replenishWithTwoTokens", "exchange"]
39-
40-func s (t) = {
41- let u = (t + "_active")
42- let v = {
43- let w = getBoolean(this, u)
44- if ($isInstanceOf(w, "Boolean"))
38+func r (s) = {
39+ let t = (s + "_active")
40+ let u = {
41+ let v = getBoolean(this, t)
42+ if ($isInstanceOf(v, "Boolean"))
4543 then {
46- let x = w
47- x
44+ let w = v
45+ w
4846 }
4947 else throw("Pool is not active!")
5048 }
51- v
49+ u
5250 }
5351
5452
55-func y (t) = {
56- let w = getString((t + "_service_token"))
57- if ($isInstanceOf(w, "String"))
53+func x (s) = {
54+ let v = getString((s + "_service_token"))
55+ if ($isInstanceOf(v, "String"))
5856 then {
59- let z = w
60- z
57+ let y = v
58+ y
6159 }
6260 else {
63- let A = w
61+ let z = v
6462 throw("You try to deposit on unsupported pool")
6563 }
6664 }
6765
6866
69-func B (t) = {
70- let w = getString((t + "_liquidity_token"))
71- if ($isInstanceOf(w, "String"))
67+func A (s) = {
68+ let v = getString((s + "_liquidity_token"))
69+ if ($isInstanceOf(v, "String"))
7270 then {
73- let z = w
74- z
71+ let y = v
72+ y
7573 }
7674 else {
77- let A = w
75+ let z = v
7876 throw("You try to withdraw from unsupported pool")
7977 }
8078 }
8179
8280
83-func C (D) = if ((D == toBase58String(l)))
81+func B (C) = if ((C == toBase58String(l)))
8482 then {
85- let w = getInteger(i, (toString(this) + "_SWOP_amount"))
86- if ($isInstanceOf(w, "Int"))
83+ let v = getInteger(i, (toString(this) + "_SWOP_amount"))
84+ if ($isInstanceOf(v, "Int"))
8785 then {
88- let E = w
89- E
86+ let D = v
87+ D
9088 }
91- else if ($isInstanceOf(w, "Unit"))
89+ else if ($isInstanceOf(v, "Unit"))
9290 then {
93- let A = w
91+ let z = v
9492 0
9593 }
9694 else throw("Match error")
9795 }
9896 else {
99- let w = getInteger(j, (((D + "_") + toString(this)) + "_share_tokens_locked"))
100- if ($isInstanceOf(w, "Int"))
97+ let v = getInteger(j, (((C + "_") + toString(this)) + "_share_tokens_locked"))
98+ if ($isInstanceOf(v, "Int"))
10199 then {
102- let E = w
103- E
100+ let D = v
101+ D
104102 }
105- else if ($isInstanceOf(w, "Unit"))
103+ else if ($isInstanceOf(v, "Unit"))
106104 then {
107- let A = w
105+ let z = v
108106 0
109107 }
110108 else throw("Match error")
111109 }
112110
113111
114-func F (G,H,D,I) = {
115- let J = C(D)
116- let K = {
117- let w = assetInfo(H)
118- if ($isInstanceOf(w, "Asset"))
112+func E (F,G,C,H) = {
113+ let I = B(C)
114+ let J = {
115+ let v = assetInfo(G)
116+ if ($isInstanceOf(v, "Asset"))
119117 then {
120- let L = w
121- L.quantity
118+ let K = v
119+ K.quantity
122120 }
123121 else throw("Can't find asset")
124122 }
125- if ((J == 0))
126- then G
127- else if ((I == n))
123+ if ((I == 0))
124+ then F
125+ else if ((H == n))
128126 then {
129- let M = fraction(G, K, J)
130- M
127+ let L = fraction(F, J, I)
128+ L
131129 }
132130 else {
133- let M = fraction(G, J, K)
134- M
131+ let L = fraction(F, I, J)
132+ L
135133 }
136134 }
137135
138136
139-func N (t,O,P) = (((((t + "_") + O) + "_") + P) + "_withdraw")
137+func M (s,N,O) = (((((s + "_") + N) + "_") + O) + "_withdraw")
140138
141139
142-func Q (t,O,P) = (((((t + "_") + O) + "_") + P) + "_withdraw_burn_token")
140+func P (s,N,O) = (((((s + "_") + N) + "_") + O) + "_withdraw_burn_token")
143141
144142
145-func R (t,O) = (((t + "_") + O) + p)
143+func Q (s,N) = (((s + "_") + N) + p)
146144
147145
148-func S (T) = {
149- let w = getInteger(T)
150- if ($isInstanceOf(w, "Int"))
146+func R (S) = {
147+ let v = getInteger(S)
148+ if ($isInstanceOf(v, "Int"))
151149 then {
152- let U = w
153- U
150+ let T = v
151+ T
154152 }
155153 else {
156- let A = w
154+ let z = v
157155 0
158156 }
159157 }
160158
161159
162-@Callable(V)
163-func addPools (W,X,Y,Z) = if (containsElement([d, e, f], V.callerPublicKey))
160+@Callable(U)
161+func addPools (V,W,X,Y) = if (containsElement([d, e, f], U.callerPublicKey))
164162 then {
165- func aa (ab,t) = IntegerEntry((t + "_asset_balance"), 0) :: ab
163+ func Z (aa,s) = IntegerEntry((s + "_asset_balance"), 0) :: aa
166164
167- func ac (ab,t) = {
168- let ad = value(indexOf(W, t))
169- let ae = X[ad]
170-StringEntry((t + "_liquidity_token"), ae) :: ab
165+ func ab (aa,s) = {
166+ let ac = value(indexOf(V, s))
167+ let ad = W[ac]
168+StringEntry((s + "_liquidity_token"), ad) :: aa
171169 }
172170
173- func af (ab,t) = {
174- let ad = value(indexOf(W, t))
175- let ae = Y[ad]
176-StringEntry((t + "_service_token"), ae) :: ab
171+ func ae (aa,s) = {
172+ let ac = value(indexOf(V, s))
173+ let ad = X[ac]
174+StringEntry((s + "_service_token"), ad) :: aa
177175 }
178176
179- func ag (ab,t) = {
180- let ad = value(indexOf(W, t))
181- let ae = Z[ad]
182-IntegerEntry((t + "_service_token_decimal"), ae) :: ab
177+ func af (aa,s) = {
178+ let ac = value(indexOf(V, s))
179+ let ad = Y[ac]
180+IntegerEntry((s + "_service_token_decimal"), ad) :: aa
183181 }
184182
185- func ah (ab,t) = BooleanEntry((t + "_active"), true) :: ab
183+ func ag (aa,s) = BooleanEntry((s + "_active"), true) :: aa
186184
187- let ai = {
188- let aj = W
189- let ak = size(aj)
190- let al = nil
191- func am (an,ao) = if ((ao >= ak))
192- then an
193- else aa(an, aj[ao])
185+ let ah = {
186+ let ai = V
187+ let aj = size(ai)
188+ let ak = nil
189+ func al (am,an) = if ((an >= aj))
190+ then am
191+ else Z(am, ai[an])
194192
195- func ap (an,ao) = if ((ao >= ak))
196- then an
193+ func ao (am,an) = if ((an >= aj))
194+ then am
197195 else throw("List size exceeds 20")
198196
199- ap(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
197+ ao(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
200198 }
201- let aq = {
202- let aj = W
203- let ak = size(aj)
204- let al = nil
205- func ar (an,ao) = if ((ao >= ak))
206- then an
207- else ac(an, aj[ao])
199+ let ap = {
200+ let ai = V
201+ let aj = size(ai)
202+ let ak = nil
203+ func aq (am,an) = if ((an >= aj))
204+ then am
205+ else ab(am, ai[an])
208206
209- func as (an,ao) = if ((ao >= ak))
210- then an
207+ func ar (am,an) = if ((an >= aj))
208+ then am
211209 else throw("List size exceeds 20")
212210
213- as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
211+ ar(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
214212 }
215- let at = {
216- let aj = W
217- let ak = size(aj)
218- let al = nil
219- func au (an,ao) = if ((ao >= ak))
220- then an
221- else af(an, aj[ao])
213+ let as = {
214+ let ai = V
215+ let aj = size(ai)
216+ let ak = nil
217+ func at (am,an) = if ((an >= aj))
218+ then am
219+ else ae(am, ai[an])
222220
223- func av (an,ao) = if ((ao >= ak))
224- then an
221+ func au (am,an) = if ((an >= aj))
222+ then am
225223 else throw("List size exceeds 20")
226224
227- av(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
225+ au(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
228226 }
229- let aw = {
230- let aj = W
231- let ak = size(aj)
232- let al = nil
233- func ax (an,ao) = if ((ao >= ak))
234- then an
235- else ag(an, aj[ao])
227+ let av = {
228+ let ai = V
229+ let aj = size(ai)
230+ let ak = nil
231+ func aw (am,an) = if ((an >= aj))
232+ then am
233+ else af(am, ai[an])
236234
237- func ay (an,ao) = if ((ao >= ak))
238- then an
235+ func ax (am,an) = if ((an >= aj))
236+ then am
239237 else throw("List size exceeds 20")
240238
241- ay(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
239+ ax(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
242240 }
243- let az = {
244- let aj = W
245- let ak = size(aj)
246- let al = nil
247- func aA (an,ao) = if ((ao >= ak))
248- then an
249- else ah(an, aj[ao])
241+ let ay = {
242+ let ai = V
243+ let aj = size(ai)
244+ let ak = nil
245+ func az (am,an) = if ((an >= aj))
246+ then am
247+ else ag(am, ai[an])
250248
251- func aB (an,ao) = if ((ao >= ak))
252- then an
249+ func aA (am,an) = if ((an >= aj))
250+ then am
253251 else throw("List size exceeds 20")
254252
255- aB(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
253+ aA(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
256254 }
257- ((((ai ++ aq) ++ at) ++ aw) ++ az)
255+ ((((ah ++ ap) ++ as) ++ av) ++ ay)
258256 }
259257 else throw("Only admin can call this function")
260258
261259
262260
263-@Callable(V)
264-func deleteDepositLockRecords (aC,aD,aE) = if (containsElement([d, e, f], V.callerPublicKey))
261+@Callable(U)
262+func deleteDepositLockRecords (aB,aC,aD) = if (containsElement([d, e, f], U.callerPublicKey))
265263 then {
266- func aF (ab,aG) = DeleteEntry((aG + "_locked")) :: ab
264+ func aE (aa,aF) = DeleteEntry((aF + "_locked")) :: aa
267265
268- func aH (ab,aI) = {
269- let aJ = value(indexOf(aD, aI))
270- let aK = aE[aJ]
271- let aL = S((aI + p))
272- let aM = (aL - aK)
273-IntegerEntry((aI + p), aM) :: ab
266+ func aG (aa,aH) = {
267+ let aI = value(indexOf(aC, aH))
268+ let aJ = aD[aI]
269+ let aK = R((aH + p))
270+ let aL = (aK - aJ)
271+IntegerEntry((aH + p), aL) :: aa
274272 }
275273
276- let aN = {
277- let aj = aC
278- let ak = size(aj)
279- let al = nil
280- func am (an,ao) = if ((ao >= ak))
281- then an
282- else aF(an, aj[ao])
274+ let aM = {
275+ let ai = aB
276+ let aj = size(ai)
277+ let ak = nil
278+ func al (am,an) = if ((an >= aj))
279+ then am
280+ else aE(am, ai[an])
283281
284- func ap (an,ao) = if ((ao >= ak))
285- then an
282+ func ao (am,an) = if ((an >= aj))
283+ then am
286284 else throw("List size exceeds 50")
287285
288- ap(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
286+ ao(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
289287 }
290- let aO = {
291- let aj = aD
292- let ak = size(aj)
293- let al = nil
294- func ar (an,ao) = if ((ao >= ak))
295- then an
296- else aH(an, aj[ao])
288+ let aN = {
289+ let ai = aC
290+ let aj = size(ai)
291+ let ak = nil
292+ func aq (am,an) = if ((an >= aj))
293+ then am
294+ else aG(am, ai[an])
297295
298- func as (an,ao) = if ((ao >= ak))
299- then an
296+ func ar (am,an) = if ((an >= aj))
297+ then am
300298 else throw("List size exceeds 50")
301299
302- as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
300+ ar(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
303301 }
304- (aN ++ aO)
302+ (aM ++ aN)
305303 }
306304 else throw("Only admin can call this function")
307305
308306
309307
310-@Callable(V)
311-func issueToken (aP,aQ,aR,aS) = if (containsElement([d, e, f], V.callerPublicKey))
312- then [Issue(aP, aQ, aR, aS, true, unit, 0)]
308+@Callable(U)
309+func issueToken (aO,aP,aQ,aR) = if (containsElement([d, e, f], U.callerPublicKey))
310+ then [Issue(aO, aP, aQ, aR, true, unit, 0)]
313311 else throw("Only admin can call this function")
314312
315313
316314
317-@Callable(aT)
315+@Callable(aS)
318316 func call () = [DeleteEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_3N5viYFhnu1ew4FRZ9nujme9edr918FkT1a_current_reward")]
319317
320318
321319
322-@Callable(V)
323-func deposit (t) = if ((size(V.payments) != 1))
320+@Callable(U)
321+func deposit (s) = if ((size(U.payments) != 1))
324322 then throw("One attached payment expected")
325323 else {
326- let G = V.payments[0].amount
327- let H = V.payments[0].assetId
328- let aU = {
329- let w = H
330- if ($isInstanceOf(w, "ByteVector"))
324+ let F = U.payments[0].amount
325+ let G = U.payments[0].assetId
326+ let aT = {
327+ let v = G
328+ if ($isInstanceOf(v, "ByteVector"))
331329 then {
332- let aV = w
333- toBase58String(aV)
330+ let aU = v
331+ toBase58String(aU)
334332 }
335333 else throw("Match error")
336334 }
337- if ((0 >= G))
338- then throw(("Deposit amount must be positive. Actual: " + toString(G)))
335+ if ((0 >= F))
336+ then throw(("Deposit amount must be positive. Actual: " + toString(F)))
339337 else {
340- let O = toString(V.caller)
341- let aW = y(t)
342- let aX = {
343- let w = getString((t + "_liquidity_token"))
344- if ($isInstanceOf(w, "String"))
338+ let N = toString(U.caller)
339+ let aV = x(s)
340+ let aW = {
341+ let v = getString((s + "_liquidity_token"))
342+ if ($isInstanceOf(v, "String"))
345343 then {
346- let z = w
347- z
344+ let y = v
345+ y
348346 }
349347 else {
350- let A = w
348+ let z = v
351349 throw("You try to deposit on unsupported pool")
352350 }
353351 }
354- if (s(t))
352+ if (r(s))
355353 then {
356- let aY = {
357- let w = assetInfo(fromBase58String(aX))
358- if ($isInstanceOf(w, "Asset"))
354+ let aX = {
355+ let v = assetInfo(fromBase58String(aW))
356+ if ($isInstanceOf(v, "Asset"))
359357 then {
360- let L = w
361- L.decimals
358+ let K = v
359+ K.decimals
362360 }
363361 else throw("Can't find asset")
364362 }
365- if ((aX != aU))
363+ if ((aW != aT))
366364 then throw("You attached wrong liquidity token from Swop.fi")
367365 else {
368- let aZ = R(t, O)
369- let ba = S(aZ)
370- let bb = ((G - fraction(G, 1, a, HALFUP)) - fraction(G, 1, b, HALFUP))
371- let M = F(bb, fromBase58String(aW), t, n)
372- let bc = (G - bb)
373- let bd = (ba + bb)
374- let be = (((((t + "_") + O) + "_") + toBase58String(V.transactionId)) + "_locked")
375-[Reissue(fromBase58String(aW), M, true), ScriptTransfer(V.caller, M, fromBase58String(aW)), ScriptTransfer(h, bc, fromBase58String(aX)), IntegerEntry(be, bb), IntegerEntry(aZ, bd)]
366+ let aY = Q(s, N)
367+ let aZ = R(aY)
368+ let ba = ((F - fraction(F, 1, a, HALFUP)) - fraction(F, 1, b, HALFUP))
369+ let L = E(ba, fromBase58String(aV), s, n)
370+ let bb = (F - ba)
371+ let bc = (aZ + ba)
372+ let bd = (((((s + "_") + N) + "_") + toBase58String(U.transactionId)) + "_locked")
373+[Reissue(fromBase58String(aV), L, true), ScriptTransfer(U.caller, L, fromBase58String(aV)), ScriptTransfer(h, bb, fromBase58String(aW)), IntegerEntry(bd, ba), IntegerEntry(aY, bc)]
376374 }
377375 }
378376 else throw("Pool is not active!")
381379
382380
383381
384-@Callable(V)
385-func initWithdraw (t) = if ((size(V.payments) != 2))
382+@Callable(U)
383+func initWithdraw (s) = if ((size(U.payments) != 2))
386384 then throw("Two attached payment expected")
387385 else {
388- let G = V.payments[0].amount
389- let H = V.payments[0].assetId
390- let bf = V.payments[1].amount
391- if ((bf != m))
392- then throw("You add wrong commission")
386+ let F = U.payments[0].amount
387+ let G = U.payments[0].assetId
388+ let be = U.payments[1].amount
389+ if ((be != m))
390+ then throw("You added wrong commission")
393391 else {
394- let aU = {
395- let w = H
396- if ($isInstanceOf(w, "ByteVector"))
392+ let aT = {
393+ let v = G
394+ if ($isInstanceOf(v, "ByteVector"))
397395 then {
398- let aV = w
399- toBase58String(aV)
396+ let aU = v
397+ toBase58String(aU)
400398 }
401399 else throw("Match error")
402400 }
403- let bg = {
404- let w = H
405- if ($isInstanceOf(w, "ByteVector"))
401+ let bf = {
402+ let v = G
403+ if ($isInstanceOf(v, "ByteVector"))
406404 then {
407- let aV = w
408- aV
405+ let aU = v
406+ aU
409407 }
410408 else throw("Match error")
411409 }
412- if ((0 >= G))
413- then throw(("Withraw amount must be positive. Actual: " + toString(G)))
414- else if (s(t))
410+ if ((0 >= F))
411+ then throw(("Withraw amount must be positive. Actual: " + toString(F)))
412+ else if (r(s))
415413 then {
416- let O = toString(V.caller)
417- let aZ = R(t, O)
418- let ba = S(aZ)
419- let bh = assetBalance(V.caller, bg)
420- let bi = (bh + G)
421- let bj = F(bi, fromBase58String(aU), t, o)
422- let M = F(G, fromBase58String(aU), t, o)
423- let bk = (bj - ba)
424- if (!((bk >= M)))
414+ let N = toString(U.caller)
415+ let aY = Q(s, N)
416+ let aZ = R(aY)
417+ let bg = assetBalance(U.caller, bf)
418+ let bh = (bg + F)
419+ let bi = E(bh, fromBase58String(aT), s, o)
420+ let L = E(F, fromBase58String(aT), s, o)
421+ let bj = (bi - aZ)
422+ if (!((bj >= L)))
425423 then throw("You have a locked tokens. Wait a time for unlock or try to withdrraw less")
426424 else {
427- let bl = N(t, O, toBase58String(V.transactionId))
428- let bm = Q(t, O, toBase58String(V.transactionId))
429-[IntegerEntry(bl, M), IntegerEntry(bm, G), ScriptTransfer(addressFromPublicKey(g), 500000, unit)]
425+ let bk = M(s, N, toBase58String(U.transactionId))
426+ let bl = P(s, N, toBase58String(U.transactionId))
427+[IntegerEntry(bk, L), IntegerEntry(bl, F), ScriptTransfer(addressFromPublicKey(g), 500000, unit)]
430428 }
431429 }
432430 else throw("Pool is not active!")
435433
436434
437435
438-@Callable(V)
439-func withdraw (t,O,P) = if (containsElement([d, e, f], V.callerPublicKey))
436+@Callable(U)
437+func withdraw (s,N,O) = if (containsElement([d, e, f], U.callerPublicKey))
440438 then {
441- let bl = N(t, O, P)
442- let bm = Q(t, O, P)
439+ let bk = M(s, N, O)
440+ let bl = P(s, N, O)
441+ let bm = getIntegerValue(this, bk)
443442 let bn = getIntegerValue(this, bl)
444- let bo = getIntegerValue(this, bm)
445- let aW = y(t)
446- let aX = B(t)
447-[Burn(fromBase58String(aW), bo), ScriptTransfer(V.caller, bn, fromBase58String(aX)), DeleteEntry(bl), DeleteEntry(bm)]
443+ let aV = x(s)
444+ let aW = A(s)
445+[Burn(fromBase58String(aV), bn), ScriptTransfer(Address(base58'userAddress'), bm, fromBase58String(aW)), DeleteEntry(bk), DeleteEntry(bl)]
448446 }
449447 else throw("Only admin can call this function")
450448
451449
452450
453-@Callable(V)
454-func poolActivating (W,bp) = if (containsElement([d, e, f], V.callerPublicKey))
451+@Callable(U)
452+func poolActivating (V,bo) = if (containsElement([d, e, f], U.callerPublicKey))
455453 then {
456- func ah (ab,t) = {
457- let ad = value(indexOf(W, t))
458- let bq = bp[ad]
459-BooleanEntry((t + "_active"), bq) :: ab
454+ func ag (aa,s) = {
455+ let ac = value(indexOf(V, s))
456+ let bp = bo[ac]
457+BooleanEntry((s + "_active"), bp) :: aa
460458 }
461459
462- let az = {
463- let aj = W
464- let ak = size(aj)
465- let al = nil
466- func am (an,ao) = if ((ao >= ak))
467- then an
468- else ah(an, aj[ao])
460+ let ay = {
461+ let ai = V
462+ let aj = size(ai)
463+ let ak = nil
464+ func al (am,an) = if ((an >= aj))
465+ then am
466+ else ag(am, ai[an])
469467
470- func ap (an,ao) = if ((ao >= ak))
471- then an
468+ func ao (am,an) = if ((an >= aj))
469+ then am
472470 else throw("List size exceeds 100")
473471
474- ap(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
472+ ao(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
475473 }
476- az
474+ ay
477475 }
478476 else throw("Only admin can call this function")
479477
480478
481479
482-@Callable(V)
483-func deleteUnsedData () = if (containsElement([d, e, f], V.callerPublicKey))
484- then [IntegerEntry("3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W_3MthsuC5EDyehGoKvyzwhZvMENroHPsgaXS_service_token_total_locked", 0), DeleteEntry("3PEeJQRJT4v4XvSUBPmxhdWKz439nae7KtQ_3MthsuC5EDyehGoKvyzwhZvMENroHPsgaXS_asset_balance"), DeleteEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL_asset_balance"), IntegerEntry("3PEeJQRJT4v4XvSUBPmxhdWKz439nae7KtQ_3MthsuC5EDyehGoKvyzwhZvMENroHPsgaXS_service_token_total_locked", 0)]
480+@Callable(U)
481+func deleteUnsedData () = if (containsElement([d, e, f], U.callerPublicKey))
482+ then [DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_2iUVKCy4zUvgBgg7AccyqKfBCYhpoVEV7ECm9NXLZBP4_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_4nXGTM9Zb3oH2fmZoz3S4moW9Lr2YXawD78BSEvCHCaN_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_At3WGKCiCDn9Kb78PK9tJ9EStbcwGSFLCPXBvFvoGboo_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_Cb1mTLJAZmEWirA5FE8UW7eWkrMWGgjTGRdHA2f9d27U_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_FeDsjtZLp74u6G6CptoipdRtQxzwjM1WRufYJUw34tcF_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_HArfuQBZMynxzdeBg4wqsM72yspQBhHq7DiDqEuakJ3j_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_SWOP_last_claimed_amount"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_asset_balance"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_available_SWOP"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_current_reward"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_last_interest"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_current_reward"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_asset_balance"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_current_reward"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_last_interest"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_last_interest_height"), DeleteEntry("Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_Avgjf7CwPhnbAZXG8eDmCsVa8339VfRALRJgsSbJtskc_locked"), IntegerEntry("3PNVFWopwCD9CgGXkpYWEY94oQ5XCAEXBmQ_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_service_token_total_locked", 0), DeleteEntry("Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_asset_balance"), DeleteEntry("Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_G8AxdbSPvKwsxvwEFVFxE1wAW2CrGsAQwy5diyiSJQc1_locked"), DeleteEntry("Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_asset_balance"), IntegerEntry("Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_service_token_total_locked", 0)]
485483 else throw("Only admin can call this function")
486484
487485
488-@Verifier(br)
489-func bs () = {
490- let w = br
491- if ($isInstanceOf(w, "InvokeScriptTransaction"))
486+@Verifier(bq)
487+func br () = {
488+ let v = bq
489+ if ($isInstanceOf(v, "InvokeScriptTransaction"))
492490 then {
493- let bt = w
494- let bu = if ((bt.dApp == j))
495- then if (if ((bt.function == "lockShareTokens"))
491+ let bs = v
492+ let bt = if ((bs.dApp == j))
493+ then if (if ((bs.function == "lockShareTokens"))
496494 then true
497- else (bt.function == "claim"))
495+ else (bs.function == "claim"))
498496 then true
499- else (bt.function == "withdrawShareTokens")
497+ else (bs.function == "withdrawShareTokens")
500498 else false
501- let bv = if ((bt.dApp == i))
502- then if ((bt.function == "lockSWOP"))
499+ let bu = if ((bs.dApp == i))
500+ then if (if ((bs.function == "lockSWOP"))
503501 then true
504- else (bt.function == "withdrawSWOP")
502+ else (bs.function == "withdrawSWOP"))
503+ then true
504+ else (bs.function == "claimAndStakeSWOP")
505505 else false
506- let bw = {
507- let bx = bt.dApp
508- if ($isInstanceOf(bx, "Address"))
506+ let bv = {
507+ let bw = bs.dApp
508+ if ($isInstanceOf(bw, "Address"))
509509 then {
510- let by = bx
511- toString(by)
510+ let bx = bw
511+ toString(bx)
512512 }
513513 else throw("Transaction must have only address")
514514 }
515- let bz = if (containsElement(q, bw))
516- then containsElement(r, bt.function)
515+ let by = if (r(bv))
516+ then containsElement(q, bs.function)
517517 else false
518- let bA = if (if (if (sigVerify(br.bodyBytes, br.proofs[0], d))
518+ let bz = if (if (if (sigVerify(bq.bodyBytes, bq.proofs[0], d))
519519 then true
520- else sigVerify(br.bodyBytes, br.proofs[0], e))
520+ else sigVerify(bq.bodyBytes, bq.proofs[0], e))
521521 then true
522- else sigVerify(br.bodyBytes, br.proofs[0], g))
522+ else sigVerify(bq.bodyBytes, bq.proofs[0], g))
523523 then true
524- else sigVerify(br.bodyBytes, br.proofs[0], br.senderPublicKey)
525- if (if (if (bu)
524+ else sigVerify(bq.bodyBytes, bq.proofs[0], bq.senderPublicKey)
525+ if (if (if (bt)
526526 then true
527- else bz)
527+ else by)
528528 then true
529- else bv)
530- then bA
529+ else bu)
530+ then bz
531531 else false
532532 }
533533 else {
534- let bB = if (sigVerify(br.bodyBytes, br.proofs[0], d))
534+ let bA = if (sigVerify(bq.bodyBytes, bq.proofs[0], d))
535535 then 1
536536 else 0
537- let bC = if (sigVerify(br.bodyBytes, br.proofs[1], e))
537+ let bB = if (sigVerify(bq.bodyBytes, bq.proofs[1], e))
538538 then 1
539539 else 0
540- let bD = if (sigVerify(br.bodyBytes, br.proofs[2], f))
540+ let bC = if (sigVerify(bq.bodyBytes, bq.proofs[2], f))
541541 then 1
542542 else 0
543- (((bB + bC) + bD) >= 2)
543+ (((bA + bB) + bC) >= 2)
544544 }
545545 }
546546
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000
55
66 let b = 10000
77
88 let c = 10000
99
1010 let d = base58'68Po1k24uP6goKr7RDmXPg4QkMiKuyTMEirao14rif8s'
1111
1212 let e = base58'Bze4aurT9WmLgBT6swA9CajaZFtUwhtwCri6XGAjnAkt'
1313
1414 let f = base58'ALsqwPqiUP3bVbM7grozc1Y5oHVBAGKqACRJ5J8RXceC'
1515
16-let g = base58'ALsqwPqiUP3bVbM7grozc1Y5oHVBAGKqACRJ5J8RXceC'
16+let g = base58'68Po1k24uP6goKr7RDmXPg4QkMiKuyTMEirao14rif8s'
1717
18-let h = Address(base58'3N7ExjwfofPYTvNBv2zqtAtLcMxqjTxS7iL')
18+let h = Address(base58'3PKoJ7GHwmidFPX6NiqKZdq8Zj2auPMNPnE')
1919
2020 let i = Address(base58'3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS')
2121
22-let j = Address(base58'3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL')
22+let j = Address(base58'3P73HDkPqG15nLXevjCbmXtazHYTZbpPoPw')
2323
2424 let k = "SWOP_id"
2525
2626 let l = fromBase58String(getStringValue(j, k))
2727
2828 let m = 1400000
2929
3030 let n = "deposit"
3131
3232 let o = "withdraw"
3333
3434 let p = "_service_token_total_locked"
3535
36-let q = ["3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX", "3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W"]
36+let q = ["replenishWithTwoTokens", "exchange", "replenishWithOneToken"]
3737
38-let r = ["replenishWithTwoTokens", "exchange"]
39-
40-func s (t) = {
41- let u = (t + "_active")
42- let v = {
43- let w = getBoolean(this, u)
44- if ($isInstanceOf(w, "Boolean"))
38+func r (s) = {
39+ let t = (s + "_active")
40+ let u = {
41+ let v = getBoolean(this, t)
42+ if ($isInstanceOf(v, "Boolean"))
4543 then {
46- let x = w
47- x
44+ let w = v
45+ w
4846 }
4947 else throw("Pool is not active!")
5048 }
51- v
49+ u
5250 }
5351
5452
55-func y (t) = {
56- let w = getString((t + "_service_token"))
57- if ($isInstanceOf(w, "String"))
53+func x (s) = {
54+ let v = getString((s + "_service_token"))
55+ if ($isInstanceOf(v, "String"))
5856 then {
59- let z = w
60- z
57+ let y = v
58+ y
6159 }
6260 else {
63- let A = w
61+ let z = v
6462 throw("You try to deposit on unsupported pool")
6563 }
6664 }
6765
6866
69-func B (t) = {
70- let w = getString((t + "_liquidity_token"))
71- if ($isInstanceOf(w, "String"))
67+func A (s) = {
68+ let v = getString((s + "_liquidity_token"))
69+ if ($isInstanceOf(v, "String"))
7270 then {
73- let z = w
74- z
71+ let y = v
72+ y
7573 }
7674 else {
77- let A = w
75+ let z = v
7876 throw("You try to withdraw from unsupported pool")
7977 }
8078 }
8179
8280
83-func C (D) = if ((D == toBase58String(l)))
81+func B (C) = if ((C == toBase58String(l)))
8482 then {
85- let w = getInteger(i, (toString(this) + "_SWOP_amount"))
86- if ($isInstanceOf(w, "Int"))
83+ let v = getInteger(i, (toString(this) + "_SWOP_amount"))
84+ if ($isInstanceOf(v, "Int"))
8785 then {
88- let E = w
89- E
86+ let D = v
87+ D
9088 }
91- else if ($isInstanceOf(w, "Unit"))
89+ else if ($isInstanceOf(v, "Unit"))
9290 then {
93- let A = w
91+ let z = v
9492 0
9593 }
9694 else throw("Match error")
9795 }
9896 else {
99- let w = getInteger(j, (((D + "_") + toString(this)) + "_share_tokens_locked"))
100- if ($isInstanceOf(w, "Int"))
97+ let v = getInteger(j, (((C + "_") + toString(this)) + "_share_tokens_locked"))
98+ if ($isInstanceOf(v, "Int"))
10199 then {
102- let E = w
103- E
100+ let D = v
101+ D
104102 }
105- else if ($isInstanceOf(w, "Unit"))
103+ else if ($isInstanceOf(v, "Unit"))
106104 then {
107- let A = w
105+ let z = v
108106 0
109107 }
110108 else throw("Match error")
111109 }
112110
113111
114-func F (G,H,D,I) = {
115- let J = C(D)
116- let K = {
117- let w = assetInfo(H)
118- if ($isInstanceOf(w, "Asset"))
112+func E (F,G,C,H) = {
113+ let I = B(C)
114+ let J = {
115+ let v = assetInfo(G)
116+ if ($isInstanceOf(v, "Asset"))
119117 then {
120- let L = w
121- L.quantity
118+ let K = v
119+ K.quantity
122120 }
123121 else throw("Can't find asset")
124122 }
125- if ((J == 0))
126- then G
127- else if ((I == n))
123+ if ((I == 0))
124+ then F
125+ else if ((H == n))
128126 then {
129- let M = fraction(G, K, J)
130- M
127+ let L = fraction(F, J, I)
128+ L
131129 }
132130 else {
133- let M = fraction(G, J, K)
134- M
131+ let L = fraction(F, I, J)
132+ L
135133 }
136134 }
137135
138136
139-func N (t,O,P) = (((((t + "_") + O) + "_") + P) + "_withdraw")
137+func M (s,N,O) = (((((s + "_") + N) + "_") + O) + "_withdraw")
140138
141139
142-func Q (t,O,P) = (((((t + "_") + O) + "_") + P) + "_withdraw_burn_token")
140+func P (s,N,O) = (((((s + "_") + N) + "_") + O) + "_withdraw_burn_token")
143141
144142
145-func R (t,O) = (((t + "_") + O) + p)
143+func Q (s,N) = (((s + "_") + N) + p)
146144
147145
148-func S (T) = {
149- let w = getInteger(T)
150- if ($isInstanceOf(w, "Int"))
146+func R (S) = {
147+ let v = getInteger(S)
148+ if ($isInstanceOf(v, "Int"))
151149 then {
152- let U = w
153- U
150+ let T = v
151+ T
154152 }
155153 else {
156- let A = w
154+ let z = v
157155 0
158156 }
159157 }
160158
161159
162-@Callable(V)
163-func addPools (W,X,Y,Z) = if (containsElement([d, e, f], V.callerPublicKey))
160+@Callable(U)
161+func addPools (V,W,X,Y) = if (containsElement([d, e, f], U.callerPublicKey))
164162 then {
165- func aa (ab,t) = IntegerEntry((t + "_asset_balance"), 0) :: ab
163+ func Z (aa,s) = IntegerEntry((s + "_asset_balance"), 0) :: aa
166164
167- func ac (ab,t) = {
168- let ad = value(indexOf(W, t))
169- let ae = X[ad]
170-StringEntry((t + "_liquidity_token"), ae) :: ab
165+ func ab (aa,s) = {
166+ let ac = value(indexOf(V, s))
167+ let ad = W[ac]
168+StringEntry((s + "_liquidity_token"), ad) :: aa
171169 }
172170
173- func af (ab,t) = {
174- let ad = value(indexOf(W, t))
175- let ae = Y[ad]
176-StringEntry((t + "_service_token"), ae) :: ab
171+ func ae (aa,s) = {
172+ let ac = value(indexOf(V, s))
173+ let ad = X[ac]
174+StringEntry((s + "_service_token"), ad) :: aa
177175 }
178176
179- func ag (ab,t) = {
180- let ad = value(indexOf(W, t))
181- let ae = Z[ad]
182-IntegerEntry((t + "_service_token_decimal"), ae) :: ab
177+ func af (aa,s) = {
178+ let ac = value(indexOf(V, s))
179+ let ad = Y[ac]
180+IntegerEntry((s + "_service_token_decimal"), ad) :: aa
183181 }
184182
185- func ah (ab,t) = BooleanEntry((t + "_active"), true) :: ab
183+ func ag (aa,s) = BooleanEntry((s + "_active"), true) :: aa
186184
187- let ai = {
188- let aj = W
189- let ak = size(aj)
190- let al = nil
191- func am (an,ao) = if ((ao >= ak))
192- then an
193- else aa(an, aj[ao])
185+ let ah = {
186+ let ai = V
187+ let aj = size(ai)
188+ let ak = nil
189+ func al (am,an) = if ((an >= aj))
190+ then am
191+ else Z(am, ai[an])
194192
195- func ap (an,ao) = if ((ao >= ak))
196- then an
193+ func ao (am,an) = if ((an >= aj))
194+ then am
197195 else throw("List size exceeds 20")
198196
199- ap(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
197+ ao(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
200198 }
201- let aq = {
202- let aj = W
203- let ak = size(aj)
204- let al = nil
205- func ar (an,ao) = if ((ao >= ak))
206- then an
207- else ac(an, aj[ao])
199+ let ap = {
200+ let ai = V
201+ let aj = size(ai)
202+ let ak = nil
203+ func aq (am,an) = if ((an >= aj))
204+ then am
205+ else ab(am, ai[an])
208206
209- func as (an,ao) = if ((ao >= ak))
210- then an
207+ func ar (am,an) = if ((an >= aj))
208+ then am
211209 else throw("List size exceeds 20")
212210
213- as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
211+ ar(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
214212 }
215- let at = {
216- let aj = W
217- let ak = size(aj)
218- let al = nil
219- func au (an,ao) = if ((ao >= ak))
220- then an
221- else af(an, aj[ao])
213+ let as = {
214+ let ai = V
215+ let aj = size(ai)
216+ let ak = nil
217+ func at (am,an) = if ((an >= aj))
218+ then am
219+ else ae(am, ai[an])
222220
223- func av (an,ao) = if ((ao >= ak))
224- then an
221+ func au (am,an) = if ((an >= aj))
222+ then am
225223 else throw("List size exceeds 20")
226224
227- av(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(au(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
225+ au(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(at(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
228226 }
229- let aw = {
230- let aj = W
231- let ak = size(aj)
232- let al = nil
233- func ax (an,ao) = if ((ao >= ak))
234- then an
235- else ag(an, aj[ao])
227+ let av = {
228+ let ai = V
229+ let aj = size(ai)
230+ let ak = nil
231+ func aw (am,an) = if ((an >= aj))
232+ then am
233+ else af(am, ai[an])
236234
237- func ay (an,ao) = if ((ao >= ak))
238- then an
235+ func ax (am,an) = if ((an >= aj))
236+ then am
239237 else throw("List size exceeds 20")
240238
241- ay(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(ax(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
239+ ax(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(aw(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
242240 }
243- let az = {
244- let aj = W
245- let ak = size(aj)
246- let al = nil
247- func aA (an,ao) = if ((ao >= ak))
248- then an
249- else ah(an, aj[ao])
241+ let ay = {
242+ let ai = V
243+ let aj = size(ai)
244+ let ak = nil
245+ func az (am,an) = if ((an >= aj))
246+ then am
247+ else ag(am, ai[an])
250248
251- func aB (an,ao) = if ((ao >= ak))
252- then an
249+ func aA (am,an) = if ((an >= aj))
250+ then am
253251 else throw("List size exceeds 20")
254252
255- aB(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
253+ aA(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(az(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
256254 }
257- ((((ai ++ aq) ++ at) ++ aw) ++ az)
255+ ((((ah ++ ap) ++ as) ++ av) ++ ay)
258256 }
259257 else throw("Only admin can call this function")
260258
261259
262260
263-@Callable(V)
264-func deleteDepositLockRecords (aC,aD,aE) = if (containsElement([d, e, f], V.callerPublicKey))
261+@Callable(U)
262+func deleteDepositLockRecords (aB,aC,aD) = if (containsElement([d, e, f], U.callerPublicKey))
265263 then {
266- func aF (ab,aG) = DeleteEntry((aG + "_locked")) :: ab
264+ func aE (aa,aF) = DeleteEntry((aF + "_locked")) :: aa
267265
268- func aH (ab,aI) = {
269- let aJ = value(indexOf(aD, aI))
270- let aK = aE[aJ]
271- let aL = S((aI + p))
272- let aM = (aL - aK)
273-IntegerEntry((aI + p), aM) :: ab
266+ func aG (aa,aH) = {
267+ let aI = value(indexOf(aC, aH))
268+ let aJ = aD[aI]
269+ let aK = R((aH + p))
270+ let aL = (aK - aJ)
271+IntegerEntry((aH + p), aL) :: aa
274272 }
275273
276- let aN = {
277- let aj = aC
278- let ak = size(aj)
279- let al = nil
280- func am (an,ao) = if ((ao >= ak))
281- then an
282- else aF(an, aj[ao])
274+ let aM = {
275+ let ai = aB
276+ let aj = size(ai)
277+ let ak = nil
278+ func al (am,an) = if ((an >= aj))
279+ then am
280+ else aE(am, ai[an])
283281
284- func ap (an,ao) = if ((ao >= ak))
285- then an
282+ func ao (am,an) = if ((an >= aj))
283+ then am
286284 else throw("List size exceeds 50")
287285
288- ap(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
286+ ao(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
289287 }
290- let aO = {
291- let aj = aD
292- let ak = size(aj)
293- let al = nil
294- func ar (an,ao) = if ((ao >= ak))
295- then an
296- else aH(an, aj[ao])
288+ let aN = {
289+ let ai = aC
290+ let aj = size(ai)
291+ let ak = nil
292+ func aq (am,an) = if ((an >= aj))
293+ then am
294+ else aG(am, ai[an])
297295
298- func as (an,ao) = if ((ao >= ak))
299- then an
296+ func ar (am,an) = if ((an >= aj))
297+ then am
300298 else throw("List size exceeds 50")
301299
302- as(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
300+ ar(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(aq(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
303301 }
304- (aN ++ aO)
302+ (aM ++ aN)
305303 }
306304 else throw("Only admin can call this function")
307305
308306
309307
310-@Callable(V)
311-func issueToken (aP,aQ,aR,aS) = if (containsElement([d, e, f], V.callerPublicKey))
312- then [Issue(aP, aQ, aR, aS, true, unit, 0)]
308+@Callable(U)
309+func issueToken (aO,aP,aQ,aR) = if (containsElement([d, e, f], U.callerPublicKey))
310+ then [Issue(aO, aP, aQ, aR, true, unit, 0)]
313311 else throw("Only admin can call this function")
314312
315313
316314
317-@Callable(aT)
315+@Callable(aS)
318316 func call () = [DeleteEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_3N5viYFhnu1ew4FRZ9nujme9edr918FkT1a_current_reward")]
319317
320318
321319
322-@Callable(V)
323-func deposit (t) = if ((size(V.payments) != 1))
320+@Callable(U)
321+func deposit (s) = if ((size(U.payments) != 1))
324322 then throw("One attached payment expected")
325323 else {
326- let G = V.payments[0].amount
327- let H = V.payments[0].assetId
328- let aU = {
329- let w = H
330- if ($isInstanceOf(w, "ByteVector"))
324+ let F = U.payments[0].amount
325+ let G = U.payments[0].assetId
326+ let aT = {
327+ let v = G
328+ if ($isInstanceOf(v, "ByteVector"))
331329 then {
332- let aV = w
333- toBase58String(aV)
330+ let aU = v
331+ toBase58String(aU)
334332 }
335333 else throw("Match error")
336334 }
337- if ((0 >= G))
338- then throw(("Deposit amount must be positive. Actual: " + toString(G)))
335+ if ((0 >= F))
336+ then throw(("Deposit amount must be positive. Actual: " + toString(F)))
339337 else {
340- let O = toString(V.caller)
341- let aW = y(t)
342- let aX = {
343- let w = getString((t + "_liquidity_token"))
344- if ($isInstanceOf(w, "String"))
338+ let N = toString(U.caller)
339+ let aV = x(s)
340+ let aW = {
341+ let v = getString((s + "_liquidity_token"))
342+ if ($isInstanceOf(v, "String"))
345343 then {
346- let z = w
347- z
344+ let y = v
345+ y
348346 }
349347 else {
350- let A = w
348+ let z = v
351349 throw("You try to deposit on unsupported pool")
352350 }
353351 }
354- if (s(t))
352+ if (r(s))
355353 then {
356- let aY = {
357- let w = assetInfo(fromBase58String(aX))
358- if ($isInstanceOf(w, "Asset"))
354+ let aX = {
355+ let v = assetInfo(fromBase58String(aW))
356+ if ($isInstanceOf(v, "Asset"))
359357 then {
360- let L = w
361- L.decimals
358+ let K = v
359+ K.decimals
362360 }
363361 else throw("Can't find asset")
364362 }
365- if ((aX != aU))
363+ if ((aW != aT))
366364 then throw("You attached wrong liquidity token from Swop.fi")
367365 else {
368- let aZ = R(t, O)
369- let ba = S(aZ)
370- let bb = ((G - fraction(G, 1, a, HALFUP)) - fraction(G, 1, b, HALFUP))
371- let M = F(bb, fromBase58String(aW), t, n)
372- let bc = (G - bb)
373- let bd = (ba + bb)
374- let be = (((((t + "_") + O) + "_") + toBase58String(V.transactionId)) + "_locked")
375-[Reissue(fromBase58String(aW), M, true), ScriptTransfer(V.caller, M, fromBase58String(aW)), ScriptTransfer(h, bc, fromBase58String(aX)), IntegerEntry(be, bb), IntegerEntry(aZ, bd)]
366+ let aY = Q(s, N)
367+ let aZ = R(aY)
368+ let ba = ((F - fraction(F, 1, a, HALFUP)) - fraction(F, 1, b, HALFUP))
369+ let L = E(ba, fromBase58String(aV), s, n)
370+ let bb = (F - ba)
371+ let bc = (aZ + ba)
372+ let bd = (((((s + "_") + N) + "_") + toBase58String(U.transactionId)) + "_locked")
373+[Reissue(fromBase58String(aV), L, true), ScriptTransfer(U.caller, L, fromBase58String(aV)), ScriptTransfer(h, bb, fromBase58String(aW)), IntegerEntry(bd, ba), IntegerEntry(aY, bc)]
376374 }
377375 }
378376 else throw("Pool is not active!")
379377 }
380378 }
381379
382380
383381
384-@Callable(V)
385-func initWithdraw (t) = if ((size(V.payments) != 2))
382+@Callable(U)
383+func initWithdraw (s) = if ((size(U.payments) != 2))
386384 then throw("Two attached payment expected")
387385 else {
388- let G = V.payments[0].amount
389- let H = V.payments[0].assetId
390- let bf = V.payments[1].amount
391- if ((bf != m))
392- then throw("You add wrong commission")
386+ let F = U.payments[0].amount
387+ let G = U.payments[0].assetId
388+ let be = U.payments[1].amount
389+ if ((be != m))
390+ then throw("You added wrong commission")
393391 else {
394- let aU = {
395- let w = H
396- if ($isInstanceOf(w, "ByteVector"))
392+ let aT = {
393+ let v = G
394+ if ($isInstanceOf(v, "ByteVector"))
397395 then {
398- let aV = w
399- toBase58String(aV)
396+ let aU = v
397+ toBase58String(aU)
400398 }
401399 else throw("Match error")
402400 }
403- let bg = {
404- let w = H
405- if ($isInstanceOf(w, "ByteVector"))
401+ let bf = {
402+ let v = G
403+ if ($isInstanceOf(v, "ByteVector"))
406404 then {
407- let aV = w
408- aV
405+ let aU = v
406+ aU
409407 }
410408 else throw("Match error")
411409 }
412- if ((0 >= G))
413- then throw(("Withraw amount must be positive. Actual: " + toString(G)))
414- else if (s(t))
410+ if ((0 >= F))
411+ then throw(("Withraw amount must be positive. Actual: " + toString(F)))
412+ else if (r(s))
415413 then {
416- let O = toString(V.caller)
417- let aZ = R(t, O)
418- let ba = S(aZ)
419- let bh = assetBalance(V.caller, bg)
420- let bi = (bh + G)
421- let bj = F(bi, fromBase58String(aU), t, o)
422- let M = F(G, fromBase58String(aU), t, o)
423- let bk = (bj - ba)
424- if (!((bk >= M)))
414+ let N = toString(U.caller)
415+ let aY = Q(s, N)
416+ let aZ = R(aY)
417+ let bg = assetBalance(U.caller, bf)
418+ let bh = (bg + F)
419+ let bi = E(bh, fromBase58String(aT), s, o)
420+ let L = E(F, fromBase58String(aT), s, o)
421+ let bj = (bi - aZ)
422+ if (!((bj >= L)))
425423 then throw("You have a locked tokens. Wait a time for unlock or try to withdrraw less")
426424 else {
427- let bl = N(t, O, toBase58String(V.transactionId))
428- let bm = Q(t, O, toBase58String(V.transactionId))
429-[IntegerEntry(bl, M), IntegerEntry(bm, G), ScriptTransfer(addressFromPublicKey(g), 500000, unit)]
425+ let bk = M(s, N, toBase58String(U.transactionId))
426+ let bl = P(s, N, toBase58String(U.transactionId))
427+[IntegerEntry(bk, L), IntegerEntry(bl, F), ScriptTransfer(addressFromPublicKey(g), 500000, unit)]
430428 }
431429 }
432430 else throw("Pool is not active!")
433431 }
434432 }
435433
436434
437435
438-@Callable(V)
439-func withdraw (t,O,P) = if (containsElement([d, e, f], V.callerPublicKey))
436+@Callable(U)
437+func withdraw (s,N,O) = if (containsElement([d, e, f], U.callerPublicKey))
440438 then {
441- let bl = N(t, O, P)
442- let bm = Q(t, O, P)
439+ let bk = M(s, N, O)
440+ let bl = P(s, N, O)
441+ let bm = getIntegerValue(this, bk)
443442 let bn = getIntegerValue(this, bl)
444- let bo = getIntegerValue(this, bm)
445- let aW = y(t)
446- let aX = B(t)
447-[Burn(fromBase58String(aW), bo), ScriptTransfer(V.caller, bn, fromBase58String(aX)), DeleteEntry(bl), DeleteEntry(bm)]
443+ let aV = x(s)
444+ let aW = A(s)
445+[Burn(fromBase58String(aV), bn), ScriptTransfer(Address(base58'userAddress'), bm, fromBase58String(aW)), DeleteEntry(bk), DeleteEntry(bl)]
448446 }
449447 else throw("Only admin can call this function")
450448
451449
452450
453-@Callable(V)
454-func poolActivating (W,bp) = if (containsElement([d, e, f], V.callerPublicKey))
451+@Callable(U)
452+func poolActivating (V,bo) = if (containsElement([d, e, f], U.callerPublicKey))
455453 then {
456- func ah (ab,t) = {
457- let ad = value(indexOf(W, t))
458- let bq = bp[ad]
459-BooleanEntry((t + "_active"), bq) :: ab
454+ func ag (aa,s) = {
455+ let ac = value(indexOf(V, s))
456+ let bp = bo[ac]
457+BooleanEntry((s + "_active"), bp) :: aa
460458 }
461459
462- let az = {
463- let aj = W
464- let ak = size(aj)
465- let al = nil
466- func am (an,ao) = if ((ao >= ak))
467- then an
468- else ah(an, aj[ao])
460+ let ay = {
461+ let ai = V
462+ let aj = size(ai)
463+ let ak = nil
464+ func al (am,an) = if ((an >= aj))
465+ then am
466+ else ag(am, ai[an])
469467
470- func ap (an,ao) = if ((ao >= ak))
471- then an
468+ func ao (am,an) = if ((an >= aj))
469+ then am
472470 else throw("List size exceeds 100")
473471
474- ap(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(am(al, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
472+ ao(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(al(ak, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
475473 }
476- az
474+ ay
477475 }
478476 else throw("Only admin can call this function")
479477
480478
481479
482-@Callable(V)
483-func deleteUnsedData () = if (containsElement([d, e, f], V.callerPublicKey))
484- then [IntegerEntry("3P27S9V36kw2McjWRZ37AxTx8iwkd7HXw6W_3MthsuC5EDyehGoKvyzwhZvMENroHPsgaXS_service_token_total_locked", 0), DeleteEntry("3PEeJQRJT4v4XvSUBPmxhdWKz439nae7KtQ_3MthsuC5EDyehGoKvyzwhZvMENroHPsgaXS_asset_balance"), DeleteEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_3NBTuZhn2CwAgWGL99qpGDjZQ4Wtbg56iDL_asset_balance"), IntegerEntry("3PEeJQRJT4v4XvSUBPmxhdWKz439nae7KtQ_3MthsuC5EDyehGoKvyzwhZvMENroHPsgaXS_service_token_total_locked", 0)]
480+@Callable(U)
481+func deleteUnsedData () = if (containsElement([d, e, f], U.callerPublicKey))
482+ then [DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_2iUVKCy4zUvgBgg7AccyqKfBCYhpoVEV7ECm9NXLZBP4_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_4nXGTM9Zb3oH2fmZoz3S4moW9Lr2YXawD78BSEvCHCaN_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_At3WGKCiCDn9Kb78PK9tJ9EStbcwGSFLCPXBvFvoGboo_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_Cb1mTLJAZmEWirA5FE8UW7eWkrMWGgjTGRdHA2f9d27U_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_FeDsjtZLp74u6G6CptoipdRtQxzwjM1WRufYJUw34tcF_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_HArfuQBZMynxzdeBg4wqsM72yspQBhHq7DiDqEuakJ3j_locked"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_SWOP_last_claimed_amount"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_asset_balance"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_available_SWOP"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_current_reward"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_last_interest"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_current_reward"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_asset_balance"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_current_reward"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_last_interest"), DeleteEntry("3PKy2mZqnvT2EtpwDim9Mgs6YvCRe4s85nX_last_interest_height"), DeleteEntry("Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_Avgjf7CwPhnbAZXG8eDmCsVa8339VfRALRJgsSbJtskc_locked"), IntegerEntry("3PNVFWopwCD9CgGXkpYWEY94oQ5XCAEXBmQ_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_service_token_total_locked", 0), DeleteEntry("Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT_3P5uZuGjRX7kdrCbvm3isWNvSiHQzpvWGPH_asset_balance"), DeleteEntry("Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_G8AxdbSPvKwsxvwEFVFxE1wAW2CrGsAQwy5diyiSJQc1_locked"), DeleteEntry("Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_asset_balance"), IntegerEntry("Ehie5xYpeN8op1Cctc6aGUrqx8jq3jtf1DSjXDbfm7aT_3PDjJPe1PxqwjJKa7uSkX367CFBtVAVypWW_service_token_total_locked", 0)]
485483 else throw("Only admin can call this function")
486484
487485
488-@Verifier(br)
489-func bs () = {
490- let w = br
491- if ($isInstanceOf(w, "InvokeScriptTransaction"))
486+@Verifier(bq)
487+func br () = {
488+ let v = bq
489+ if ($isInstanceOf(v, "InvokeScriptTransaction"))
492490 then {
493- let bt = w
494- let bu = if ((bt.dApp == j))
495- then if (if ((bt.function == "lockShareTokens"))
491+ let bs = v
492+ let bt = if ((bs.dApp == j))
493+ then if (if ((bs.function == "lockShareTokens"))
496494 then true
497- else (bt.function == "claim"))
495+ else (bs.function == "claim"))
498496 then true
499- else (bt.function == "withdrawShareTokens")
497+ else (bs.function == "withdrawShareTokens")
500498 else false
501- let bv = if ((bt.dApp == i))
502- then if ((bt.function == "lockSWOP"))
499+ let bu = if ((bs.dApp == i))
500+ then if (if ((bs.function == "lockSWOP"))
503501 then true
504- else (bt.function == "withdrawSWOP")
502+ else (bs.function == "withdrawSWOP"))
503+ then true
504+ else (bs.function == "claimAndStakeSWOP")
505505 else false
506- let bw = {
507- let bx = bt.dApp
508- if ($isInstanceOf(bx, "Address"))
506+ let bv = {
507+ let bw = bs.dApp
508+ if ($isInstanceOf(bw, "Address"))
509509 then {
510- let by = bx
511- toString(by)
510+ let bx = bw
511+ toString(bx)
512512 }
513513 else throw("Transaction must have only address")
514514 }
515- let bz = if (containsElement(q, bw))
516- then containsElement(r, bt.function)
515+ let by = if (r(bv))
516+ then containsElement(q, bs.function)
517517 else false
518- let bA = if (if (if (sigVerify(br.bodyBytes, br.proofs[0], d))
518+ let bz = if (if (if (sigVerify(bq.bodyBytes, bq.proofs[0], d))
519519 then true
520- else sigVerify(br.bodyBytes, br.proofs[0], e))
520+ else sigVerify(bq.bodyBytes, bq.proofs[0], e))
521521 then true
522- else sigVerify(br.bodyBytes, br.proofs[0], g))
522+ else sigVerify(bq.bodyBytes, bq.proofs[0], g))
523523 then true
524- else sigVerify(br.bodyBytes, br.proofs[0], br.senderPublicKey)
525- if (if (if (bu)
524+ else sigVerify(bq.bodyBytes, bq.proofs[0], bq.senderPublicKey)
525+ if (if (if (bt)
526526 then true
527- else bz)
527+ else by)
528528 then true
529- else bv)
530- then bA
529+ else bu)
530+ then bz
531531 else false
532532 }
533533 else {
534- let bB = if (sigVerify(br.bodyBytes, br.proofs[0], d))
534+ let bA = if (sigVerify(bq.bodyBytes, bq.proofs[0], d))
535535 then 1
536536 else 0
537- let bC = if (sigVerify(br.bodyBytes, br.proofs[1], e))
537+ let bB = if (sigVerify(bq.bodyBytes, bq.proofs[1], e))
538538 then 1
539539 else 0
540- let bD = if (sigVerify(br.bodyBytes, br.proofs[2], f))
540+ let bC = if (sigVerify(bq.bodyBytes, bq.proofs[2], f))
541541 then 1
542542 else 0
543- (((bB + bC) + bD) >= 2)
543+ (((bA + bB) + bC) >= 2)
544544 }
545545 }
546546

github/deemru/w8io/169f3d6 
231.98 ms