tx · 48t5M35TS5TcK9wTNwVNrVwZDCfDJFnzUVXmZcdvrFor

3PL3TvgimsLFWs3xW4kpVmvRf3c8HX7JMS7:  -0.01400000 Waves

2021.09.13 12:05 [2765983] smart account 3PL3TvgimsLFWs3xW4kpVmvRf3c8HX7JMS7 > SELF 0.00000000 Waves

{ "type": 13, "id": "48t5M35TS5TcK9wTNwVNrVwZDCfDJFnzUVXmZcdvrFor", "fee": 1400000, "feeAssetId": null, "timestamp": 1631523909312, "version": 2, "chainId": 87, "sender": "3PL3TvgimsLFWs3xW4kpVmvRf3c8HX7JMS7", "senderPublicKey": "5jVqgvJACVFibQhE9zUTopGq8uHYdbZMxmihBQ7V6VYm", "proofs": [ "3Qfx5cRi8JAwZ9yhH57SgwK4XqgoJBufENxSz6UHcmBb4bsewmn2sz5FvaVzRGQ3K7GUr3sVYLjFLqUmJngg4qyB" ], "script": "base64:AAIFAAAAAAAAABAIAhIAEgASABIAEgQKAggBAAAAFAAAAAABVAAAAAAAAAAAAgAAAAAIYXNzZXRJZHMJAARMAAAAAgEAAAAgpspUmHPcWVP6FPnnTQyyn4Yy8p9KHAWQMpXaTlJMpNQJAARMAAAAAgEAAAAgtiYpwwT1zlORpA5LdSQvZIxRsfrfr1QpvUjSHSqyqtEFAAAAA25pbAAAAAANQXNzZXRzV2VpZ2h0cwkABEwAAAACAAAAAAAAAAAyCQAETAAAAAIAAAAAAAAAADIFAAAAA25pbAAAAAAVQXNzZXRzV2VpZ2h0c0RlY2ltYWxzAAAAAAAAAAACAAAAABFQb29sVG9rZW5EZWNpbWFscwAAAAAAAAAACAAAAAAIRGVjaW1hbHMJAARMAAAAAgAAAAAAAAAACAkABEwAAAACAAAAAAAAAAAGBQAAAANuaWwAAAAABlNjYWxlcwkABEwAAAACAAAAAAAF9eEACQAETAAAAAIAAAAAAAAPQkAFAAAAA25pbAAAAAADRmVlAAAAAAAAAAAyAAAAAAVTY2FsZQAAAAAAAAAnEAAAAAAVRmVlRGVjaW1hbHNNdWx0aXBsaWVyAAAAAAAAACcQAAAAAA1mZWVBZ2dyZWdhdG9yCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXS8NszvszWENYQ1EQ7u/uIRAXS/J4y3wyAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADHRyeUdldEJpbmFyeQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHAAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgEAAAAAAQAAABZnZXRDdXJyZW50VG9rZW5CYWxhbmNlAAAAAQAAAAl0b2tlblR5cGUEAAAAB3Rva2VuSWQJAAJYAAAAAQkAAZEAAAACBQAAAAhhc3NldElkcwUAAAAJdG9rZW5UeXBlCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAdnbG9iYWxfBQAAAAd0b2tlbklkAgAAAAhfYmFsYW5jZQEAAAAQY2FsY3VsYXRlUElzc3VlZAAAAAIAAAAGYW1vdW50AAAAB3Rva2VuSWQEAAAAB1BzdXBwbHkJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQEAAAAB0JhbGFuY2UJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAAB2dsb2JhbF8JAAJYAAAAAQUAAAAHdG9rZW5JZAIAAAAIX2JhbGFuY2UJAABrAAAAAwUAAAAGYW1vdW50BQAAAAdQc3VwcGx5BQAAAAdCYWxhbmNlAQAAAA1nZXRNaW5QSXNzdWVkAAAAAQAAAAhwYXltZW50cwoBAAAAB2hhbmRsZXIAAAACAAAABWFjY3VtAAAAB2N1cnJlbnQEAAAAB1BJc3N1ZWQJAQAAABBjYWxjdWxhdGVQSXNzdWVkAAAAAggFAAAAB2N1cnJlbnQAAAAGYW1vdW50CQEAAAAFdmFsdWUAAAABCAUAAAAHY3VycmVudAAAAAdhc3NldElkAwMJAAAAAAAAAgUAAAAFYWNjdW0AAAAAAAAAAAAGCQAAZgAAAAIFAAAABWFjY3VtBQAAAAdQSXNzdWVkBQAAAAdQSXNzdWVkBQAAAAVhY2N1bQQAAAAJbWluUElzc2VkBAAAAA0kbGlzdDE0ODUxNTE1BQAAAAhwYXltZW50cwQAAAANJHNpemUxNDg1MTUxNQkAAZAAAAABBQAAAA0kbGlzdDE0ODUxNTE1BAAAAA0kYWNjMDE0ODUxNTE1AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTE0ODUxNTE1AAAAAAAAAAAABQAAAA0kYWNjMDE0ODUxNTE1BAAAAA0kYWNjMTE0ODUxNTE1CQEAAAAHaGFuZGxlcgAAAAIFAAAADSRhY2MwMTQ4NTE1MTUJAAGRAAAAAgUAAAANJGxpc3QxNDg1MTUxNQAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemUxNDg1MTUxNQAAAAAAAAAAAQUAAAANJGFjYzExNDg1MTUxNQQAAAANJGFjYzIxNDg1MTUxNQkBAAAAB2hh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DSRhY2M2MTk0MTE5NzIJAAGRAAAAAgUAAAANJGxpc3QxOTQxMTk3MgAAAAAAAAAABgMJAAAAAAAAAgUAAAANJHNpemUxOTQxMTk3MgAAAAAAAAAABwUAAAANJGFjYzcxOTQxMTk3MgQAAAANJGFjYzgxOTQxMTk3MgkBAAAACGhhbmRsZXIyAAAAAgUAAAANJGFjYzcxOTQxMTk3MgkAAZEAAAACBQAAAA0kbGlzdDE5NDExOTcyAAAAAAAAAAAHAwkAAAAAAAACBQAAAA0kc2l6ZTE5NDExOTcyAAAAAAAAAAAIBQAAAA0kYWNjODE5NDExOTcyBAAAAA0kYWNjOTE5NDExOTcyCQEAAAAIaGFuZGxlcjIAAAACBQAAAA0kYWNjODE5NDExOTcyCQABkQAAAAIFAAAADSRsaXN0MTk0MTE5NzIAAAAAAAAAAAgDCQAAAAAAAAIFAAAADSRzaXplMTk0MTE5NzIAAAAAAAAAAAkFAAAADSRhY2M5MTk0MTE5NzIEAAAADiRhY2MxMDE5NDExOTcyCQEAAAAIaGFuZGxlcjIAAAACBQAAAA0kYWNjOTE5NDExOTcyCQABkQAAAAIFAAAADSRsaXN0MTk0MTE5NzIAAAAAAAAAAAkDCQAAAAAAAAIFAAAADSRzaXplMTk0MTE5NzIAAAAAAAAAAAoFAAAADiRhY2MxMDE5NDExOTcyBAAAAA4kYWNjMTExOTQxMTk3MgkBAAAACGhhbmRsZXIyAAAAAgUAAAAOJGFjYzEwMTk0MTE5NzIJAAGRAAAAAgUAAAANJGxpc3QxOTQxMTk3MgAAAAAAAAAACgkAAAIAAAABAgAAABNMaXN0IHNpemUgZXhjZWVkIDEwBgEAAAATaGFuZGxlUG9vbFRva2Vuc0FkZAAAAAMAAAAHUElzc3VlZAAAAAhwYXltZW50cwAAAAt1c2VyQWRkcmVzcwoBAAAAFWdldFRva2VuUGF5bWVudEFtb3VudAAAAAEAAAAHdG9rZW5JZAoBAAAAB2hhbmRsZXIAAAACAAAABWFjY3VtAAAAB3BheW1lbnQDCQAAAAAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAAB3Rva2VuSWQIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAFYWNjdW0EAAAADSRsaXN0MjI3NzIzMDcF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b2tlbkNoYW5nZQAAAAIFAAAADSRhY2MzMzUwNjM1NDcJAAGRAAAAAgUAAAANJGxpc3QzNTA2MzU0NwAAAAAAAAAAAwMJAAAAAAAAAgUAAAANJHNpemUzNTA2MzU0NwAAAAAAAAAABAUAAAANJGFjYzQzNTA2MzU0NwQAAAANJGFjYzUzNTA2MzU0NwkBAAAAEWhhbmRsZVRva2VuQ2hhbmdlAAAAAgUAAAANJGFjYzQzNTA2MzU0NwkAAZEAAAACBQAAAA0kbGlzdDM1MDYzNTQ3AAAAAAAAAAAEAwkAAAAAAAACBQAAAA0kc2l6ZTM1MDYzNTQ3AAAAAAAAAAAFBQAAAA0kYWNjNTM1MDYzNTQ3BAAAAA0kYWNjNjM1MDYzNTQ3CQEAAAARaGFuZGxlVG9rZW5DaGFuZ2UAAAACBQAAAA0kYWNjNTM1MDYzNTQ3CQABkQAAAAIFAAAADSRsaXN0MzUwNjM1NDcAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplMzUwNjM1NDcAAAAAAAAAAAYFAAAADSRhY2M2MzUwNjM1NDcEAAAADSRhY2M3MzUwNjM1NDcJAQAAABFoYW5kbGVUb2tlbkNoYW5nZQAAAAIFAAAADSRhY2M2MzUwNjM1NDcJAAGRAAAAAgUAAAANJGxpc3QzNTA2MzU0NwAAAAAAAAAABgMJAAAAAAAAAgUAAAANJHNpemUzNTA2MzU0NwAAAAAAAAAABwUAAAANJGFjYzczNTA2MzU0NwQAAAANJGFjYzgzNTA2MzU0NwkBAAAAEWhhbmRsZVRva2VuQ2hhbmdlAAAAAgUAAAANJGFjYzczNTA2MzU0NwkAAZEAAAACBQAAAA0kbGlzdDM1MDYzNTQ3AAAAAAAAAAAHAwkAAAAAAAACBQAAAA0kc2l6ZTM1MDYzNTQ3AAAAAAAAAAAIBQAAAA0kYWNjODM1MDYzNTQ3BAAAAA0kYWNjOTM1MDYzNTQ3CQEAAAARaGFuZGxlVG9rZW5DaGFuZ2UAAAACBQAAAA0kYWNjODM1MDYzNTQ3CQABkQAAAAIFAAAADSRsaXN0MzUwNjM1NDcAAAAAAAAAAAgDCQAAAAAAAAIFAAAADSRzaXplMzUwNjM1NDcAAAAAAAAAAAkFAAAADSRhY2M5MzUwNjM1NDcEAAAADiRhY2MxMDM1MDYzNTQ3CQEAAAARaGFuZGxlVG9rZW5DaGFuZ2UAAAACBQAAAA0kYWNjOTM1MDYzNTQ3CQABkQAAAAIFAAAADSRsaXN0MzUwNjM1NDcAAAAAAAAAAAkDCQAAAAAAAAIFAAAADSRzaXplMzUwNjM1NDcAAAAAAAAAAAoFAAAADiRhY2MxMDM1MDYzNTQ3BAAAAA4kYWNjMTEzNTA2MzU0NwkBAAAAEWhhbmRsZVRva2VuQ2hhbmdlAAAAAgUAAAAOJGFjYzEwMzUwNjM1NDcJAAGRAAAAAgUAAAANJGxpc3QzNTA2MzU0NwAAAAAAAAAACgkAAAIAAAABAgAAABNMaXN0IHNpemUgZXhjZWVkIDEwBAAAAA0kbGlzdDM1NTQzNTk2BQAAAAhhc3NldElkcwQAAAANJHNpemUzNTU0MzU5NgkAAZAAAAABBQAAAA0kbGlzdDM1NTQzNTk2BAAAAA0kYWNjMDM1NTQzNTk2BQAAAANuaWwDCQAAAAAAAAIFAAAADSRzaXplMzU1NDM1OTYAAAAAAAAAAAAFAAAADSRhY2MwMzU1NDM1OTYEAAAADSRhY2MxMzU1NDM1OTYJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjMDM1NTQzNTk2CQABkQAAAAIFAAAADSRsaXN0MzU1NDM1OTYAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplMzU1NDM1OTYAAAAAAAAAAAEFAAAADSRhY2MxMzU1NDM1OTYEAAAADSRhY2MyMzU1NDM1OTYJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjMTM1NTQzNTk2CQABkQAAAAIFAAAADSRsaXN0MzU1NDM1OTYAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplMzU1NDM1OTYAAAAAAAAAAAIFAAAADSRhY2MyMzU1NDM1OTYEAAAADSRhY2MzMzU1NDM1OTYJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjMjM1NTQzNTk2CQABkQAAAAIFAAAADSRsaXN0MzU1NDM1OTYAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplMzU1NDM1OTYAAAAAAAAAAAMFAAAADSRhY2MzMzU1NDM1OTYEAAAADSRhY2M0MzU1NDM1OTYJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjMzM1NTQzNTk2CQABkQAAAAIFAAAADSRsaXN0MzU1NDM1OTYAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplMzU1NDM1OTYAAAAAAAAAAAQFAAAADSRhY2M0MzU1NDM1OTYEAAAADSRhY2M1MzU1NDM1OTYJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjNDM1NTQzNTk2CQABkQAAAAIFAAAADSRsaXN0MzU1NDM1OTYAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplMzU1NDM1OTYAAAAAAAAAAAUFAAAADSRhY2M1MzU1NDM1OTYEAAAADSRhY2M2MzU1NDM1OTYJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjNTM1NTQzNTk2CQABkQAAAAIFAAAADSRsaXN0MzU1NDM1OTYAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplMzU1NDM1OTYAAAAAAAAAAAYFAAAADSRhY2M2MzU1NDM1OTYEAAAADSRhY2M3MzU1NDM1OTYJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjNjM1NTQzNTk2CQABkQAAAAIFAAAADSRsaXN0MzU1NDM1OTYAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplMzU1NDM1OTYAAAAAAAAAAAcFAAAADSRhY2M3MzU1NDM1OTYEAAAADSRhY2M4MzU1NDM1OTYJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjNzM1NTQzNTk2CQABkQAAAAIFAAAADSRsaXN0MzU1NDM1OTYAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplMzU1NDM1OTYAAAAAAAAAAAgFAAAADSRhY2M4MzU1NDM1OTYEAAAADSRhY2M5MzU1NDM1OTYJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjODM1NTQzNTk2CQABkQAAAAIFAAAADSRsaXN0MzU1NDM1OTYAAAAAAAAAAAgDCQAAAAAAAAIFAAAADSRzaXplMzU1NDM1OTYAAAAAAAAAAAkFAAAADSRhY2M5MzU1NDM1OTYEAAAADiRhY2MxMDM1NTQzNTk2CQEAAAASaGFuZGxlVG9rZW5DaGFuZ2UyAAAAAgUAAAANJGFjYzkzNTU0MzU5NgkAAZEAAAACBQAAAA0kbGlzdDM1NTQzNTk2AAAAAAAAAAAJAwkAAAAAAAACBQAAAA0kc2l6ZTM1NTQzNTk2AAAAAAAAAAAKBQAAAA4kYWNjMTAzNTU0MzU5NgQAAAAOJGFjYzExMzU1NDM1OTYJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA4kYWNjMTAzNTU0MzU5NgkAAZEAAAACBQAAAA0kbGlzdDM1NTQzNTk2AAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTABAAAAFmhhbmRsZVBvb2xUb2tlbnNSZWRlZW0AAAACAAAACVBSZWRlZW1lZAAAAAt1c2VyQWRkcmVzcwoBAAAAEWhhbmRsZVRva2VuUmVkZWVtAAAAAgAAAAVhY2N1bQAAAAd0b2tlbklkBAAAAAJCawkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAHZ2xvYmFsXwkAAlgAAAABBQAAAAd0b2tlbklkAgAAAAhfYmFsYW5jZQQAAAAHUFN1cHBseQkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAQAAAANdG9rZW5EZWNpbWFscwkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAHZ2xvYmFsXwkAAlgAAAABBQAAAAd0b2tlbklkAgAAAAZfc2NhbGUEAAAABmFtb3VudAkAAGsAAAADCQAAZQAAAAIFAAAADXRva2VuRGVjaW1hbHMJAABrAAAAAwkAAGUAAAACBQAAAAdQU3VwcGx5BQAAAAlQUmVkZWVtZWQFAAAADXRva2VuRGVjaW1hbHMFAAAAB1BTdXBwbHkFAAAAAkJrBQAAAA10b2tlbkRlY2ltYWxzCQAETgAAAAIFAAAABWFjY3VtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAHZ2xvYmFsXwkAAlgAAAABBQAAAAd0b2tlbklkAgAAAAhfYmFsYW5jZQkA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BAAAAA0kYWNjODQ2Nzg0NzE5CQEAAAARaGFuZGxlVG9rZW5SZWRlZW0AAAACBQAAAA0kYWNjNzQ2Nzg0NzE5CQABkQAAAAIFAAAADSRsaXN0NDY3ODQ3MTkAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplNDY3ODQ3MTkAAAAAAAAAAAgFAAAADSRhY2M4NDY3ODQ3MTkEAAAADSRhY2M5NDY3ODQ3MTkJAQAAABFoYW5kbGVUb2tlblJlZGVlbQAAAAIFAAAADSRhY2M4NDY3ODQ3MTkJAAGRAAAAAgUAAAANJGxpc3Q0Njc4NDcxOQAAAAAAAAAACAMJAAAAAAAAAgUAAAANJHNpemU0Njc4NDcxOQAAAAAAAAAACQUAAAANJGFjYzk0Njc4NDcxOQQAAAAOJGFjYzEwNDY3ODQ3MTkJAQAAABFoYW5kbGVUb2tlblJlZGVlbQAAAAIFAAAADSRhY2M5NDY3ODQ3MTkJAAGRAAAAAgUAAAANJGxpc3Q0Njc4NDcxOQAAAAAAAAAACQMJAAAAAAAAAgUAAAANJHNpemU0Njc4NDcxOQAAAAAAAAAACgUAAAAOJGFjYzEwNDY3ODQ3MTkEAAAADiRhY2MxMTQ2Nzg0NzE5CQEAAAARaGFuZGxlVG9rZW5SZWRlZW0AAAACBQAAAA4kYWNjMTA0Njc4NDcxOQkAAZEAAAACBQAAAA0kbGlzdDQ2Nzg0NzE5AAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTAEAAAADSRsaXN0NDcyNTQ3NjcFAAAACGFzc2V0SWRzBAAAAA0kc2l6ZTQ3MjU0NzY3CQABkAAAAAEFAAAADSRsaXN0NDcyNTQ3NjcEAAAADSRhY2MwNDcyNTQ3NjcFAAAAA25pbAMJAAAAAAAAAgUAAAANJHNpemU0NzI1NDc2NwAAAAAAAAAAAAUAAAANJGFjYzA0NzI1NDc2NwQAAAANJGFjYzE0NzI1NDc2NwkBAAAAEmhhbmRsZVRva2VuUmVkZWVtMgAAAAIFAAAADSRhY2MwNDcyNTQ3NjcJAAGRAAAAAgUAAAANJGxpc3Q0NzI1NDc2NwAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemU0NzI1NDc2NwAAAAAAAAAAAQUAAAANJGFjYzE0NzI1NDc2NwQAAAANJGFjYzI0NzI1NDc2NwkBAAAAEmhhbmRsZVRva2VuUmVkZWVtMgAAAAIFAAAADSRhY2MxNDcyNTQ3NjcJAAGRAAAAAgUAAAANJGxpc3Q0NzI1NDc2NwAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemU0NzI1NDc2NwAAAAAAAAAAAgUAAAANJGFjYzI0NzI1NDc2NwQAAAANJGFjYzM0NzI1NDc2NwkBAAAAEmhhbmRsZVRva2VuUmVkZWVtMgAAAAIFAAAADSRhY2MyNDcyNTQ3NjcJAAGRAAAAAgUAAAANJGxpc3Q0NzI1NDc2NwAAAAAAAAAAAgMJAAAAAAAAAgUAAAANJHNpemU0NzI1NDc2NwAAAAAAAAAAAwUAAAANJGFjYzM0NzI1NDc2NwQAAAANJGFjYzQ0NzI1NDc2NwkBAAAAEmhhbmRsZVRva2VuUmVkZWVtMgAAAAIFAAAADSRhY2MzNDcyNTQ3NjcJAAGRAAAAAgUAAAANJGxpc3Q0NzI1NDc2NwAAAAAAAAAAAwMJAAAAAAAAAgUAAAANJHNpemU0NzI1NDc2NwAAAAAAAAAABAUAAAANJGFjYzQ0NzI1NDc2NwQAAAANJGFjYzU0NzI1NDc2NwkBAAAAEmhhbmRsZVRva2VuUmVkZWVtMgAAAAIFAAAADSRhY2M0NDcyNTQ3NjcJAAGRAAAAAgUAAAANJGxpc3Q0NzI1NDc2NwAAAAAAAAAABAMJAAAAAAAAAgUAAAANJHNpemU0NzI1NDc2NwAAAAAAAAAABQUAAAANJGFjYzU0NzI1NDc2NwQAAAANJGFjYzY0NzI1NDc2NwkBAAAAEmhhbmRsZVRva2VuUmVkZWVtMgAAAAIFAAAADSRhY2M1NDcyNTQ3NjcJAAGRAAAAAgUAAAANJGxpc3Q0NzI1NDc2NwAAAAAAAAAABQMJAAAAAAAAAgUAAAANJHNpemU0NzI1NDc2NwAAAAAAAAAABgUAAAANJGFjYzY0NzI1NDc2NwQAAAANJGFjYzc0NzI1NDc2NwkBAAAAEmhhbmRsZVRva2VuUmVkZWVtMgAAAAIFAAAADSRhY2M2NDcyNTQ3NjcJAAGRAAAAAgUAAAANJGxpc3Q0NzI1NDc2NwAAAAAAAAAABgMJAAAAAAAAAgUAAAANJHNpemU0NzI1NDc2NwAAAAAAAAAABwUAAAANJGFjYzc0NzI1NDc2NwQAAAANJGFjYzg0NzI1NDc2NwkBAAAAEmhhbmRsZVRva2VuUmVkZWVtMgAAAAIFAAAADSRhY2M3NDcyNTQ3NjcJAAGRAAAAAgUAAAANJGxpc3Q0NzI1NDc2NwAAAAAAAAAABwMJAAAAAAAAAgUAAAANJHNpemU0NzI1NDc2NwAAAAAAAAAACAUAAAANJGFjYzg0NzI1NDc2NwQAAAANJGFjYzk0NzI1NDc2NwkBAAAAEmhhbmRsZVRva2VuUmVkZWVtMgAAAAIFAAAADSRhY2M4NDcyNTQ3NjcJAAGRAAAAAgUAAAANJGxpc3Q0NzI1NDc2NwAAAAAAAAAACAMJAAAAAAAAAgUAAAANJHNpemU0NzI1NDc2NwAAAAAAAAAACQUAAAANJGFjYzk0NzI1NDc2NwQAAAAOJGFjYzEwNDcyNTQ3NjcJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA0kYWNjOTQ3MjU0NzY3CQABkQAAAAIFAAAADSRsaXN0NDcyNTQ3NjcAAAAAAAAAAAkDCQAAAAAAAAIFAAAADSRzaXplNDcyNTQ3NjcAAAAAAAAAAAoFAAAADiRhY2MxMDQ3MjU0NzY3BAAAAA4kYWNjMTE0NzI1NDc2NwkBAAAAEmhhbmRsZVRva2VuUmVkZWVtMgAAAAIFAAAADiRhY2MxMDQ3MjU0NzY3CQABkQAAAAIFAAAADSRsaXN0NDcyNTQ3NjcAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAEAAAASY2FsY3VsYXRlT3V0QW1vdW50AAAAAwAAAAhBbW91bnRJbgAAAAdhc3NldEluAAAACGFzc2V0T3V0BAAAAAdJbmRleEluCQEAAAAFdmFsdWUAAAABCQAETwAAAAIFAAAACGFzc2V0SWRzBQAAAAdhc3NldEluBAAAAAhJbmRleE91dAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAhhc3NldElkcwUAAAAIYXNzZXRPdXQEAAAACUJhbGFuY2VJbgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAHZ2xvYmFsXwkAAlgAAAABBQAAAAdhc3NldEluAgAAAAhfYmFsYW5jZQQAAAAKQmFs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Y2MxMTY0MTM2NDQzCQEAAAAHaGFuZGxlcgAAAAIFAAAADiRhY2MxMDY0MTM2NDQzCQABkQAAAAIFAAAADSRsaXN0NjQxMzY0NDMAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAMJAABmAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABBnbG9iYWxfd2FzSW5pdGVkAAAAAAAAAAABCQAAAgAAAAECAAAAE3Bvb2wgYWxyZWFkeSBpbml0ZWQEAAAAEWluaXRpYWxQb29sVG9rZW5zCQEAAAAZY2FsY3VsYXRlUG9vbFRva2Vuc0Ftb3VudAAAAAEIBQAAAAFpAAAACHBheW1lbnRzBAAAAAtwb29sVG9rZW5JZAkBAAAAEUBleHRyTmF0aXZlKDEwNTIpAAAAAgUAAAAEdGhpcwIAAAATZ2xvYmFsX3Bvb2xUb2tlbl9pZAQAAAAQcG9vbFRva2VuUmVpc3N1ZQkBAAAAB1JlaXNzdWUAAAADBQAAAAtwb29sVG9rZW5JZAUAAAARaW5pdGlhbFBvb2xUb2tlbnMGCQAETgAAAAIJAQAAAAtwcmVwYXJlTGlzdAAAAAAJAARMAAAAAgUAAAAQcG9vbFRva2VuUmVpc3N1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQFAAAAEWluaXRpYWxQb29sVG9rZW5zCQAETAAAAAIJAQAAAAtCaW5hcnlFbnRyeQAAAAICAAAAE2dsb2JhbF9wb29sVG9rZW5faWQFAAAAC3Bvb2xUb2tlbklkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAARaW5pdGlhbFBvb2xUb2tlbnMFAAAAC3Bvb2xUb2tlbklkBQAAAANuaWwAAAABaQEAAAAMYWRkTGlxdWlkaXR5AAAAAAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMFAAAAAVQJAAACAAAAAQkAASwAAAACAgAAADt5b3UgbmVlZCB0byBhdHRhY2ggYWxsIHBvb2wgdG9rZW5zLiBhbW91bnQgb2YgcG9vbCB0b2tlbnM6IAkAAaQAAAABBQAAAAFUAwkBAAAAASEAAAABCQEAAAATY2hlY2tUb2tlbnNWYWxpZGl0eQAAAAEIBQAAAAFpAAAACHBheW1lbnRzCQAAAgAAAAECAAAAFXdyb25nIGFzc2V0cyBhdHRhY2hlZAQAAAAHUElzc3VlZAkBAAAADWdldE1pblBJc3N1ZWQAAAABCAUAAAABaQAAAAhwYXltZW50cwQAAAAGcmVzdWx0CQEAAAATaGFuZGxlUG9vbFRva2Vuc0FkZAAAAAMFAAAAB1BJc3N1ZWQIBQAAAAFpAAAACHBheW1lbnRzCAUAAAABaQAAAAZjYWxsZXIEAAAAB3JlaXNzdWUJAQAAAAdSZWlzc3VlAAAAAwkBAAAADHRyeUdldEJpbmFyeQAAAAECAAAAE2dsb2JhbF9wb29sVG9rZW5faWQFAAAAB1BJc3N1ZWQGCQAETgAAAAIFAAAABnJlc3VsdAkABEwAAAACBQAAAAdyZWlzc3VlCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAHUElzc3VlZAkBAAAADHRyeUdldEJpbmFyeQAAAAECAAAAE2dsb2JhbF9wb29sVG9rZW5faWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50CQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQFAAAAB1BJc3N1ZWQFAAAAA25pbAAAAAFpAQAAAA9yZW1vdmVMaXF1aWRpdHkAAAAABAAAAANwbXQJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAADCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQJAQAAAAx0cnlHZXRCaW5hcnkAAAABAgAAABNnbG9iYWxfcG9vbFRva2VuX2lkCQAAAgAAAAECAAAAHnBsZWFzZSBhdHRhY2ggcG9vbCBzaGFyZSB0b2tlbgQAAAAJUFJlZGVlbWVkCAUAAAADcG10AAAABmFtb3VudAQAAAAGcmVzdWx0CQEAAAAWaGFuZGxlUG9vbFRva2Vuc1JlZGVlbQAAAAIFAAAACVBSZWRlZW1lZAgFAAAAAWkAAAAGY2FsbGVyCQAETgAAAAIFAAAABnJlc3VsdAkABEwAAAACCQEAAAAEQnVybgAAAAIJAQAAAAx0cnlHZXRCaW5hcnkAAAABAgAAABNnbG9iYWxfcG9vbFRva2VuX2lkBQAAAAlQUmVkZWVtZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAF2dsb2JhbF9wb29sVG9rZW5fYW1vdW50CQAAZQAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQFAAAACVBSZWRlZW1lZAUAAAADbmlsAAAAAWkBAAAABHN3YXAAAAACAAAACGFzc2V0T3V0AAAAB21pbmltdW0EAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAIQW1vdW50SW4JAQAAAAV2YWx1ZQAAAAEICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAQAAAAHQXNzZXRJbgkBAAAABXZhbHVlAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAhBc3NldE91dAkAAlkAAAABBQAAAAhhc3NldE91dAQAAAAJQW1vdW50T3V0CQEAAAASY2FsY3VsYXRlT3V0QW1vdW50AAAAAwUAAAAIQW1vdW50SW4FAAAAB0Fzc2V0SW4FAAAACEFzc2V0T3V0AwkAAGYAAAACBQAAAAdtaW5pbXVtBQAAAAlBbW91bnRPdXQJAAACAAAAAQkAASwAAAACAgAAACthbW91bnQgdG8gcmVjaWV2ZSBpdCBsb3dlciB0aGFuIGdpdmVuIG9uZTogCQABpAAAAAEFAAAACUFtb3VudE91dAMJAABmAAAAAgAAAAAAAAAAAAkAAGUAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAdnbG9iYWxfCQACWAAAAAEFAAAACEFzc2V0T3V0AgAAAAhfYmFsYW5jZQUAAAAJQW1vdW50T3V0CQAAAgAAAAECAAAAG2NvbnRyYWN0IGlzIG91dCBvZiByZXNlcnZlcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAAB2dsb2JhbF8JAAJYAAAAAQUAAAAIQXNzZXRPdXQCAAAACF9iYWxhbmNlCQAAZQAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAAB2dsb2JhbF8JAAJYAAAAAQUAAAAIQXNzZXRPdXQCAAAACF9iYWxhbmNlBQAAAAlBbW91bnRPdXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAdnbG9iYWxfCQACWAAAAAEFAAAAB0Fzc2V0SW4CAAAACF9iYWxhbmNlCQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAAB2dsb2JhbF8JAAJYAAAAAQUAAAAHQXNzZXRJbgIAAAAIX2JhbGFuY2UFAAAACEFtb3VudEluCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAJQW1vdW50T3V0BQAAAAhBc3NldE91dAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkSAYbp", "height": 2765983, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8niMRya5FGQLQA3Fd4gusvmZmP1pubdTBDhXNpee8iMP Next: xAxjGekNg24nkebaBZFE7f6pH4gXVxSsLR7GZrzPBEn Diff:
OldNewDifferences
471471 }
472472
473473
474+func handlePoolTokensRedeem (PRedeemed,userAddress) = {
475+ func handleTokenRedeem (accum,tokenId) = {
476+ let Bk = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance"))
477+ let PSupply = tryGetInteger("global_poolToken_amount")
478+ let tokenDecimals = tryGetInteger((("global_" + toBase58String(tokenId)) + "_scale"))
479+ let amount = fraction((tokenDecimals - fraction((PSupply - PRedeemed), tokenDecimals, PSupply)), Bk, tokenDecimals)
480+ (accum ++ [IntegerEntry((("global_" + toBase58String(tokenId)) + "_balance"), (Bk - amount))])
481+ }
482+
483+ func handleTokenRedeem2 (accum,tokenId) = {
484+ let Bk = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance"))
485+ let PSupply = tryGetInteger("global_poolToken_amount")
486+ let tokenDecimals = tryGetInteger((("global_" + toBase58String(tokenId)) + "_scale"))
487+ let amount = fraction((tokenDecimals - fraction((PSupply - PRedeemed), tokenDecimals, PSupply)), Bk, tokenDecimals)
488+ (accum ++ [ScriptTransfer(userAddress, amount, tokenId)])
489+ }
490+
491+ ({
492+ let $list46784719 = assetIds
493+ let $size46784719 = size($list46784719)
494+ let $acc046784719 = nil
495+ if (($size46784719 == 0))
496+ then $acc046784719
497+ else {
498+ let $acc146784719 = handleTokenRedeem($acc046784719, $list46784719[0])
499+ if (($size46784719 == 1))
500+ then $acc146784719
501+ else {
502+ let $acc246784719 = handleTokenRedeem($acc146784719, $list46784719[1])
503+ if (($size46784719 == 2))
504+ then $acc246784719
505+ else {
506+ let $acc346784719 = handleTokenRedeem($acc246784719, $list46784719[2])
507+ if (($size46784719 == 3))
508+ then $acc346784719
509+ else {
510+ let $acc446784719 = handleTokenRedeem($acc346784719, $list46784719[3])
511+ if (($size46784719 == 4))
512+ then $acc446784719
513+ else {
514+ let $acc546784719 = handleTokenRedeem($acc446784719, $list46784719[4])
515+ if (($size46784719 == 5))
516+ then $acc546784719
517+ else {
518+ let $acc646784719 = handleTokenRedeem($acc546784719, $list46784719[5])
519+ if (($size46784719 == 6))
520+ then $acc646784719
521+ else {
522+ let $acc746784719 = handleTokenRedeem($acc646784719, $list46784719[6])
523+ if (($size46784719 == 7))
524+ then $acc746784719
525+ else {
526+ let $acc846784719 = handleTokenRedeem($acc746784719, $list46784719[7])
527+ if (($size46784719 == 8))
528+ then $acc846784719
529+ else {
530+ let $acc946784719 = handleTokenRedeem($acc846784719, $list46784719[8])
531+ if (($size46784719 == 9))
532+ then $acc946784719
533+ else {
534+ let $acc1046784719 = handleTokenRedeem($acc946784719, $list46784719[9])
535+ if (($size46784719 == 10))
536+ then $acc1046784719
537+ else {
538+ let $acc1146784719 = handleTokenRedeem($acc1046784719, $list46784719[10])
539+ throw("List size exceed 10")
540+ }
541+ }
542+ }
543+ }
544+ }
545+ }
546+ }
547+ }
548+ }
549+ }
550+ }
551+ } ++ {
552+ let $list47254767 = assetIds
553+ let $size47254767 = size($list47254767)
554+ let $acc047254767 = nil
555+ if (($size47254767 == 0))
556+ then $acc047254767
557+ else {
558+ let $acc147254767 = handleTokenRedeem2($acc047254767, $list47254767[0])
559+ if (($size47254767 == 1))
560+ then $acc147254767
561+ else {
562+ let $acc247254767 = handleTokenRedeem2($acc147254767, $list47254767[1])
563+ if (($size47254767 == 2))
564+ then $acc247254767
565+ else {
566+ let $acc347254767 = handleTokenRedeem2($acc247254767, $list47254767[2])
567+ if (($size47254767 == 3))
568+ then $acc347254767
569+ else {
570+ let $acc447254767 = handleTokenRedeem2($acc347254767, $list47254767[3])
571+ if (($size47254767 == 4))
572+ then $acc447254767
573+ else {
574+ let $acc547254767 = handleTokenRedeem2($acc447254767, $list47254767[4])
575+ if (($size47254767 == 5))
576+ then $acc547254767
577+ else {
578+ let $acc647254767 = handleTokenRedeem2($acc547254767, $list47254767[5])
579+ if (($size47254767 == 6))
580+ then $acc647254767
581+ else {
582+ let $acc747254767 = handleTokenRedeem2($acc647254767, $list47254767[6])
583+ if (($size47254767 == 7))
584+ then $acc747254767
585+ else {
586+ let $acc847254767 = handleTokenRedeem2($acc747254767, $list47254767[7])
587+ if (($size47254767 == 8))
588+ then $acc847254767
589+ else {
590+ let $acc947254767 = handleTokenRedeem2($acc847254767, $list47254767[8])
591+ if (($size47254767 == 9))
592+ then $acc947254767
593+ else {
594+ let $acc1047254767 = handleTokenRedeem2($acc947254767, $list47254767[9])
595+ if (($size47254767 == 10))
596+ then $acc1047254767
597+ else {
598+ let $acc1147254767 = handleTokenRedeem2($acc1047254767, $list47254767[10])
599+ throw("List size exceed 10")
600+ }
601+ }
602+ }
603+ }
604+ }
605+ }
606+ }
607+ }
608+ }
609+ }
610+ }
611+ })
612+ }
613+
614+
474615 func calculateOutAmount (AmountIn,assetIn,assetOut) = {
475616 let IndexIn = value(indexOf(assetIds, assetIn))
476617 let IndexOut = value(indexOf(assetIds, assetOut))
490631 func prepareList () = {
491632 func handler (accum,n) = (accum ++ [IntegerEntry((("global_" + toBase58String(value(n.assetId))) + "_amount"), n.amount)])
492633
493- let $list47274760 = i.payments
494- let $size47274760 = size($list47274760)
495- let $acc047274760 = nil
496- if (($size47274760 == 0))
497- then $acc047274760
634+ let $list58985931 = i.payments
635+ let $size58985931 = size($list58985931)
636+ let $acc058985931 = nil
637+ if (($size58985931 == 0))
638+ then $acc058985931
498639 else {
499- let $acc147274760 = handler($acc047274760, $list47274760[0])
500- if (($size47274760 == 1))
501- then $acc147274760
640+ let $acc158985931 = handler($acc058985931, $list58985931[0])
641+ if (($size58985931 == 1))
642+ then $acc158985931
502643 else {
503- let $acc247274760 = handler($acc147274760, $list47274760[1])
504- if (($size47274760 == 2))
505- then $acc247274760
644+ let $acc258985931 = handler($acc158985931, $list58985931[1])
645+ if (($size58985931 == 2))
646+ then $acc258985931
506647 else {
507- let $acc347274760 = handler($acc247274760, $list47274760[2])
508- if (($size47274760 == 3))
509- then $acc347274760
648+ let $acc358985931 = handler($acc258985931, $list58985931[2])
649+ if (($size58985931 == 3))
650+ then $acc358985931
510651 else {
511- let $acc447274760 = handler($acc347274760, $list47274760[3])
512- if (($size47274760 == 4))
513- then $acc447274760
652+ let $acc458985931 = handler($acc358985931, $list58985931[3])
653+ if (($size58985931 == 4))
654+ then $acc458985931
514655 else {
515- let $acc547274760 = handler($acc447274760, $list47274760[4])
516- if (($size47274760 == 5))
517- then $acc547274760
656+ let $acc558985931 = handler($acc458985931, $list58985931[4])
657+ if (($size58985931 == 5))
658+ then $acc558985931
518659 else {
519- let $acc647274760 = handler($acc547274760, $list47274760[5])
520- if (($size47274760 == 6))
521- then $acc647274760
660+ let $acc658985931 = handler($acc558985931, $list58985931[5])
661+ if (($size58985931 == 6))
662+ then $acc658985931
522663 else {
523- let $acc747274760 = handler($acc647274760, $list47274760[6])
524- if (($size47274760 == 7))
525- then $acc747274760
664+ let $acc758985931 = handler($acc658985931, $list58985931[6])
665+ if (($size58985931 == 7))
666+ then $acc758985931
526667 else {
527- let $acc847274760 = handler($acc747274760, $list47274760[7])
528- if (($size47274760 == 8))
529- then $acc847274760
668+ let $acc858985931 = handler($acc758985931, $list58985931[7])
669+ if (($size58985931 == 8))
670+ then $acc858985931
530671 else {
531- let $acc947274760 = handler($acc847274760, $list47274760[8])
532- if (($size47274760 == 9))
533- then $acc947274760
672+ let $acc958985931 = handler($acc858985931, $list58985931[8])
673+ if (($size58985931 == 9))
674+ then $acc958985931
534675 else {
535- let $acc1047274760 = handler($acc947274760, $list47274760[9])
536- if (($size47274760 == 10))
537- then $acc1047274760
676+ let $acc1058985931 = handler($acc958985931, $list58985931[9])
677+ if (($size58985931 == 10))
678+ then $acc1058985931
538679 else {
539- let $acc1147274760 = handler($acc1047274760, $list47274760[10])
680+ let $acc1158985931 = handler($acc1058985931, $list58985931[10])
540681 throw("List size exceed 10")
541682 }
542683 }
559700 else accum
560701
561702 let Token = {
562- let $list50825113 = assetIds
563- let $size50825113 = size($list50825113)
564- let $acc050825113 = 1
565- if (($size50825113 == 0))
566- then $acc050825113
703+ let $list62536284 = assetIds
704+ let $size62536284 = size($list62536284)
705+ let $acc062536284 = 1
706+ if (($size62536284 == 0))
707+ then $acc062536284
567708 else {
568- let $acc150825113 = handler2($acc050825113, $list50825113[0])
569- if (($size50825113 == 1))
570- then $acc150825113
709+ let $acc162536284 = handler2($acc062536284, $list62536284[0])
710+ if (($size62536284 == 1))
711+ then $acc162536284
571712 else {
572- let $acc250825113 = handler2($acc150825113, $list50825113[1])
573- if (($size50825113 == 2))
574- then $acc250825113
713+ let $acc262536284 = handler2($acc162536284, $list62536284[1])
714+ if (($size62536284 == 2))
715+ then $acc262536284
575716 else {
576- let $acc350825113 = handler2($acc250825113, $list50825113[2])
577- if (($size50825113 == 3))
578- then $acc350825113
717+ let $acc362536284 = handler2($acc262536284, $list62536284[2])
718+ if (($size62536284 == 3))
719+ then $acc362536284
579720 else {
580- let $acc450825113 = handler2($acc350825113, $list50825113[3])
581- if (($size50825113 == 4))
582- then $acc450825113
721+ let $acc462536284 = handler2($acc362536284, $list62536284[3])
722+ if (($size62536284 == 4))
723+ then $acc462536284
583724 else {
584- let $acc550825113 = handler2($acc450825113, $list50825113[4])
585- if (($size50825113 == 5))
586- then $acc550825113
725+ let $acc562536284 = handler2($acc462536284, $list62536284[4])
726+ if (($size62536284 == 5))
727+ then $acc562536284
587728 else {
588- let $acc650825113 = handler2($acc550825113, $list50825113[5])
589- if (($size50825113 == 6))
590- then $acc650825113
729+ let $acc662536284 = handler2($acc562536284, $list62536284[5])
730+ if (($size62536284 == 6))
731+ then $acc662536284
591732 else {
592- let $acc750825113 = handler2($acc650825113, $list50825113[6])
593- if (($size50825113 == 7))
594- then $acc750825113
733+ let $acc762536284 = handler2($acc662536284, $list62536284[6])
734+ if (($size62536284 == 7))
735+ then $acc762536284
595736 else {
596- let $acc850825113 = handler2($acc750825113, $list50825113[7])
597- if (($size50825113 == 8))
598- then $acc850825113
737+ let $acc862536284 = handler2($acc762536284, $list62536284[7])
738+ if (($size62536284 == 8))
739+ then $acc862536284
599740 else {
600- let $acc950825113 = handler2($acc850825113, $list50825113[8])
601- if (($size50825113 == 9))
602- then $acc950825113
741+ let $acc962536284 = handler2($acc862536284, $list62536284[8])
742+ if (($size62536284 == 9))
743+ then $acc962536284
603744 else {
604- let $acc1050825113 = handler2($acc950825113, $list50825113[9])
605- if (($size50825113 == 10))
606- then $acc1050825113
745+ let $acc1062536284 = handler2($acc962536284, $list62536284[9])
746+ if (($size62536284 == 10))
747+ then $acc1062536284
607748 else {
608- let $acc1150825113 = handler2($acc1050825113, $list50825113[10])
749+ let $acc1162536284 = handler2($acc1062536284, $list62536284[10])
609750 throw("List size exceed 10")
610751 }
611752 }
622763 (accum * pow(pmt.amount, Decimals[Token], AssetsWeights[Token], AssetsWeightsDecimals, PoolTokenDecimals, FLOOR))
623764 }
624765
625- let $list52425272 = payments
626- let $size52425272 = size($list52425272)
627- let $acc052425272 = 1
628- if (($size52425272 == 0))
629- then $acc052425272
766+ let $list64136443 = payments
767+ let $size64136443 = size($list64136443)
768+ let $acc064136443 = 1
769+ if (($size64136443 == 0))
770+ then $acc064136443
630771 else {
631- let $acc152425272 = handler($acc052425272, $list52425272[0])
632- if (($size52425272 == 1))
633- then $acc152425272
772+ let $acc164136443 = handler($acc064136443, $list64136443[0])
773+ if (($size64136443 == 1))
774+ then $acc164136443
634775 else {
635- let $acc252425272 = handler($acc152425272, $list52425272[1])
636- if (($size52425272 == 2))
637- then $acc252425272
776+ let $acc264136443 = handler($acc164136443, $list64136443[1])
777+ if (($size64136443 == 2))
778+ then $acc264136443
638779 else {
639- let $acc352425272 = handler($acc252425272, $list52425272[2])
640- if (($size52425272 == 3))
641- then $acc352425272
780+ let $acc364136443 = handler($acc264136443, $list64136443[2])
781+ if (($size64136443 == 3))
782+ then $acc364136443
642783 else {
643- let $acc452425272 = handler($acc352425272, $list52425272[3])
644- if (($size52425272 == 4))
645- then $acc452425272
784+ let $acc464136443 = handler($acc364136443, $list64136443[3])
785+ if (($size64136443 == 4))
786+ then $acc464136443
646787 else {
647- let $acc552425272 = handler($acc452425272, $list52425272[4])
648- if (($size52425272 == 5))
649- then $acc552425272
788+ let $acc564136443 = handler($acc464136443, $list64136443[4])
789+ if (($size64136443 == 5))
790+ then $acc564136443
650791 else {
651- let $acc652425272 = handler($acc552425272, $list52425272[5])
652- if (($size52425272 == 6))
653- then $acc652425272
792+ let $acc664136443 = handler($acc564136443, $list64136443[5])
793+ if (($size64136443 == 6))
794+ then $acc664136443
654795 else {
655- let $acc752425272 = handler($acc652425272, $list52425272[6])
656- if (($size52425272 == 7))
657- then $acc752425272
796+ let $acc764136443 = handler($acc664136443, $list64136443[6])
797+ if (($size64136443 == 7))
798+ then $acc764136443
658799 else {
659- let $acc852425272 = handler($acc752425272, $list52425272[7])
660- if (($size52425272 == 8))
661- then $acc852425272
800+ let $acc864136443 = handler($acc764136443, $list64136443[7])
801+ if (($size64136443 == 8))
802+ then $acc864136443
662803 else {
663- let $acc952425272 = handler($acc852425272, $list52425272[8])
664- if (($size52425272 == 9))
665- then $acc952425272
804+ let $acc964136443 = handler($acc864136443, $list64136443[8])
805+ if (($size64136443 == 9))
806+ then $acc964136443
666807 else {
667- let $acc1052425272 = handler($acc952425272, $list52425272[9])
668- if (($size52425272 == 10))
669- then $acc1052425272
808+ let $acc1064136443 = handler($acc964136443, $list64136443[9])
809+ if (($size64136443 == 10))
810+ then $acc1064136443
670811 else {
671- let $acc1152425272 = handler($acc1052425272, $list52425272[10])
812+ let $acc1164136443 = handler($acc1064136443, $list64136443[10])
672813 throw("List size exceed 10")
673814 }
674815 }
710851
711852
712853 @Callable(i)
713-func removeLiquidity () = nil
854+func removeLiquidity () = {
855+ let pmt = i.payments[0]
856+ if ((pmt.assetId != tryGetBinary("global_poolToken_id")))
857+ then throw("please attach pool share token")
858+ else {
859+ let PRedeemed = pmt.amount
860+ let result = handlePoolTokensRedeem(PRedeemed, i.caller)
861+ (result ++ [Burn(tryGetBinary("global_poolToken_id"), PRedeemed), IntegerEntry("global_poolToken_amount", (tryGetInteger("global_poolToken_amount") - PRedeemed))])
862+ }
863+ }
714864
715865
716866
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let T = 2
55
66 let assetIds = [base58'CE5cxMvz7865CyFZPFUmDiL4KRkYXP6b6oYgN3vmWdV5', base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p']
77
88 let AssetsWeights = [50, 50]
99
1010 let AssetsWeightsDecimals = 2
1111
1212 let PoolTokenDecimals = 8
1313
1414 let Decimals = [8, 6]
1515
1616 let Scales = [100000000, 1000000]
1717
1818 let Fee = 50
1919
2020 let Scale = 10000
2121
2222 let FeeDecimalsMultiplier = 10000
2323
2424 let feeAggregator = Address(base58'3P8qVX189qpoTJZQQQdKS9endHK5sxWsvrd')
2525
2626 func tryGetInteger (key) = match getInteger(this, key) {
2727 case b: Int =>
2828 b
2929 case _ =>
3030 0
3131 }
3232
3333
3434 func tryGetBinary (key) = match getBinary(this, key) {
3535 case b: ByteVector =>
3636 b
3737 case _ =>
3838 base58''
3939 }
4040
4141
4242 func getCurrentTokenBalance (tokenType) = {
4343 let tokenId = toBase58String(assetIds[tokenType])
4444 tryGetInteger((("global_" + tokenId) + "_balance"))
4545 }
4646
4747
4848 func calculatePIssued (amount,tokenId) = {
4949 let Psupply = tryGetInteger("global_poolToken_amount")
5050 let Balance = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance"))
5151 fraction(amount, Psupply, Balance)
5252 }
5353
5454
5555 func getMinPIssued (payments) = {
5656 func handler (accum,current) = {
5757 let PIssued = calculatePIssued(current.amount, value(current.assetId))
5858 if (if ((accum == 0))
5959 then true
6060 else (accum > PIssued))
6161 then PIssued
6262 else accum
6363 }
6464
6565 let minPIssed = {
6666 let $list14851515 = payments
6767 let $size14851515 = size($list14851515)
6868 let $acc014851515 = 0
6969 if (($size14851515 == 0))
7070 then $acc014851515
7171 else {
7272 let $acc114851515 = handler($acc014851515, $list14851515[0])
7373 if (($size14851515 == 1))
7474 then $acc114851515
7575 else {
7676 let $acc214851515 = handler($acc114851515, $list14851515[1])
7777 if (($size14851515 == 2))
7878 then $acc214851515
7979 else {
8080 let $acc314851515 = handler($acc214851515, $list14851515[2])
8181 if (($size14851515 == 3))
8282 then $acc314851515
8383 else {
8484 let $acc414851515 = handler($acc314851515, $list14851515[3])
8585 if (($size14851515 == 4))
8686 then $acc414851515
8787 else {
8888 let $acc514851515 = handler($acc414851515, $list14851515[4])
8989 if (($size14851515 == 5))
9090 then $acc514851515
9191 else {
9292 let $acc614851515 = handler($acc514851515, $list14851515[5])
9393 if (($size14851515 == 6))
9494 then $acc614851515
9595 else {
9696 let $acc714851515 = handler($acc614851515, $list14851515[6])
9797 if (($size14851515 == 7))
9898 then $acc714851515
9999 else {
100100 let $acc814851515 = handler($acc714851515, $list14851515[7])
101101 if (($size14851515 == 8))
102102 then $acc814851515
103103 else {
104104 let $acc914851515 = handler($acc814851515, $list14851515[8])
105105 if (($size14851515 == 9))
106106 then $acc914851515
107107 else {
108108 let $acc1014851515 = handler($acc914851515, $list14851515[9])
109109 if (($size14851515 == 10))
110110 then $acc1014851515
111111 else {
112112 let $acc1114851515 = handler($acc1014851515, $list14851515[10])
113113 throw("List size exceed 10")
114114 }
115115 }
116116 }
117117 }
118118 }
119119 }
120120 }
121121 }
122122 }
123123 }
124124 }
125125 }
126126 minPIssed
127127 }
128128
129129
130130 func checkTokensValidity (payments) = {
131131 func handler1 (accum,payment) = (accum ++ [value(payment.assetId)])
132132
133133 let ids = {
134134 let $list17191751 = payments
135135 let $size17191751 = size($list17191751)
136136 let $acc017191751 = nil
137137 if (($size17191751 == 0))
138138 then $acc017191751
139139 else {
140140 let $acc117191751 = handler1($acc017191751, $list17191751[0])
141141 if (($size17191751 == 1))
142142 then $acc117191751
143143 else {
144144 let $acc217191751 = handler1($acc117191751, $list17191751[1])
145145 if (($size17191751 == 2))
146146 then $acc217191751
147147 else {
148148 let $acc317191751 = handler1($acc217191751, $list17191751[2])
149149 if (($size17191751 == 3))
150150 then $acc317191751
151151 else {
152152 let $acc417191751 = handler1($acc317191751, $list17191751[3])
153153 if (($size17191751 == 4))
154154 then $acc417191751
155155 else {
156156 let $acc517191751 = handler1($acc417191751, $list17191751[4])
157157 if (($size17191751 == 5))
158158 then $acc517191751
159159 else {
160160 let $acc617191751 = handler1($acc517191751, $list17191751[5])
161161 if (($size17191751 == 6))
162162 then $acc617191751
163163 else {
164164 let $acc717191751 = handler1($acc617191751, $list17191751[6])
165165 if (($size17191751 == 7))
166166 then $acc717191751
167167 else {
168168 let $acc817191751 = handler1($acc717191751, $list17191751[7])
169169 if (($size17191751 == 8))
170170 then $acc817191751
171171 else {
172172 let $acc917191751 = handler1($acc817191751, $list17191751[8])
173173 if (($size17191751 == 9))
174174 then $acc917191751
175175 else {
176176 let $acc1017191751 = handler1($acc917191751, $list17191751[9])
177177 if (($size17191751 == 10))
178178 then $acc1017191751
179179 else {
180180 let $acc1117191751 = handler1($acc1017191751, $list17191751[10])
181181 throw("List size exceed 10")
182182 }
183183 }
184184 }
185185 }
186186 }
187187 }
188188 }
189189 }
190190 }
191191 }
192192 }
193193 }
194194 func handler2 (accum,assetId) = if ((indexOf(ids, assetId) != unit))
195195 then (accum + 1)
196196 else throw(("asset not attached: " + toBase58String(assetId)))
197197
198198 let checks = {
199199 let $list19411972 = assetIds
200200 let $size19411972 = size($list19411972)
201201 let $acc019411972 = 0
202202 if (($size19411972 == 0))
203203 then $acc019411972
204204 else {
205205 let $acc119411972 = handler2($acc019411972, $list19411972[0])
206206 if (($size19411972 == 1))
207207 then $acc119411972
208208 else {
209209 let $acc219411972 = handler2($acc119411972, $list19411972[1])
210210 if (($size19411972 == 2))
211211 then $acc219411972
212212 else {
213213 let $acc319411972 = handler2($acc219411972, $list19411972[2])
214214 if (($size19411972 == 3))
215215 then $acc319411972
216216 else {
217217 let $acc419411972 = handler2($acc319411972, $list19411972[3])
218218 if (($size19411972 == 4))
219219 then $acc419411972
220220 else {
221221 let $acc519411972 = handler2($acc419411972, $list19411972[4])
222222 if (($size19411972 == 5))
223223 then $acc519411972
224224 else {
225225 let $acc619411972 = handler2($acc519411972, $list19411972[5])
226226 if (($size19411972 == 6))
227227 then $acc619411972
228228 else {
229229 let $acc719411972 = handler2($acc619411972, $list19411972[6])
230230 if (($size19411972 == 7))
231231 then $acc719411972
232232 else {
233233 let $acc819411972 = handler2($acc719411972, $list19411972[7])
234234 if (($size19411972 == 8))
235235 then $acc819411972
236236 else {
237237 let $acc919411972 = handler2($acc819411972, $list19411972[8])
238238 if (($size19411972 == 9))
239239 then $acc919411972
240240 else {
241241 let $acc1019411972 = handler2($acc919411972, $list19411972[9])
242242 if (($size19411972 == 10))
243243 then $acc1019411972
244244 else {
245245 let $acc1119411972 = handler2($acc1019411972, $list19411972[10])
246246 throw("List size exceed 10")
247247 }
248248 }
249249 }
250250 }
251251 }
252252 }
253253 }
254254 }
255255 }
256256 }
257257 }
258258 }
259259 true
260260 }
261261
262262
263263 func handlePoolTokensAdd (PIssued,payments,userAddress) = {
264264 func getTokenPaymentAmount (tokenId) = {
265265 func handler (accum,payment) = if ((payment.assetId == tokenId))
266266 then payment.amount
267267 else accum
268268
269269 let $list22772307 = payments
270270 let $size22772307 = size($list22772307)
271271 let $acc022772307 = 0
272272 if (($size22772307 == 0))
273273 then $acc022772307
274274 else {
275275 let $acc122772307 = handler($acc022772307, $list22772307[0])
276276 if (($size22772307 == 1))
277277 then $acc122772307
278278 else {
279279 let $acc222772307 = handler($acc122772307, $list22772307[1])
280280 if (($size22772307 == 2))
281281 then $acc222772307
282282 else {
283283 let $acc322772307 = handler($acc222772307, $list22772307[2])
284284 if (($size22772307 == 3))
285285 then $acc322772307
286286 else {
287287 let $acc422772307 = handler($acc322772307, $list22772307[3])
288288 if (($size22772307 == 4))
289289 then $acc422772307
290290 else {
291291 let $acc522772307 = handler($acc422772307, $list22772307[4])
292292 if (($size22772307 == 5))
293293 then $acc522772307
294294 else {
295295 let $acc622772307 = handler($acc522772307, $list22772307[5])
296296 if (($size22772307 == 6))
297297 then $acc622772307
298298 else {
299299 let $acc722772307 = handler($acc622772307, $list22772307[6])
300300 if (($size22772307 == 7))
301301 then $acc722772307
302302 else {
303303 let $acc822772307 = handler($acc722772307, $list22772307[7])
304304 if (($size22772307 == 8))
305305 then $acc822772307
306306 else {
307307 let $acc922772307 = handler($acc822772307, $list22772307[8])
308308 if (($size22772307 == 9))
309309 then $acc922772307
310310 else {
311311 let $acc1022772307 = handler($acc922772307, $list22772307[9])
312312 if (($size22772307 == 10))
313313 then $acc1022772307
314314 else {
315315 let $acc1122772307 = handler($acc1022772307, $list22772307[10])
316316 throw("List size exceed 10")
317317 }
318318 }
319319 }
320320 }
321321 }
322322 }
323323 }
324324 }
325325 }
326326 }
327327 }
328328 }
329329
330330 func handleTokenChange (accum,tokenId) = {
331331 let Bk = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance"))
332332 let PSupply = tryGetInteger("global_poolToken_amount")
333333 let tokenDecimals = tryGetInteger((("global_" + toBase58String(tokenId)) + "_scale"))
334334 let Dk = fraction((fraction((PSupply + PIssued), tokenDecimals, PSupply) - tokenDecimals), Bk, tokenDecimals)
335335 (accum ++ [IntegerEntry((("global_" + toBase58String(tokenId)) + "_balance"), (Bk + Dk))])
336336 }
337337
338338 func handleTokenChange2 (accum,tokenId) = {
339339 let Bk = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance"))
340340 let PSupply = tryGetInteger("global_poolToken_amount")
341341 let tokenDecimals = tryGetInteger((("global_" + toBase58String(tokenId)) + "_scale"))
342342 let Dk = fraction((fraction((PSupply + PIssued), tokenDecimals, PSupply) - tokenDecimals), Bk, tokenDecimals)
343343 let paymentAmount = getTokenPaymentAmount(tokenId)
344344 let toReturn = ((if ((paymentAmount != 0))
345345 then paymentAmount
346346 else 0) - Dk)
347347 (accum ++ [ScriptTransfer(userAddress, toReturn, tokenId)])
348348 }
349349
350350 ({
351351 let $list35063547 = assetIds
352352 let $size35063547 = size($list35063547)
353353 let $acc035063547 = nil
354354 if (($size35063547 == 0))
355355 then $acc035063547
356356 else {
357357 let $acc135063547 = handleTokenChange($acc035063547, $list35063547[0])
358358 if (($size35063547 == 1))
359359 then $acc135063547
360360 else {
361361 let $acc235063547 = handleTokenChange($acc135063547, $list35063547[1])
362362 if (($size35063547 == 2))
363363 then $acc235063547
364364 else {
365365 let $acc335063547 = handleTokenChange($acc235063547, $list35063547[2])
366366 if (($size35063547 == 3))
367367 then $acc335063547
368368 else {
369369 let $acc435063547 = handleTokenChange($acc335063547, $list35063547[3])
370370 if (($size35063547 == 4))
371371 then $acc435063547
372372 else {
373373 let $acc535063547 = handleTokenChange($acc435063547, $list35063547[4])
374374 if (($size35063547 == 5))
375375 then $acc535063547
376376 else {
377377 let $acc635063547 = handleTokenChange($acc535063547, $list35063547[5])
378378 if (($size35063547 == 6))
379379 then $acc635063547
380380 else {
381381 let $acc735063547 = handleTokenChange($acc635063547, $list35063547[6])
382382 if (($size35063547 == 7))
383383 then $acc735063547
384384 else {
385385 let $acc835063547 = handleTokenChange($acc735063547, $list35063547[7])
386386 if (($size35063547 == 8))
387387 then $acc835063547
388388 else {
389389 let $acc935063547 = handleTokenChange($acc835063547, $list35063547[8])
390390 if (($size35063547 == 9))
391391 then $acc935063547
392392 else {
393393 let $acc1035063547 = handleTokenChange($acc935063547, $list35063547[9])
394394 if (($size35063547 == 10))
395395 then $acc1035063547
396396 else {
397397 let $acc1135063547 = handleTokenChange($acc1035063547, $list35063547[10])
398398 throw("List size exceed 10")
399399 }
400400 }
401401 }
402402 }
403403 }
404404 }
405405 }
406406 }
407407 }
408408 }
409409 }
410410 } ++ {
411411 let $list35543596 = assetIds
412412 let $size35543596 = size($list35543596)
413413 let $acc035543596 = nil
414414 if (($size35543596 == 0))
415415 then $acc035543596
416416 else {
417417 let $acc135543596 = handleTokenChange2($acc035543596, $list35543596[0])
418418 if (($size35543596 == 1))
419419 then $acc135543596
420420 else {
421421 let $acc235543596 = handleTokenChange2($acc135543596, $list35543596[1])
422422 if (($size35543596 == 2))
423423 then $acc235543596
424424 else {
425425 let $acc335543596 = handleTokenChange2($acc235543596, $list35543596[2])
426426 if (($size35543596 == 3))
427427 then $acc335543596
428428 else {
429429 let $acc435543596 = handleTokenChange2($acc335543596, $list35543596[3])
430430 if (($size35543596 == 4))
431431 then $acc435543596
432432 else {
433433 let $acc535543596 = handleTokenChange2($acc435543596, $list35543596[4])
434434 if (($size35543596 == 5))
435435 then $acc535543596
436436 else {
437437 let $acc635543596 = handleTokenChange2($acc535543596, $list35543596[5])
438438 if (($size35543596 == 6))
439439 then $acc635543596
440440 else {
441441 let $acc735543596 = handleTokenChange2($acc635543596, $list35543596[6])
442442 if (($size35543596 == 7))
443443 then $acc735543596
444444 else {
445445 let $acc835543596 = handleTokenChange2($acc735543596, $list35543596[7])
446446 if (($size35543596 == 8))
447447 then $acc835543596
448448 else {
449449 let $acc935543596 = handleTokenChange2($acc835543596, $list35543596[8])
450450 if (($size35543596 == 9))
451451 then $acc935543596
452452 else {
453453 let $acc1035543596 = handleTokenChange2($acc935543596, $list35543596[9])
454454 if (($size35543596 == 10))
455455 then $acc1035543596
456456 else {
457457 let $acc1135543596 = handleTokenChange2($acc1035543596, $list35543596[10])
458458 throw("List size exceed 10")
459459 }
460460 }
461461 }
462462 }
463463 }
464464 }
465465 }
466466 }
467467 }
468468 }
469469 }
470470 })
471471 }
472472
473473
474+func handlePoolTokensRedeem (PRedeemed,userAddress) = {
475+ func handleTokenRedeem (accum,tokenId) = {
476+ let Bk = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance"))
477+ let PSupply = tryGetInteger("global_poolToken_amount")
478+ let tokenDecimals = tryGetInteger((("global_" + toBase58String(tokenId)) + "_scale"))
479+ let amount = fraction((tokenDecimals - fraction((PSupply - PRedeemed), tokenDecimals, PSupply)), Bk, tokenDecimals)
480+ (accum ++ [IntegerEntry((("global_" + toBase58String(tokenId)) + "_balance"), (Bk - amount))])
481+ }
482+
483+ func handleTokenRedeem2 (accum,tokenId) = {
484+ let Bk = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance"))
485+ let PSupply = tryGetInteger("global_poolToken_amount")
486+ let tokenDecimals = tryGetInteger((("global_" + toBase58String(tokenId)) + "_scale"))
487+ let amount = fraction((tokenDecimals - fraction((PSupply - PRedeemed), tokenDecimals, PSupply)), Bk, tokenDecimals)
488+ (accum ++ [ScriptTransfer(userAddress, amount, tokenId)])
489+ }
490+
491+ ({
492+ let $list46784719 = assetIds
493+ let $size46784719 = size($list46784719)
494+ let $acc046784719 = nil
495+ if (($size46784719 == 0))
496+ then $acc046784719
497+ else {
498+ let $acc146784719 = handleTokenRedeem($acc046784719, $list46784719[0])
499+ if (($size46784719 == 1))
500+ then $acc146784719
501+ else {
502+ let $acc246784719 = handleTokenRedeem($acc146784719, $list46784719[1])
503+ if (($size46784719 == 2))
504+ then $acc246784719
505+ else {
506+ let $acc346784719 = handleTokenRedeem($acc246784719, $list46784719[2])
507+ if (($size46784719 == 3))
508+ then $acc346784719
509+ else {
510+ let $acc446784719 = handleTokenRedeem($acc346784719, $list46784719[3])
511+ if (($size46784719 == 4))
512+ then $acc446784719
513+ else {
514+ let $acc546784719 = handleTokenRedeem($acc446784719, $list46784719[4])
515+ if (($size46784719 == 5))
516+ then $acc546784719
517+ else {
518+ let $acc646784719 = handleTokenRedeem($acc546784719, $list46784719[5])
519+ if (($size46784719 == 6))
520+ then $acc646784719
521+ else {
522+ let $acc746784719 = handleTokenRedeem($acc646784719, $list46784719[6])
523+ if (($size46784719 == 7))
524+ then $acc746784719
525+ else {
526+ let $acc846784719 = handleTokenRedeem($acc746784719, $list46784719[7])
527+ if (($size46784719 == 8))
528+ then $acc846784719
529+ else {
530+ let $acc946784719 = handleTokenRedeem($acc846784719, $list46784719[8])
531+ if (($size46784719 == 9))
532+ then $acc946784719
533+ else {
534+ let $acc1046784719 = handleTokenRedeem($acc946784719, $list46784719[9])
535+ if (($size46784719 == 10))
536+ then $acc1046784719
537+ else {
538+ let $acc1146784719 = handleTokenRedeem($acc1046784719, $list46784719[10])
539+ throw("List size exceed 10")
540+ }
541+ }
542+ }
543+ }
544+ }
545+ }
546+ }
547+ }
548+ }
549+ }
550+ }
551+ } ++ {
552+ let $list47254767 = assetIds
553+ let $size47254767 = size($list47254767)
554+ let $acc047254767 = nil
555+ if (($size47254767 == 0))
556+ then $acc047254767
557+ else {
558+ let $acc147254767 = handleTokenRedeem2($acc047254767, $list47254767[0])
559+ if (($size47254767 == 1))
560+ then $acc147254767
561+ else {
562+ let $acc247254767 = handleTokenRedeem2($acc147254767, $list47254767[1])
563+ if (($size47254767 == 2))
564+ then $acc247254767
565+ else {
566+ let $acc347254767 = handleTokenRedeem2($acc247254767, $list47254767[2])
567+ if (($size47254767 == 3))
568+ then $acc347254767
569+ else {
570+ let $acc447254767 = handleTokenRedeem2($acc347254767, $list47254767[3])
571+ if (($size47254767 == 4))
572+ then $acc447254767
573+ else {
574+ let $acc547254767 = handleTokenRedeem2($acc447254767, $list47254767[4])
575+ if (($size47254767 == 5))
576+ then $acc547254767
577+ else {
578+ let $acc647254767 = handleTokenRedeem2($acc547254767, $list47254767[5])
579+ if (($size47254767 == 6))
580+ then $acc647254767
581+ else {
582+ let $acc747254767 = handleTokenRedeem2($acc647254767, $list47254767[6])
583+ if (($size47254767 == 7))
584+ then $acc747254767
585+ else {
586+ let $acc847254767 = handleTokenRedeem2($acc747254767, $list47254767[7])
587+ if (($size47254767 == 8))
588+ then $acc847254767
589+ else {
590+ let $acc947254767 = handleTokenRedeem2($acc847254767, $list47254767[8])
591+ if (($size47254767 == 9))
592+ then $acc947254767
593+ else {
594+ let $acc1047254767 = handleTokenRedeem2($acc947254767, $list47254767[9])
595+ if (($size47254767 == 10))
596+ then $acc1047254767
597+ else {
598+ let $acc1147254767 = handleTokenRedeem2($acc1047254767, $list47254767[10])
599+ throw("List size exceed 10")
600+ }
601+ }
602+ }
603+ }
604+ }
605+ }
606+ }
607+ }
608+ }
609+ }
610+ }
611+ })
612+ }
613+
614+
474615 func calculateOutAmount (AmountIn,assetIn,assetOut) = {
475616 let IndexIn = value(indexOf(assetIds, assetIn))
476617 let IndexOut = value(indexOf(assetIds, assetOut))
477618 let BalanceIn = tryGetInteger((("global_" + toBase58String(assetIn)) + "_balance"))
478619 let BalanceOut = tryGetInteger((("global_" + toBase58String(assetOut)) + "_balance"))
479620 fraction(BalanceOut, (10000 - pow(((BalanceIn * 10000) / (BalanceIn + AmountIn)), 4, fraction(AssetsWeights[IndexIn], 10000, AssetsWeights[IndexOut]), 4, 4, FLOOR)), 10000)
480621 }
481622
482623
483624 @Callable(i)
484625 func preInit () = [IntegerEntry((("global_" + toBase58String(assetIds[0])) + "_scale"), Scales[0]), IntegerEntry((("global_" + toBase58String(assetIds[1])) + "_scale"), Scales[1])]
485626
486627
487628
488629 @Callable(i)
489630 func init () = {
490631 func prepareList () = {
491632 func handler (accum,n) = (accum ++ [IntegerEntry((("global_" + toBase58String(value(n.assetId))) + "_amount"), n.amount)])
492633
493- let $list47274760 = i.payments
494- let $size47274760 = size($list47274760)
495- let $acc047274760 = nil
496- if (($size47274760 == 0))
497- then $acc047274760
634+ let $list58985931 = i.payments
635+ let $size58985931 = size($list58985931)
636+ let $acc058985931 = nil
637+ if (($size58985931 == 0))
638+ then $acc058985931
498639 else {
499- let $acc147274760 = handler($acc047274760, $list47274760[0])
500- if (($size47274760 == 1))
501- then $acc147274760
640+ let $acc158985931 = handler($acc058985931, $list58985931[0])
641+ if (($size58985931 == 1))
642+ then $acc158985931
502643 else {
503- let $acc247274760 = handler($acc147274760, $list47274760[1])
504- if (($size47274760 == 2))
505- then $acc247274760
644+ let $acc258985931 = handler($acc158985931, $list58985931[1])
645+ if (($size58985931 == 2))
646+ then $acc258985931
506647 else {
507- let $acc347274760 = handler($acc247274760, $list47274760[2])
508- if (($size47274760 == 3))
509- then $acc347274760
648+ let $acc358985931 = handler($acc258985931, $list58985931[2])
649+ if (($size58985931 == 3))
650+ then $acc358985931
510651 else {
511- let $acc447274760 = handler($acc347274760, $list47274760[3])
512- if (($size47274760 == 4))
513- then $acc447274760
652+ let $acc458985931 = handler($acc358985931, $list58985931[3])
653+ if (($size58985931 == 4))
654+ then $acc458985931
514655 else {
515- let $acc547274760 = handler($acc447274760, $list47274760[4])
516- if (($size47274760 == 5))
517- then $acc547274760
656+ let $acc558985931 = handler($acc458985931, $list58985931[4])
657+ if (($size58985931 == 5))
658+ then $acc558985931
518659 else {
519- let $acc647274760 = handler($acc547274760, $list47274760[5])
520- if (($size47274760 == 6))
521- then $acc647274760
660+ let $acc658985931 = handler($acc558985931, $list58985931[5])
661+ if (($size58985931 == 6))
662+ then $acc658985931
522663 else {
523- let $acc747274760 = handler($acc647274760, $list47274760[6])
524- if (($size47274760 == 7))
525- then $acc747274760
664+ let $acc758985931 = handler($acc658985931, $list58985931[6])
665+ if (($size58985931 == 7))
666+ then $acc758985931
526667 else {
527- let $acc847274760 = handler($acc747274760, $list47274760[7])
528- if (($size47274760 == 8))
529- then $acc847274760
668+ let $acc858985931 = handler($acc758985931, $list58985931[7])
669+ if (($size58985931 == 8))
670+ then $acc858985931
530671 else {
531- let $acc947274760 = handler($acc847274760, $list47274760[8])
532- if (($size47274760 == 9))
533- then $acc947274760
672+ let $acc958985931 = handler($acc858985931, $list58985931[8])
673+ if (($size58985931 == 9))
674+ then $acc958985931
534675 else {
535- let $acc1047274760 = handler($acc947274760, $list47274760[9])
536- if (($size47274760 == 10))
537- then $acc1047274760
676+ let $acc1058985931 = handler($acc958985931, $list58985931[9])
677+ if (($size58985931 == 10))
678+ then $acc1058985931
538679 else {
539- let $acc1147274760 = handler($acc1047274760, $list47274760[10])
680+ let $acc1158985931 = handler($acc1058985931, $list58985931[10])
540681 throw("List size exceed 10")
541682 }
542683 }
543684 }
544685 }
545686 }
546687 }
547688 }
548689 }
549690 }
550691 }
551692 }
552693 }
553694
554695 func calculatePoolTokensAmount (payments) = {
555696 func handler (accum,pmt) = {
556697 let assetId = value(pmt.assetId)
557698 func handler2 (accum,n) = if ((n == assetId))
558699 then value(indexOf(assetIds, n))
559700 else accum
560701
561702 let Token = {
562- let $list50825113 = assetIds
563- let $size50825113 = size($list50825113)
564- let $acc050825113 = 1
565- if (($size50825113 == 0))
566- then $acc050825113
703+ let $list62536284 = assetIds
704+ let $size62536284 = size($list62536284)
705+ let $acc062536284 = 1
706+ if (($size62536284 == 0))
707+ then $acc062536284
567708 else {
568- let $acc150825113 = handler2($acc050825113, $list50825113[0])
569- if (($size50825113 == 1))
570- then $acc150825113
709+ let $acc162536284 = handler2($acc062536284, $list62536284[0])
710+ if (($size62536284 == 1))
711+ then $acc162536284
571712 else {
572- let $acc250825113 = handler2($acc150825113, $list50825113[1])
573- if (($size50825113 == 2))
574- then $acc250825113
713+ let $acc262536284 = handler2($acc162536284, $list62536284[1])
714+ if (($size62536284 == 2))
715+ then $acc262536284
575716 else {
576- let $acc350825113 = handler2($acc250825113, $list50825113[2])
577- if (($size50825113 == 3))
578- then $acc350825113
717+ let $acc362536284 = handler2($acc262536284, $list62536284[2])
718+ if (($size62536284 == 3))
719+ then $acc362536284
579720 else {
580- let $acc450825113 = handler2($acc350825113, $list50825113[3])
581- if (($size50825113 == 4))
582- then $acc450825113
721+ let $acc462536284 = handler2($acc362536284, $list62536284[3])
722+ if (($size62536284 == 4))
723+ then $acc462536284
583724 else {
584- let $acc550825113 = handler2($acc450825113, $list50825113[4])
585- if (($size50825113 == 5))
586- then $acc550825113
725+ let $acc562536284 = handler2($acc462536284, $list62536284[4])
726+ if (($size62536284 == 5))
727+ then $acc562536284
587728 else {
588- let $acc650825113 = handler2($acc550825113, $list50825113[5])
589- if (($size50825113 == 6))
590- then $acc650825113
729+ let $acc662536284 = handler2($acc562536284, $list62536284[5])
730+ if (($size62536284 == 6))
731+ then $acc662536284
591732 else {
592- let $acc750825113 = handler2($acc650825113, $list50825113[6])
593- if (($size50825113 == 7))
594- then $acc750825113
733+ let $acc762536284 = handler2($acc662536284, $list62536284[6])
734+ if (($size62536284 == 7))
735+ then $acc762536284
595736 else {
596- let $acc850825113 = handler2($acc750825113, $list50825113[7])
597- if (($size50825113 == 8))
598- then $acc850825113
737+ let $acc862536284 = handler2($acc762536284, $list62536284[7])
738+ if (($size62536284 == 8))
739+ then $acc862536284
599740 else {
600- let $acc950825113 = handler2($acc850825113, $list50825113[8])
601- if (($size50825113 == 9))
602- then $acc950825113
741+ let $acc962536284 = handler2($acc862536284, $list62536284[8])
742+ if (($size62536284 == 9))
743+ then $acc962536284
603744 else {
604- let $acc1050825113 = handler2($acc950825113, $list50825113[9])
605- if (($size50825113 == 10))
606- then $acc1050825113
745+ let $acc1062536284 = handler2($acc962536284, $list62536284[9])
746+ if (($size62536284 == 10))
747+ then $acc1062536284
607748 else {
608- let $acc1150825113 = handler2($acc1050825113, $list50825113[10])
749+ let $acc1162536284 = handler2($acc1062536284, $list62536284[10])
609750 throw("List size exceed 10")
610751 }
611752 }
612753 }
613754 }
614755 }
615756 }
616757 }
617758 }
618759 }
619760 }
620761 }
621762 }
622763 (accum * pow(pmt.amount, Decimals[Token], AssetsWeights[Token], AssetsWeightsDecimals, PoolTokenDecimals, FLOOR))
623764 }
624765
625- let $list52425272 = payments
626- let $size52425272 = size($list52425272)
627- let $acc052425272 = 1
628- if (($size52425272 == 0))
629- then $acc052425272
766+ let $list64136443 = payments
767+ let $size64136443 = size($list64136443)
768+ let $acc064136443 = 1
769+ if (($size64136443 == 0))
770+ then $acc064136443
630771 else {
631- let $acc152425272 = handler($acc052425272, $list52425272[0])
632- if (($size52425272 == 1))
633- then $acc152425272
772+ let $acc164136443 = handler($acc064136443, $list64136443[0])
773+ if (($size64136443 == 1))
774+ then $acc164136443
634775 else {
635- let $acc252425272 = handler($acc152425272, $list52425272[1])
636- if (($size52425272 == 2))
637- then $acc252425272
776+ let $acc264136443 = handler($acc164136443, $list64136443[1])
777+ if (($size64136443 == 2))
778+ then $acc264136443
638779 else {
639- let $acc352425272 = handler($acc252425272, $list52425272[2])
640- if (($size52425272 == 3))
641- then $acc352425272
780+ let $acc364136443 = handler($acc264136443, $list64136443[2])
781+ if (($size64136443 == 3))
782+ then $acc364136443
642783 else {
643- let $acc452425272 = handler($acc352425272, $list52425272[3])
644- if (($size52425272 == 4))
645- then $acc452425272
784+ let $acc464136443 = handler($acc364136443, $list64136443[3])
785+ if (($size64136443 == 4))
786+ then $acc464136443
646787 else {
647- let $acc552425272 = handler($acc452425272, $list52425272[4])
648- if (($size52425272 == 5))
649- then $acc552425272
788+ let $acc564136443 = handler($acc464136443, $list64136443[4])
789+ if (($size64136443 == 5))
790+ then $acc564136443
650791 else {
651- let $acc652425272 = handler($acc552425272, $list52425272[5])
652- if (($size52425272 == 6))
653- then $acc652425272
792+ let $acc664136443 = handler($acc564136443, $list64136443[5])
793+ if (($size64136443 == 6))
794+ then $acc664136443
654795 else {
655- let $acc752425272 = handler($acc652425272, $list52425272[6])
656- if (($size52425272 == 7))
657- then $acc752425272
796+ let $acc764136443 = handler($acc664136443, $list64136443[6])
797+ if (($size64136443 == 7))
798+ then $acc764136443
658799 else {
659- let $acc852425272 = handler($acc752425272, $list52425272[7])
660- if (($size52425272 == 8))
661- then $acc852425272
800+ let $acc864136443 = handler($acc764136443, $list64136443[7])
801+ if (($size64136443 == 8))
802+ then $acc864136443
662803 else {
663- let $acc952425272 = handler($acc852425272, $list52425272[8])
664- if (($size52425272 == 9))
665- then $acc952425272
804+ let $acc964136443 = handler($acc864136443, $list64136443[8])
805+ if (($size64136443 == 9))
806+ then $acc964136443
666807 else {
667- let $acc1052425272 = handler($acc952425272, $list52425272[9])
668- if (($size52425272 == 10))
669- then $acc1052425272
808+ let $acc1064136443 = handler($acc964136443, $list64136443[9])
809+ if (($size64136443 == 10))
810+ then $acc1064136443
670811 else {
671- let $acc1152425272 = handler($acc1052425272, $list52425272[10])
812+ let $acc1164136443 = handler($acc1064136443, $list64136443[10])
672813 throw("List size exceed 10")
673814 }
674815 }
675816 }
676817 }
677818 }
678819 }
679820 }
680821 }
681822 }
682823 }
683824 }
684825 }
685826
686827 if ((tryGetInteger("global_wasInited") > 1))
687828 then throw("pool already inited")
688829 else {
689830 let initialPoolTokens = calculatePoolTokensAmount(i.payments)
690831 let poolTokenId = getBinaryValue(this, "global_poolToken_id")
691832 let poolTokenReissue = Reissue(poolTokenId, initialPoolTokens, true)
692833 (prepareList() ++ [poolTokenReissue, IntegerEntry("global_poolToken_amount", initialPoolTokens), BinaryEntry("global_poolToken_id", poolTokenId), ScriptTransfer(i.caller, initialPoolTokens, poolTokenId)])
693834 }
694835 }
695836
696837
697838
698839 @Callable(i)
699840 func addLiquidity () = if ((size(i.payments) != T))
700841 then throw(("you need to attach all pool tokens. amount of pool tokens: " + toString(T)))
701842 else if (!(checkTokensValidity(i.payments)))
702843 then throw("wrong assets attached")
703844 else {
704845 let PIssued = getMinPIssued(i.payments)
705846 let result = handlePoolTokensAdd(PIssued, i.payments, i.caller)
706847 let reissue = Reissue(tryGetBinary("global_poolToken_id"), PIssued, true)
707848 (result ++ [reissue, ScriptTransfer(i.caller, PIssued, tryGetBinary("global_poolToken_id")), IntegerEntry("global_poolToken_amount", (tryGetInteger("global_poolToken_amount") + PIssued))])
708849 }
709850
710851
711852
712853 @Callable(i)
713-func removeLiquidity () = nil
854+func removeLiquidity () = {
855+ let pmt = i.payments[0]
856+ if ((pmt.assetId != tryGetBinary("global_poolToken_id")))
857+ then throw("please attach pool share token")
858+ else {
859+ let PRedeemed = pmt.amount
860+ let result = handlePoolTokensRedeem(PRedeemed, i.caller)
861+ (result ++ [Burn(tryGetBinary("global_poolToken_id"), PRedeemed), IntegerEntry("global_poolToken_amount", (tryGetInteger("global_poolToken_amount") - PRedeemed))])
862+ }
863+ }
714864
715865
716866
717867 @Callable(i)
718868 func swap (assetOut,minimum) = {
719869 let pmt = value(i.payments[0])
720870 let AmountIn = value(i.payments[0].amount)
721871 let AssetIn = value(pmt.assetId)
722872 let AssetOut = fromBase58String(assetOut)
723873 let AmountOut = calculateOutAmount(AmountIn, AssetIn, AssetOut)
724874 if ((minimum > AmountOut))
725875 then throw(("amount to recieve it lower than given one: " + toString(AmountOut)))
726876 else if ((0 > (tryGetInteger((("global_" + toBase58String(AssetOut)) + "_balance")) - AmountOut)))
727877 then throw("contract is out of reserves")
728878 else [IntegerEntry((("global_" + toBase58String(AssetOut)) + "_balance"), (tryGetInteger((("global_" + toBase58String(AssetOut)) + "_balance")) - AmountOut)), IntegerEntry((("global_" + toBase58String(AssetIn)) + "_balance"), (tryGetInteger((("global_" + toBase58String(AssetIn)) + "_balance")) + AmountIn)), ScriptTransfer(i.caller, AmountOut, AssetOut)]
729879 }
730880
731881
732882 @Verifier(tx)
733883 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
734884

github/deemru/w8io/3ef1775 
211.32 ms