tx · 48vedYgGRbsgxxV3SG5CaaYr3NQ86Qr6smLw9qs44Edk 3PPRHHF9JKvDLkAc3aHD3Kd5tRZp1CoqAJa: -0.01400000 Waves 2021.09.25 00:20 [2782567] smart account 3PPRHHF9JKvDLkAc3aHD3Kd5tRZp1CoqAJa > SELF 0.00000000 Waves
{ "type": 13, "id": "48vedYgGRbsgxxV3SG5CaaYr3NQ86Qr6smLw9qs44Edk", "fee": 1400000, "feeAssetId": null, "timestamp": 1632518417056, "version": 2, "chainId": 87, "sender": "3PPRHHF9JKvDLkAc3aHD3Kd5tRZp1CoqAJa", "senderPublicKey": "Dura8pBsdYoeuB1zq6r5uKsgRS3MfiaVm5J99p6wJXYF", "proofs": [ "4CqAih7qNALVRmsiwf3PJy8XWRUZtLpW59mMxRBEe6H883VpoNbRW4hKbizLWwpcAGAPWyCYrfhdVBoYLFkxH1SL" ], "script": "base64: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CGhhbmRsZXIyAAAAAgUAAAANJGFjYzcyNjcwMjcwMQkAAZEAAAACBQAAAA0kbGlzdDI2NzAyNzAxAAAAAAAAAAAHAwkAAAAAAAACBQAAAA0kc2l6ZTI2NzAyNzAxAAAAAAAAAAAIBQAAAA0kYWNjODI2NzAyNzAxBAAAAA0kYWNjOTI2NzAyNzAxCQEAAAAIaGFuZGxlcjIAAAACBQAAAA0kYWNjODI2NzAyNzAxCQABkQAAAAIFAAAADSRsaXN0MjY3MDI3MDEAAAAAAAAAAAgDCQAAAAAAAAIFAAAADSRzaXplMjY3MDI3MDEAAAAAAAAAAAkFAAAADSRhY2M5MjY3MDI3MDEEAAAADiRhY2MxMDI2NzAyNzAxCQEAAAAIaGFuZGxlcjIAAAACBQAAAA0kYWNjOTI2NzAyNzAxCQABkQAAAAIFAAAADSRsaXN0MjY3MDI3MDEAAAAAAAAAAAkDCQAAAAAAAAIFAAAADSRzaXplMjY3MDI3MDEAAAAAAAAAAAoFAAAADiRhY2MxMDI2NzAyNzAxBAAAAA4kYWNjMTEyNjcwMjcwMQkBAAAACGhhbmRsZXIyAAAAAgUAAAAOJGFjYzEwMjY3MDI3MDEJAAGRAAAAAgUAAAANJGxpc3QyNjcwMjcwMQAAAAAAAAAACgkAAAIAAAABAgAAABNMaXN0IHNpemUgZXhjZWVkIDEwAwkAAAAAAAACBQAAAAZjaGVja3MFAAAABmNoZWNrcwYJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQAAABNoYW5kbGVQb29sVG9rZW5zQWRkAAAAAwAAAAdQSXNzdWVkAAAACHBheW1lbnRzAAAAC3VzZXJBZGRyZXNzCgEAAAAVZ2V0VG9rZW5QYXltZW50QW1vdW50AAAAAQAAAAd0b2tlbklkCgEAAAAHaGFuZGxlcgAAAAIAAAAFYWNjdW0AAAAHcGF5bWVudAMJAAAAAAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAUAAAAHdG9rZW5JZAgFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAVhY2N1bQQAAAANJGxpc3QzMDA2MzAzNgUAAAAIcGF5bWVudHMEAAAADSRzaXplMzAwNjMwMzYJAAGQAAAAAQUAAAANJGxp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Y2M5NDI1OTQzMDAEAAAADiRhY2MxMDQyNTk0MzAwCQEAAAARaGFuZGxlVG9rZW5DaGFuZ2UAAAACBQAAAA0kYWNjOTQyNTk0MzAwCQABkQAAAAIFAAAADSRsaXN0NDI1OTQzMDAAAAAAAAAAAAkDCQAAAAAAAAIFAAAADSRzaXplNDI1OTQzMDAAAAAAAAAAAAoFAAAADiRhY2MxMDQyNTk0MzAwBAAAAA4kYWNjMTE0MjU5NDMwMAkBAAAAEWhhbmRsZVRva2VuQ2hhbmdlAAAAAgUAAAAOJGFjYzEwNDI1OTQzMDAJAAGRAAAAAgUAAAANJGxpc3Q0MjU5NDMwMAAAAAAAAAAACgkAAAIAAAABAgAAABNMaXN0IHNpemUgZXhjZWVkIDEwBAAAAA0kbGlzdDQzMDc0MzQ5BQAAAAhhc3NldElkcwQAAAANJHNpemU0MzA3NDM0OQkAAZAAAAABBQAAAA0kbGlzdDQzMDc0MzQ5BAAAAA0kYWNjMDQzMDc0MzQ5BQAAAANuaWwDCQAAAAAAAAIFAAAADSRzaXplNDMwNzQzNDkAAAAAAAAAAAAFAAAADSRhY2MwNDMwNzQzNDkEAAAADSRhY2MxNDMwNzQzNDkJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjMDQzMDc0MzQ5CQABkQAAAAIFAAAADSRsaXN0NDMwNzQzNDkAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplNDMwNzQzNDkAAAAAAAAAAAEFAAAADSRhY2MxNDMwNzQzNDkEAAAADSRhY2MyNDMwNzQzNDkJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjMTQzMDc0MzQ5CQABkQAAAAIFAAAADSRsaXN0NDMwNzQzNDkAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplNDMwNzQzNDkAAAAAAAAAAAIFAAAADSRhY2MyNDMwNzQzNDkEAAAADSRhY2MzNDMwNzQzNDkJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjMjQzMDc0MzQ5CQABkQAAAAIFAAAADSRsaXN0NDMwNzQzNDkAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplNDMwNzQzNDkAAAAAAAAAAAMFAAAADSRhY2MzNDMwNzQzNDkEAAAADSRhY2M0NDMwNzQzNDkJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjMzQzMDc0MzQ5CQABkQAAAAIFAAAADSRsaXN0NDMwNzQzNDkAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplNDMwNzQzNDkAAAAAAAAAAAQFAAAADSRhY2M0NDMwNzQzNDkEAAAADSRhY2M1NDMwNzQzNDkJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjNDQzMDc0MzQ5CQABkQAAAAIFAAAADSRsaXN0NDMwNzQzNDkAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplNDMwNzQzNDkAAAAAAAAAAAUFAAAADSRhY2M1NDMwNzQzNDkEAAAADSRhY2M2NDMwNzQzNDkJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjNTQzMDc0MzQ5CQABkQAAAAIFAAAADSRsaXN0NDMwNzQzNDkAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplNDMwNzQzNDkAAAAAAAAAAAYFAAAADSRhY2M2NDMwNzQzNDkEAAAADSRhY2M3NDMwNzQzNDkJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjNjQzMDc0MzQ5CQABkQAAAAIFAAAADSRsaXN0NDMwNzQzNDkAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplNDMwNzQzNDkAAAAAAAAAAAcFAAAADSRhY2M3NDMwNzQzNDkEAAAADSRhY2M4NDMwNzQzNDkJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjNzQzMDc0MzQ5CQABkQAAAAIFAAAADSRsaXN0NDMwNzQzNDkAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplNDMwNzQzNDkAAAAAAAAAAAgFAAAADSRhY2M4NDMwNzQzNDkEAAAADSRhY2M5NDMwNzQzNDkJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA0kYWNjODQzMDc0MzQ5CQABkQAAAAIFAAAADSRsaXN0NDMwNzQzNDkAAAAAAAAAAAgDCQAAAAAAAAIFAAAADSRzaXplNDMwNzQzNDkAAAAAAAAAAAkFAAAADSRhY2M5NDMwNzQzNDkEAAAADiRhY2MxMDQzMDc0MzQ5CQEAAAASaGFuZGxlVG9rZW5DaGFuZ2UyAAAAAgUAAAANJGFjYzk0MzA3NDM0OQkAAZEAAAACBQAAAA0kbGlzdDQzMDc0MzQ5AAAAAAAAAAAJAwkAAAAAAAACBQAAAA0kc2l6ZTQzMDc0MzQ5AAAAAAAAAAAKBQAAAA4kYWNjMTA0MzA3NDM0OQQAAAAOJGFjYzExNDMwNzQzNDkJAQAAABJoYW5kbGVUb2tlbkNoYW5nZTIAAAACBQAAAA4kYWNjMTA0MzA3NDM0OQkAAZEAAAACBQAAAA0kbGlzdDQzMDc0MzQ5AAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTABAAAAFmhhbmRsZVBvb2xUb2tlbnNSZWRlZW0AAAACAAAACVBSZWRlZW1lZAAAAAt1c2VyQWRkcmVzcwoBAAAAEWhhbmRsZVRva2VuUmVkZWVtAAAAAgAAAAVhY2N1bQAAAAd0b2tlbklkBAAAAAJCawkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAHZ2xvYmFsXwkAAlgAAAABBQAAAAd0b2tlbklkAgAAAAhfYmFsYW5jZQQAAAAHUFN1cHBseQkBAAAADXRyeUdldEludGVnZXIAAAABAgAAABdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAQAAAANdG9rZW5EZWNpbWFscwkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAHc3RhdGljXwkAAlgAAAABBQAAAAd0b2tlbklkAgAAAAZfc2NhbGUEAAAABmFtb3VudAkBAAAACGZyYWN0aW9uAAAABAkAAGUAAAACBQAAAA10b2tlbkRlY2ltYWxzCQEAAAAIZnJhY3Rpb24AAAAECQAAZQAAAAIFAAAAB1BTdXBwbHkFAAAACVBSZWRlZW1lZAUAAAANdG9rZW5EZWNpbWFscwUAAAAHUFN1cHBseQUAAAAERE9XTgUAAAACQmsFAAAADXRva2VuRGVjaW1hbHMFAAAABERPV04JAAROAAAAAgUAAAAFYWNjdW0JAARMAAAAAgkBAAAADEludGVnZXJFbnRy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AAAADSRhY2M2NTQ1NTU0OTYJAAGRAAAAAgUAAAANJGxpc3Q1NDU1NTQ5NgAAAAAAAAAABgMJAAAAAAAAAgUAAAANJHNpemU1NDU1NTQ5NgAAAAAAAAAABwUAAAANJGFjYzc1NDU1NTQ5NgQAAAANJGFjYzg1NDU1NTQ5NgkBAAAAEWhhbmRsZVRva2VuUmVkZWVtAAAAAgUAAAANJGFjYzc1NDU1NTQ5NgkAAZEAAAACBQAAAA0kbGlzdDU0NTU1NDk2AAAAAAAAAAAHAwkAAAAAAAACBQAAAA0kc2l6ZTU0NTU1NDk2AAAAAAAAAAAIBQAAAA0kYWNjODU0NTU1NDk2BAAAAA0kYWNjOTU0NTU1NDk2CQEAAAARaGFuZGxlVG9rZW5SZWRlZW0AAAACBQAAAA0kYWNjODU0NTU1NDk2CQABkQAAAAIFAAAADSRsaXN0NTQ1NTU0OTYAAAAAAAAAAAgDCQAAAAAAAAIFAAAADSRzaXplNTQ1NTU0OTYAAAAAAAAAAAkFAAAADSRhY2M5NTQ1NTU0OTYEAAAADiRhY2MxMDU0NTU1NDk2CQEAAAARaGFuZGxlVG9rZW5SZWRlZW0AAAACBQAAAA0kYWNjOTU0NTU1NDk2CQABkQAAAAIFAAAADSRsaXN0NTQ1NTU0OTYAAAAAAAAAAAkDCQAAAAAAAAIFAAAADSRzaXplNTQ1NTU0OTYAAAAAAAAAAAoFAAAADiRhY2MxMDU0NTU1NDk2BAAAAA4kYWNjMTE1NDU1NTQ5NgkBAAAAEWhhbmRsZVRva2VuUmVkZWVtAAAAAgUAAAAOJGFjYzEwNTQ1NTU0OTYJAAGRAAAAAgUAAAANJGxpc3Q1NDU1NTQ5NgAAAAAAAAAACgkAAAIAAAABAgAAABNMaXN0IHNpemUgZXhjZWVkIDEwBAAAAA0kbGlzdDU1MDI1NTQ0BQAAAAhhc3NldElkcwQAAAANJHNpemU1NTAyNTU0NAkAAZAAAAABBQAAAA0kbGlzdDU1MDI1NTQ0BAAAAA0kYWNjMDU1MDI1NTQ0BQAAAANuaWwDCQAAAAAAAAIFAAAADSRzaXplNTUwMjU1NDQAAAAAAAAAAAAFAAAADSRhY2MwNTUwMjU1NDQEAAAADSRhY2MxNTUwMjU1NDQJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA0kYWNjMDU1MDI1NTQ0CQABkQAAAAIFAAAADSRsaXN0NTUwMjU1NDQAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplNTUwMjU1NDQAAAAAAAAAAAEFAAAADSRhY2MxNTUwMjU1NDQEAAAADSRhY2MyNTUwMjU1NDQJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA0kYWNjMTU1MDI1NTQ0CQABkQAAAAIFAAAADSRsaXN0NTUwMjU1NDQAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplNTUwMjU1NDQAAAAAAAAAAAIFAAAADSRhY2MyNTUwMjU1NDQEAAAADSRhY2MzNTUwMjU1NDQJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA0kYWNjMjU1MDI1NTQ0CQABkQAAAAIFAAAADSRsaXN0NTUwMjU1NDQAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplNTUwMjU1NDQAAAAAAAAAAAMFAAAADSRhY2MzNTUwMjU1NDQEAAAADSRhY2M0NTUwMjU1NDQJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA0kYWNjMzU1MDI1NTQ0CQABkQAAAAIFAAAADSRsaXN0NTUwMjU1NDQAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplNTUwMjU1NDQAAAAAAAAAAAQFAAAADSRhY2M0NTUwMjU1NDQEAAAADSRhY2M1NTUwMjU1NDQJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA0kYWNjNDU1MDI1NTQ0CQABkQAAAAIFAAAADSRsaXN0NTUwMjU1NDQAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplNTUwMjU1NDQAAAAAAAAAAAUFAAAADSRhY2M1NTUwMjU1NDQEAAAADSRhY2M2NTUwMjU1NDQJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA0kYWNjNTU1MDI1NTQ0CQABkQAAAAIFAAAADSRsaXN0NTUwMjU1NDQAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplNTUwMjU1NDQAAAAAAAAAAAYFAAAADSRhY2M2NTUwMjU1NDQEAAAADSRhY2M3NTUwMjU1NDQJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA0kYWNjNjU1MDI1NTQ0CQABkQAAAAIFAAAADSRsaXN0NTUwMjU1NDQAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplNTUwMjU1NDQAAAAAAAAAAAcFAAAADSRhY2M3NTUwMjU1NDQEAAAADSRhY2M4NTUwMjU1NDQJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA0kYWNjNzU1MDI1NTQ0CQABkQAAAAIFAAAADSRsaXN0NTUwMjU1NDQAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplNTUwMjU1NDQAAAAAAAAAAAgFAAAADSRhY2M4NTUwMjU1NDQEAAAADSRhY2M5NTUwMjU1NDQJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA0kYWNjODU1MDI1NTQ0CQABkQAAAAIFAAAADSRsaXN0NTUwMjU1NDQAAAAAAAAAAAgDCQAAAAAAAAIFAAAADSRzaXplNTUwMjU1NDQAAAAAAAAAAAkFAAAADSRhY2M5NTUwMjU1NDQEAAAADiRhY2MxMDU1MDI1NTQ0CQEAAAASaGFuZGxlVG9rZW5SZWRlZW0yAAAAAgUAAAANJGFjYzk1NTAyNTU0NAkAAZEAAAACBQAAAA0kbGlzdDU1MDI1NTQ0AAAAAAAAAAAJAwkAAAAAAAACBQAAAA0kc2l6ZTU1MDI1NTQ0AAAAAAAAAAAKBQAAAA4kYWNjMTA1NTAyNTU0NAQAAAAOJGFjYzExNTUwMjU1NDQJAQAAABJoYW5kbGVUb2tlblJlZGVlbTIAAAACBQAAAA4kYWNjMTA1NTAyNTU0NAkAAZEAAAACBQAAAA0kbGlzdDU1MDI1NTQ0AAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTABAAAAEmNhbGN1bGF0ZU91dEFtb3VudAAAAAMAAAAIQW1vdW50SW4AAAAHYXNzZXRJbgAAAAhhc3NldE91dAQAAAAHSW5kZXhJbgkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAhhc3NldElkcwUAAAAHYXNzZXRJbgQAAAAISW5kZXhPdXQJAQAAAAV2YWx1ZQAAAAEJAARPAAAAAgUAAAAIYXNzZXRJZHMFAAAACGFzc2V0T3V0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JHNpemU3OTY4Nzk5OAAAAAAAAAAABwUAAAANJGFjYzc3OTY4Nzk5OAQAAAANJGFjYzg3OTY4Nzk5OAkBAAAAB2hhbmRsZXIAAAACBQAAAA0kYWNjNzc5Njg3OTk4CQABkQAAAAIFAAAADSRsaXN0Nzk2ODc5OTgAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplNzk2ODc5OTgAAAAAAAAAAAgFAAAADSRhY2M4Nzk2ODc5OTgEAAAADSRhY2M5Nzk2ODc5OTgJAQAAAAdoYW5kbGVyAAAAAgUAAAANJGFjYzg3OTY4Nzk5OAkAAZEAAAACBQAAAA0kbGlzdDc5Njg3OTk4AAAAAAAAAAAIAwkAAAAAAAACBQAAAA0kc2l6ZTc5Njg3OTk4AAAAAAAAAAAJBQAAAA0kYWNjOTc5Njg3OTk4BAAAAA4kYWNjMTA3OTY4Nzk5OAkBAAAAB2hhbmRsZXIAAAACBQAAAA0kYWNjOTc5Njg3OTk4CQABkQAAAAIFAAAADSRsaXN0Nzk2ODc5OTgAAAAAAAAAAAkDCQAAAAAAAAIFAAAADSRzaXplNzk2ODc5OTgAAAAAAAAAAAoFAAAADiRhY2MxMDc5Njg3OTk4BAAAAA4kYWNjMTE3OTY4Nzk5OAkBAAAAB2hhbmRsZXIAAAACBQAAAA4kYWNjMTA3OTY4Nzk5OAkAAZEAAAACBQAAAA0kbGlzdDc5Njg3OTk4AAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTADCQAAZgAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQIAAAAQZ2xvYmFsX3dhc0luaXRlZAAAAAAAAAAAAAkAAAIAAAABAgAAABNwb29sIGFscmVhZHkgaW5pdGVkBAAAABFpbml0aWFsUG9vbFRva2VucwkBAAAAGWNhbGN1bGF0ZVBvb2xUb2tlbnNBbW91bnQAAAABCAUAAAABaQAAAAhwYXltZW50cwQAAAAOcG9vbFRva2VuSXNzdWUJAARDAAAABwIAAAAHUHV6emxlNAIAAAAWUHV6emxlIFN3YXAgUG9vbCBUb2tlbgUAAAARaW5pdGlhbFBvb2xUb2tlbnMFAAAAEVBvb2xUb2tlbkRlY2ltYWxzBgUAAAAEdW5pdAAAAAAAAAAAAAQAAAALcG9vbFRva2VuSWQJAAQ4AAAAAQUAAAAOcG9vbFRva2VuSXNzdWUJAAROAAAAAgkBAAAAC3ByZXBhcmVMaXN0AAAAAAkABEwAAAACBQAAAA5wb29sVG9rZW5Jc3N1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAXZ2xvYmFsX3Bvb2xUb2tlbl9hbW91bnQFAAAAEWluaXRpYWxQb29sVG9rZW5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABBnbG9iYWxfd2FzSW5pdGVkAAAAAAAAAAABCQAETAAAAAIJAQAAAAtCaW5hcnlFbnRyeQAAAAICAAAAE2dsb2JhbF9wb29sVG9rZW5faWQFAAAAC3Bvb2xUb2tlbklkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAARaW5pdGlhbFBvb2xUb2tlbnMFAAAAC3Bvb2xUb2tlbklkBQAAAANuaWwAAAABaQEAAAAMYWRkTGlxdWlkaXR5AAAAAAkAAAIAAAABAgAAABBMUCBpcyBjbG9zZWQgeWV0AAAAAWkBAAAAD3JlbW92ZUxpcXVpZGl0eQAAAAAEAAAAA3BtdAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAkBAAAADHRyeUdldEJpbmFyeQAAAAECAAAAE2dsb2JhbF9wb29sVG9rZW5faWQJAAACAAAAAQIAAAAecGxlYXNlIGF0dGFjaCBwb29sIHNoYXJlIHRva2VuBAAAAAlQUmVkZWVtZWQIBQAAAANwbXQAAAAGYW1vdW50BAAAAAZyZXN1bHQJAQAAABZoYW5kbGVQb29sVG9rZW5zUmVkZWVtAAAAAgUAAAAJUFJlZGVlbWVkCAUAAAABaQAAAAZjYWxsZXIJAAROAAAAAgUAAAAGcmVzdWx0CQAETAAAAAIJAQAAAARCdXJuAAAAAgkBAAAADHRyeUdldEJpbmFyeQAAAAECAAAAE2dsb2JhbF9wb29sVG9rZW5faWQFAAAACVBSZWRlZW1lZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAXZ2xvYmFsX3Bvb2xUb2tl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", "height": 2782567, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: k5G9eDiCQMUQKFq78v3y9eKEpSHUmnUSWAAJX9VTSV5 Next: 6Pj1L3x4eASf2tzP3NkdwzyKdbjqEL8FcKgkwrt4DkFY Diff:
Old | New | Differences | |
---|---|---|---|
21 | 21 | ||
22 | 22 | let FeeScale = 10000 | |
23 | 23 | ||
24 | - | let feeAggregator = Address(base58' | |
24 | + | let feeAggregator = Address(base58'3PBmAwjkwsM83KQhjSMNZvgdFeYeLz9tdBD') | |
25 | 25 | ||
26 | 26 | func tryGetInteger (key) = match getInteger(this, key) { | |
27 | 27 | case b: Int => |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let T = 10 | |
5 | 5 | ||
6 | 6 | let assetIds = [base58'EfdcPXw7o7rrrPWmMBr2sa66Dk95n56622ngujbaGhye', base58'B543bkZcZNo5GrUnd5fxB6EwkiJhAVyKCkPn5nWzZC2s', base58'5bcAh1r6ydrpk44FEmrnmJQjumgKo3NKEEsyfgmZYwxC', base58'54UszKAj3MtYmkdRCqSXAcaQLaVALBy7CCrVkfmfzhxR', base58'5nk9JW8yRonyNBEwhChoksLxpBECVxbVLqaNuQs9EJn1', base58'Dfx6LJPndo1h5Umk9SofDhMDs6Gi8cHyT3873pSgoASU', base58'4kwKSf4Bx2Wq8YxKnVZBhcEHyXzEtJ2pw7ixfJgirwf2', base58'Ej7kEzxvUsoiMtJKiuFpMD9tC6qfCADpZynyW2vqcWW', base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS', base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'] | |
7 | 7 | ||
8 | 8 | let AssetsWeights = [10, 10, 10, 10, 10, 10, 10, 10, 10, 10] | |
9 | 9 | ||
10 | 10 | let AssetsWeightsDecimals = 2 | |
11 | 11 | ||
12 | 12 | let PoolTokenDecimals = 0 | |
13 | 13 | ||
14 | 14 | let Decimals = [8, 8, 8, 8, 8, 8, 8, 8, 8, 6] | |
15 | 15 | ||
16 | 16 | let Scales = [100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 1000000] | |
17 | 17 | ||
18 | 18 | let Fee = 200 | |
19 | 19 | ||
20 | 20 | let Scale = 10000 | |
21 | 21 | ||
22 | 22 | let FeeScale = 10000 | |
23 | 23 | ||
24 | - | let feeAggregator = Address(base58' | |
24 | + | let feeAggregator = Address(base58'3PBmAwjkwsM83KQhjSMNZvgdFeYeLz9tdBD') | |
25 | 25 | ||
26 | 26 | func tryGetInteger (key) = match getInteger(this, key) { | |
27 | 27 | case b: Int => | |
28 | 28 | b | |
29 | 29 | case _ => | |
30 | 30 | 0 | |
31 | 31 | } | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func tryGetBinary (key) = match getBinary(this, key) { | |
35 | 35 | case b: ByteVector => | |
36 | 36 | b | |
37 | 37 | case _ => | |
38 | 38 | base58'' | |
39 | 39 | } | |
40 | 40 | ||
41 | 41 | ||
42 | 42 | func getCurrentTokenBalance (tokenType) = { | |
43 | 43 | let tokenId = toBase58String(assetIds[tokenType]) | |
44 | 44 | tryGetInteger((("global_" + tokenId) + "_balance")) | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
48 | 48 | func calculatePIssued (amount,tokenId) = { | |
49 | 49 | let Psupply = tryGetInteger("global_poolToken_amount") | |
50 | 50 | let Balance = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance")) | |
51 | 51 | fraction(amount, Psupply, Balance, DOWN) | |
52 | 52 | } | |
53 | 53 | ||
54 | 54 | ||
55 | 55 | func getMinPIssued (payments) = { | |
56 | 56 | func handler (accum,current) = { | |
57 | 57 | let PIssued = calculatePIssued(current.amount, value(current.assetId)) | |
58 | 58 | if (if ((accum == 0)) | |
59 | 59 | then true | |
60 | 60 | else (accum > PIssued)) | |
61 | 61 | then PIssued | |
62 | 62 | else accum | |
63 | 63 | } | |
64 | 64 | ||
65 | 65 | let minPIssed = { | |
66 | 66 | let $list22112241 = payments | |
67 | 67 | let $size22112241 = size($list22112241) | |
68 | 68 | let $acc022112241 = 0 | |
69 | 69 | if (($size22112241 == 0)) | |
70 | 70 | then $acc022112241 | |
71 | 71 | else { | |
72 | 72 | let $acc122112241 = handler($acc022112241, $list22112241[0]) | |
73 | 73 | if (($size22112241 == 1)) | |
74 | 74 | then $acc122112241 | |
75 | 75 | else { | |
76 | 76 | let $acc222112241 = handler($acc122112241, $list22112241[1]) | |
77 | 77 | if (($size22112241 == 2)) | |
78 | 78 | then $acc222112241 | |
79 | 79 | else { | |
80 | 80 | let $acc322112241 = handler($acc222112241, $list22112241[2]) | |
81 | 81 | if (($size22112241 == 3)) | |
82 | 82 | then $acc322112241 | |
83 | 83 | else { | |
84 | 84 | let $acc422112241 = handler($acc322112241, $list22112241[3]) | |
85 | 85 | if (($size22112241 == 4)) | |
86 | 86 | then $acc422112241 | |
87 | 87 | else { | |
88 | 88 | let $acc522112241 = handler($acc422112241, $list22112241[4]) | |
89 | 89 | if (($size22112241 == 5)) | |
90 | 90 | then $acc522112241 | |
91 | 91 | else { | |
92 | 92 | let $acc622112241 = handler($acc522112241, $list22112241[5]) | |
93 | 93 | if (($size22112241 == 6)) | |
94 | 94 | then $acc622112241 | |
95 | 95 | else { | |
96 | 96 | let $acc722112241 = handler($acc622112241, $list22112241[6]) | |
97 | 97 | if (($size22112241 == 7)) | |
98 | 98 | then $acc722112241 | |
99 | 99 | else { | |
100 | 100 | let $acc822112241 = handler($acc722112241, $list22112241[7]) | |
101 | 101 | if (($size22112241 == 8)) | |
102 | 102 | then $acc822112241 | |
103 | 103 | else { | |
104 | 104 | let $acc922112241 = handler($acc822112241, $list22112241[8]) | |
105 | 105 | if (($size22112241 == 9)) | |
106 | 106 | then $acc922112241 | |
107 | 107 | else { | |
108 | 108 | let $acc1022112241 = handler($acc922112241, $list22112241[9]) | |
109 | 109 | if (($size22112241 == 10)) | |
110 | 110 | then $acc1022112241 | |
111 | 111 | else { | |
112 | 112 | let $acc1122112241 = handler($acc1022112241, $list22112241[10]) | |
113 | 113 | throw("List size exceed 10") | |
114 | 114 | } | |
115 | 115 | } | |
116 | 116 | } | |
117 | 117 | } | |
118 | 118 | } | |
119 | 119 | } | |
120 | 120 | } | |
121 | 121 | } | |
122 | 122 | } | |
123 | 123 | } | |
124 | 124 | } | |
125 | 125 | } | |
126 | 126 | minPIssed | |
127 | 127 | } | |
128 | 128 | ||
129 | 129 | ||
130 | 130 | func checkTokensValidity (payments) = { | |
131 | 131 | func handler1 (accum,payment) = (accum ++ [value(payment.assetId)]) | |
132 | 132 | ||
133 | 133 | let ids = { | |
134 | 134 | let $list24452477 = payments | |
135 | 135 | let $size24452477 = size($list24452477) | |
136 | 136 | let $acc024452477 = nil | |
137 | 137 | if (($size24452477 == 0)) | |
138 | 138 | then $acc024452477 | |
139 | 139 | else { | |
140 | 140 | let $acc124452477 = handler1($acc024452477, $list24452477[0]) | |
141 | 141 | if (($size24452477 == 1)) | |
142 | 142 | then $acc124452477 | |
143 | 143 | else { | |
144 | 144 | let $acc224452477 = handler1($acc124452477, $list24452477[1]) | |
145 | 145 | if (($size24452477 == 2)) | |
146 | 146 | then $acc224452477 | |
147 | 147 | else { | |
148 | 148 | let $acc324452477 = handler1($acc224452477, $list24452477[2]) | |
149 | 149 | if (($size24452477 == 3)) | |
150 | 150 | then $acc324452477 | |
151 | 151 | else { | |
152 | 152 | let $acc424452477 = handler1($acc324452477, $list24452477[3]) | |
153 | 153 | if (($size24452477 == 4)) | |
154 | 154 | then $acc424452477 | |
155 | 155 | else { | |
156 | 156 | let $acc524452477 = handler1($acc424452477, $list24452477[4]) | |
157 | 157 | if (($size24452477 == 5)) | |
158 | 158 | then $acc524452477 | |
159 | 159 | else { | |
160 | 160 | let $acc624452477 = handler1($acc524452477, $list24452477[5]) | |
161 | 161 | if (($size24452477 == 6)) | |
162 | 162 | then $acc624452477 | |
163 | 163 | else { | |
164 | 164 | let $acc724452477 = handler1($acc624452477, $list24452477[6]) | |
165 | 165 | if (($size24452477 == 7)) | |
166 | 166 | then $acc724452477 | |
167 | 167 | else { | |
168 | 168 | let $acc824452477 = handler1($acc724452477, $list24452477[7]) | |
169 | 169 | if (($size24452477 == 8)) | |
170 | 170 | then $acc824452477 | |
171 | 171 | else { | |
172 | 172 | let $acc924452477 = handler1($acc824452477, $list24452477[8]) | |
173 | 173 | if (($size24452477 == 9)) | |
174 | 174 | then $acc924452477 | |
175 | 175 | else { | |
176 | 176 | let $acc1024452477 = handler1($acc924452477, $list24452477[9]) | |
177 | 177 | if (($size24452477 == 10)) | |
178 | 178 | then $acc1024452477 | |
179 | 179 | else { | |
180 | 180 | let $acc1124452477 = handler1($acc1024452477, $list24452477[10]) | |
181 | 181 | throw("List size exceed 10") | |
182 | 182 | } | |
183 | 183 | } | |
184 | 184 | } | |
185 | 185 | } | |
186 | 186 | } | |
187 | 187 | } | |
188 | 188 | } | |
189 | 189 | } | |
190 | 190 | } | |
191 | 191 | } | |
192 | 192 | } | |
193 | 193 | } | |
194 | 194 | func handler2 (accum,assetId) = if ((indexOf(ids, assetId) != unit)) | |
195 | 195 | then (accum + 1) | |
196 | 196 | else throw(("asset not attached: " + toBase58String(assetId))) | |
197 | 197 | ||
198 | 198 | let checks = { | |
199 | 199 | let $list26702701 = assetIds | |
200 | 200 | let $size26702701 = size($list26702701) | |
201 | 201 | let $acc026702701 = 0 | |
202 | 202 | if (($size26702701 == 0)) | |
203 | 203 | then $acc026702701 | |
204 | 204 | else { | |
205 | 205 | let $acc126702701 = handler2($acc026702701, $list26702701[0]) | |
206 | 206 | if (($size26702701 == 1)) | |
207 | 207 | then $acc126702701 | |
208 | 208 | else { | |
209 | 209 | let $acc226702701 = handler2($acc126702701, $list26702701[1]) | |
210 | 210 | if (($size26702701 == 2)) | |
211 | 211 | then $acc226702701 | |
212 | 212 | else { | |
213 | 213 | let $acc326702701 = handler2($acc226702701, $list26702701[2]) | |
214 | 214 | if (($size26702701 == 3)) | |
215 | 215 | then $acc326702701 | |
216 | 216 | else { | |
217 | 217 | let $acc426702701 = handler2($acc326702701, $list26702701[3]) | |
218 | 218 | if (($size26702701 == 4)) | |
219 | 219 | then $acc426702701 | |
220 | 220 | else { | |
221 | 221 | let $acc526702701 = handler2($acc426702701, $list26702701[4]) | |
222 | 222 | if (($size26702701 == 5)) | |
223 | 223 | then $acc526702701 | |
224 | 224 | else { | |
225 | 225 | let $acc626702701 = handler2($acc526702701, $list26702701[5]) | |
226 | 226 | if (($size26702701 == 6)) | |
227 | 227 | then $acc626702701 | |
228 | 228 | else { | |
229 | 229 | let $acc726702701 = handler2($acc626702701, $list26702701[6]) | |
230 | 230 | if (($size26702701 == 7)) | |
231 | 231 | then $acc726702701 | |
232 | 232 | else { | |
233 | 233 | let $acc826702701 = handler2($acc726702701, $list26702701[7]) | |
234 | 234 | if (($size26702701 == 8)) | |
235 | 235 | then $acc826702701 | |
236 | 236 | else { | |
237 | 237 | let $acc926702701 = handler2($acc826702701, $list26702701[8]) | |
238 | 238 | if (($size26702701 == 9)) | |
239 | 239 | then $acc926702701 | |
240 | 240 | else { | |
241 | 241 | let $acc1026702701 = handler2($acc926702701, $list26702701[9]) | |
242 | 242 | if (($size26702701 == 10)) | |
243 | 243 | then $acc1026702701 | |
244 | 244 | else { | |
245 | 245 | let $acc1126702701 = handler2($acc1026702701, $list26702701[10]) | |
246 | 246 | throw("List size exceed 10") | |
247 | 247 | } | |
248 | 248 | } | |
249 | 249 | } | |
250 | 250 | } | |
251 | 251 | } | |
252 | 252 | } | |
253 | 253 | } | |
254 | 254 | } | |
255 | 255 | } | |
256 | 256 | } | |
257 | 257 | } | |
258 | 258 | } | |
259 | 259 | if ((checks == checks)) | |
260 | 260 | then true | |
261 | 261 | else throw("Strict value is not equal to itself.") | |
262 | 262 | } | |
263 | 263 | ||
264 | 264 | ||
265 | 265 | func handlePoolTokensAdd (PIssued,payments,userAddress) = { | |
266 | 266 | func getTokenPaymentAmount (tokenId) = { | |
267 | 267 | func handler (accum,payment) = if ((payment.assetId == tokenId)) | |
268 | 268 | then payment.amount | |
269 | 269 | else accum | |
270 | 270 | ||
271 | 271 | let $list30063036 = payments | |
272 | 272 | let $size30063036 = size($list30063036) | |
273 | 273 | let $acc030063036 = 0 | |
274 | 274 | if (($size30063036 == 0)) | |
275 | 275 | then $acc030063036 | |
276 | 276 | else { | |
277 | 277 | let $acc130063036 = handler($acc030063036, $list30063036[0]) | |
278 | 278 | if (($size30063036 == 1)) | |
279 | 279 | then $acc130063036 | |
280 | 280 | else { | |
281 | 281 | let $acc230063036 = handler($acc130063036, $list30063036[1]) | |
282 | 282 | if (($size30063036 == 2)) | |
283 | 283 | then $acc230063036 | |
284 | 284 | else { | |
285 | 285 | let $acc330063036 = handler($acc230063036, $list30063036[2]) | |
286 | 286 | if (($size30063036 == 3)) | |
287 | 287 | then $acc330063036 | |
288 | 288 | else { | |
289 | 289 | let $acc430063036 = handler($acc330063036, $list30063036[3]) | |
290 | 290 | if (($size30063036 == 4)) | |
291 | 291 | then $acc430063036 | |
292 | 292 | else { | |
293 | 293 | let $acc530063036 = handler($acc430063036, $list30063036[4]) | |
294 | 294 | if (($size30063036 == 5)) | |
295 | 295 | then $acc530063036 | |
296 | 296 | else { | |
297 | 297 | let $acc630063036 = handler($acc530063036, $list30063036[5]) | |
298 | 298 | if (($size30063036 == 6)) | |
299 | 299 | then $acc630063036 | |
300 | 300 | else { | |
301 | 301 | let $acc730063036 = handler($acc630063036, $list30063036[6]) | |
302 | 302 | if (($size30063036 == 7)) | |
303 | 303 | then $acc730063036 | |
304 | 304 | else { | |
305 | 305 | let $acc830063036 = handler($acc730063036, $list30063036[7]) | |
306 | 306 | if (($size30063036 == 8)) | |
307 | 307 | then $acc830063036 | |
308 | 308 | else { | |
309 | 309 | let $acc930063036 = handler($acc830063036, $list30063036[8]) | |
310 | 310 | if (($size30063036 == 9)) | |
311 | 311 | then $acc930063036 | |
312 | 312 | else { | |
313 | 313 | let $acc1030063036 = handler($acc930063036, $list30063036[9]) | |
314 | 314 | if (($size30063036 == 10)) | |
315 | 315 | then $acc1030063036 | |
316 | 316 | else { | |
317 | 317 | let $acc1130063036 = handler($acc1030063036, $list30063036[10]) | |
318 | 318 | throw("List size exceed 10") | |
319 | 319 | } | |
320 | 320 | } | |
321 | 321 | } | |
322 | 322 | } | |
323 | 323 | } | |
324 | 324 | } | |
325 | 325 | } | |
326 | 326 | } | |
327 | 327 | } | |
328 | 328 | } | |
329 | 329 | } | |
330 | 330 | } | |
331 | 331 | ||
332 | 332 | func handleTokenChange (accum,tokenId) = { | |
333 | 333 | let Bk = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance")) | |
334 | 334 | let PSupply = tryGetInteger("global_poolToken_amount") | |
335 | 335 | let tokenDecimals = tryGetInteger((("static_" + toBase58String(tokenId)) + "_scale")) | |
336 | 336 | let Dk = fraction((fraction((PSupply + PIssued), tokenDecimals, PSupply, DOWN) - tokenDecimals), Bk, tokenDecimals, DOWN) | |
337 | 337 | (accum ++ [IntegerEntry((("global_" + toBase58String(tokenId)) + "_balance"), (Bk + Dk))]) | |
338 | 338 | } | |
339 | 339 | ||
340 | 340 | func handleTokenChange2 (accum,tokenId) = { | |
341 | 341 | let Bk = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance")) | |
342 | 342 | let PSupply = tryGetInteger("global_poolToken_amount") | |
343 | 343 | let tokenDecimals = tryGetInteger((("static_" + toBase58String(tokenId)) + "_scale")) | |
344 | 344 | let Dk = fraction((fraction((PSupply + PIssued), tokenDecimals, PSupply, DOWN) - tokenDecimals), Bk, tokenDecimals, DOWN) | |
345 | 345 | let paymentAmount = getTokenPaymentAmount(tokenId) | |
346 | 346 | let toReturn = ((if ((paymentAmount != 0)) | |
347 | 347 | then paymentAmount | |
348 | 348 | else 0) - Dk) | |
349 | 349 | (accum ++ [ScriptTransfer(userAddress, toReturn, tokenId)]) | |
350 | 350 | } | |
351 | 351 | ||
352 | 352 | ({ | |
353 | 353 | let $list42594300 = assetIds | |
354 | 354 | let $size42594300 = size($list42594300) | |
355 | 355 | let $acc042594300 = nil | |
356 | 356 | if (($size42594300 == 0)) | |
357 | 357 | then $acc042594300 | |
358 | 358 | else { | |
359 | 359 | let $acc142594300 = handleTokenChange($acc042594300, $list42594300[0]) | |
360 | 360 | if (($size42594300 == 1)) | |
361 | 361 | then $acc142594300 | |
362 | 362 | else { | |
363 | 363 | let $acc242594300 = handleTokenChange($acc142594300, $list42594300[1]) | |
364 | 364 | if (($size42594300 == 2)) | |
365 | 365 | then $acc242594300 | |
366 | 366 | else { | |
367 | 367 | let $acc342594300 = handleTokenChange($acc242594300, $list42594300[2]) | |
368 | 368 | if (($size42594300 == 3)) | |
369 | 369 | then $acc342594300 | |
370 | 370 | else { | |
371 | 371 | let $acc442594300 = handleTokenChange($acc342594300, $list42594300[3]) | |
372 | 372 | if (($size42594300 == 4)) | |
373 | 373 | then $acc442594300 | |
374 | 374 | else { | |
375 | 375 | let $acc542594300 = handleTokenChange($acc442594300, $list42594300[4]) | |
376 | 376 | if (($size42594300 == 5)) | |
377 | 377 | then $acc542594300 | |
378 | 378 | else { | |
379 | 379 | let $acc642594300 = handleTokenChange($acc542594300, $list42594300[5]) | |
380 | 380 | if (($size42594300 == 6)) | |
381 | 381 | then $acc642594300 | |
382 | 382 | else { | |
383 | 383 | let $acc742594300 = handleTokenChange($acc642594300, $list42594300[6]) | |
384 | 384 | if (($size42594300 == 7)) | |
385 | 385 | then $acc742594300 | |
386 | 386 | else { | |
387 | 387 | let $acc842594300 = handleTokenChange($acc742594300, $list42594300[7]) | |
388 | 388 | if (($size42594300 == 8)) | |
389 | 389 | then $acc842594300 | |
390 | 390 | else { | |
391 | 391 | let $acc942594300 = handleTokenChange($acc842594300, $list42594300[8]) | |
392 | 392 | if (($size42594300 == 9)) | |
393 | 393 | then $acc942594300 | |
394 | 394 | else { | |
395 | 395 | let $acc1042594300 = handleTokenChange($acc942594300, $list42594300[9]) | |
396 | 396 | if (($size42594300 == 10)) | |
397 | 397 | then $acc1042594300 | |
398 | 398 | else { | |
399 | 399 | let $acc1142594300 = handleTokenChange($acc1042594300, $list42594300[10]) | |
400 | 400 | throw("List size exceed 10") | |
401 | 401 | } | |
402 | 402 | } | |
403 | 403 | } | |
404 | 404 | } | |
405 | 405 | } | |
406 | 406 | } | |
407 | 407 | } | |
408 | 408 | } | |
409 | 409 | } | |
410 | 410 | } | |
411 | 411 | } | |
412 | 412 | } ++ { | |
413 | 413 | let $list43074349 = assetIds | |
414 | 414 | let $size43074349 = size($list43074349) | |
415 | 415 | let $acc043074349 = nil | |
416 | 416 | if (($size43074349 == 0)) | |
417 | 417 | then $acc043074349 | |
418 | 418 | else { | |
419 | 419 | let $acc143074349 = handleTokenChange2($acc043074349, $list43074349[0]) | |
420 | 420 | if (($size43074349 == 1)) | |
421 | 421 | then $acc143074349 | |
422 | 422 | else { | |
423 | 423 | let $acc243074349 = handleTokenChange2($acc143074349, $list43074349[1]) | |
424 | 424 | if (($size43074349 == 2)) | |
425 | 425 | then $acc243074349 | |
426 | 426 | else { | |
427 | 427 | let $acc343074349 = handleTokenChange2($acc243074349, $list43074349[2]) | |
428 | 428 | if (($size43074349 == 3)) | |
429 | 429 | then $acc343074349 | |
430 | 430 | else { | |
431 | 431 | let $acc443074349 = handleTokenChange2($acc343074349, $list43074349[3]) | |
432 | 432 | if (($size43074349 == 4)) | |
433 | 433 | then $acc443074349 | |
434 | 434 | else { | |
435 | 435 | let $acc543074349 = handleTokenChange2($acc443074349, $list43074349[4]) | |
436 | 436 | if (($size43074349 == 5)) | |
437 | 437 | then $acc543074349 | |
438 | 438 | else { | |
439 | 439 | let $acc643074349 = handleTokenChange2($acc543074349, $list43074349[5]) | |
440 | 440 | if (($size43074349 == 6)) | |
441 | 441 | then $acc643074349 | |
442 | 442 | else { | |
443 | 443 | let $acc743074349 = handleTokenChange2($acc643074349, $list43074349[6]) | |
444 | 444 | if (($size43074349 == 7)) | |
445 | 445 | then $acc743074349 | |
446 | 446 | else { | |
447 | 447 | let $acc843074349 = handleTokenChange2($acc743074349, $list43074349[7]) | |
448 | 448 | if (($size43074349 == 8)) | |
449 | 449 | then $acc843074349 | |
450 | 450 | else { | |
451 | 451 | let $acc943074349 = handleTokenChange2($acc843074349, $list43074349[8]) | |
452 | 452 | if (($size43074349 == 9)) | |
453 | 453 | then $acc943074349 | |
454 | 454 | else { | |
455 | 455 | let $acc1043074349 = handleTokenChange2($acc943074349, $list43074349[9]) | |
456 | 456 | if (($size43074349 == 10)) | |
457 | 457 | then $acc1043074349 | |
458 | 458 | else { | |
459 | 459 | let $acc1143074349 = handleTokenChange2($acc1043074349, $list43074349[10]) | |
460 | 460 | throw("List size exceed 10") | |
461 | 461 | } | |
462 | 462 | } | |
463 | 463 | } | |
464 | 464 | } | |
465 | 465 | } | |
466 | 466 | } | |
467 | 467 | } | |
468 | 468 | } | |
469 | 469 | } | |
470 | 470 | } | |
471 | 471 | } | |
472 | 472 | }) | |
473 | 473 | } | |
474 | 474 | ||
475 | 475 | ||
476 | 476 | func handlePoolTokensRedeem (PRedeemed,userAddress) = { | |
477 | 477 | func handleTokenRedeem (accum,tokenId) = { | |
478 | 478 | let Bk = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance")) | |
479 | 479 | let PSupply = tryGetInteger("global_poolToken_amount") | |
480 | 480 | let tokenDecimals = tryGetInteger((("static_" + toBase58String(tokenId)) + "_scale")) | |
481 | 481 | let amount = fraction((tokenDecimals - fraction((PSupply - PRedeemed), tokenDecimals, PSupply, DOWN)), Bk, tokenDecimals, DOWN) | |
482 | 482 | (accum ++ [IntegerEntry((("global_" + toBase58String(tokenId)) + "_balance"), (Bk - amount))]) | |
483 | 483 | } | |
484 | 484 | ||
485 | 485 | func handleTokenRedeem2 (accum,tokenId) = { | |
486 | 486 | let Bk = tryGetInteger((("global_" + toBase58String(tokenId)) + "_balance")) | |
487 | 487 | let PSupply = tryGetInteger("global_poolToken_amount") | |
488 | 488 | let tokenDecimals = tryGetInteger((("static_" + toBase58String(tokenId)) + "_scale")) | |
489 | 489 | let amount = fraction((tokenDecimals - fraction((PSupply - PRedeemed), tokenDecimals, PSupply, DOWN)), Bk, tokenDecimals, DOWN) | |
490 | 490 | (accum ++ [ScriptTransfer(userAddress, amount, tokenId)]) | |
491 | 491 | } | |
492 | 492 | ||
493 | 493 | ({ | |
494 | 494 | let $list54555496 = assetIds | |
495 | 495 | let $size54555496 = size($list54555496) | |
496 | 496 | let $acc054555496 = nil | |
497 | 497 | if (($size54555496 == 0)) | |
498 | 498 | then $acc054555496 | |
499 | 499 | else { | |
500 | 500 | let $acc154555496 = handleTokenRedeem($acc054555496, $list54555496[0]) | |
501 | 501 | if (($size54555496 == 1)) | |
502 | 502 | then $acc154555496 | |
503 | 503 | else { | |
504 | 504 | let $acc254555496 = handleTokenRedeem($acc154555496, $list54555496[1]) | |
505 | 505 | if (($size54555496 == 2)) | |
506 | 506 | then $acc254555496 | |
507 | 507 | else { | |
508 | 508 | let $acc354555496 = handleTokenRedeem($acc254555496, $list54555496[2]) | |
509 | 509 | if (($size54555496 == 3)) | |
510 | 510 | then $acc354555496 | |
511 | 511 | else { | |
512 | 512 | let $acc454555496 = handleTokenRedeem($acc354555496, $list54555496[3]) | |
513 | 513 | if (($size54555496 == 4)) | |
514 | 514 | then $acc454555496 | |
515 | 515 | else { | |
516 | 516 | let $acc554555496 = handleTokenRedeem($acc454555496, $list54555496[4]) | |
517 | 517 | if (($size54555496 == 5)) | |
518 | 518 | then $acc554555496 | |
519 | 519 | else { | |
520 | 520 | let $acc654555496 = handleTokenRedeem($acc554555496, $list54555496[5]) | |
521 | 521 | if (($size54555496 == 6)) | |
522 | 522 | then $acc654555496 | |
523 | 523 | else { | |
524 | 524 | let $acc754555496 = handleTokenRedeem($acc654555496, $list54555496[6]) | |
525 | 525 | if (($size54555496 == 7)) | |
526 | 526 | then $acc754555496 | |
527 | 527 | else { | |
528 | 528 | let $acc854555496 = handleTokenRedeem($acc754555496, $list54555496[7]) | |
529 | 529 | if (($size54555496 == 8)) | |
530 | 530 | then $acc854555496 | |
531 | 531 | else { | |
532 | 532 | let $acc954555496 = handleTokenRedeem($acc854555496, $list54555496[8]) | |
533 | 533 | if (($size54555496 == 9)) | |
534 | 534 | then $acc954555496 | |
535 | 535 | else { | |
536 | 536 | let $acc1054555496 = handleTokenRedeem($acc954555496, $list54555496[9]) | |
537 | 537 | if (($size54555496 == 10)) | |
538 | 538 | then $acc1054555496 | |
539 | 539 | else { | |
540 | 540 | let $acc1154555496 = handleTokenRedeem($acc1054555496, $list54555496[10]) | |
541 | 541 | throw("List size exceed 10") | |
542 | 542 | } | |
543 | 543 | } | |
544 | 544 | } | |
545 | 545 | } | |
546 | 546 | } | |
547 | 547 | } | |
548 | 548 | } | |
549 | 549 | } | |
550 | 550 | } | |
551 | 551 | } | |
552 | 552 | } | |
553 | 553 | } ++ { | |
554 | 554 | let $list55025544 = assetIds | |
555 | 555 | let $size55025544 = size($list55025544) | |
556 | 556 | let $acc055025544 = nil | |
557 | 557 | if (($size55025544 == 0)) | |
558 | 558 | then $acc055025544 | |
559 | 559 | else { | |
560 | 560 | let $acc155025544 = handleTokenRedeem2($acc055025544, $list55025544[0]) | |
561 | 561 | if (($size55025544 == 1)) | |
562 | 562 | then $acc155025544 | |
563 | 563 | else { | |
564 | 564 | let $acc255025544 = handleTokenRedeem2($acc155025544, $list55025544[1]) | |
565 | 565 | if (($size55025544 == 2)) | |
566 | 566 | then $acc255025544 | |
567 | 567 | else { | |
568 | 568 | let $acc355025544 = handleTokenRedeem2($acc255025544, $list55025544[2]) | |
569 | 569 | if (($size55025544 == 3)) | |
570 | 570 | then $acc355025544 | |
571 | 571 | else { | |
572 | 572 | let $acc455025544 = handleTokenRedeem2($acc355025544, $list55025544[3]) | |
573 | 573 | if (($size55025544 == 4)) | |
574 | 574 | then $acc455025544 | |
575 | 575 | else { | |
576 | 576 | let $acc555025544 = handleTokenRedeem2($acc455025544, $list55025544[4]) | |
577 | 577 | if (($size55025544 == 5)) | |
578 | 578 | then $acc555025544 | |
579 | 579 | else { | |
580 | 580 | let $acc655025544 = handleTokenRedeem2($acc555025544, $list55025544[5]) | |
581 | 581 | if (($size55025544 == 6)) | |
582 | 582 | then $acc655025544 | |
583 | 583 | else { | |
584 | 584 | let $acc755025544 = handleTokenRedeem2($acc655025544, $list55025544[6]) | |
585 | 585 | if (($size55025544 == 7)) | |
586 | 586 | then $acc755025544 | |
587 | 587 | else { | |
588 | 588 | let $acc855025544 = handleTokenRedeem2($acc755025544, $list55025544[7]) | |
589 | 589 | if (($size55025544 == 8)) | |
590 | 590 | then $acc855025544 | |
591 | 591 | else { | |
592 | 592 | let $acc955025544 = handleTokenRedeem2($acc855025544, $list55025544[8]) | |
593 | 593 | if (($size55025544 == 9)) | |
594 | 594 | then $acc955025544 | |
595 | 595 | else { | |
596 | 596 | let $acc1055025544 = handleTokenRedeem2($acc955025544, $list55025544[9]) | |
597 | 597 | if (($size55025544 == 10)) | |
598 | 598 | then $acc1055025544 | |
599 | 599 | else { | |
600 | 600 | let $acc1155025544 = handleTokenRedeem2($acc1055025544, $list55025544[10]) | |
601 | 601 | throw("List size exceed 10") | |
602 | 602 | } | |
603 | 603 | } | |
604 | 604 | } | |
605 | 605 | } | |
606 | 606 | } | |
607 | 607 | } | |
608 | 608 | } | |
609 | 609 | } | |
610 | 610 | } | |
611 | 611 | } | |
612 | 612 | } | |
613 | 613 | }) | |
614 | 614 | } | |
615 | 615 | ||
616 | 616 | ||
617 | 617 | func calculateOutAmount (AmountIn,assetIn,assetOut) = { | |
618 | 618 | let IndexIn = value(indexOf(assetIds, assetIn)) | |
619 | 619 | let IndexOut = value(indexOf(assetIds, assetOut)) | |
620 | 620 | if ((IndexIn == IndexOut)) | |
621 | 621 | then throw("inalid tokens pair") | |
622 | 622 | else { | |
623 | 623 | let BalanceIn = tryGetInteger((("global_" + toBase58String(assetIn)) + "_balance")) | |
624 | 624 | let BalanceOut = tryGetInteger((("global_" + toBase58String(assetOut)) + "_balance")) | |
625 | 625 | fraction(BalanceOut, (Scales[IndexOut] - pow(((BalanceIn * Scales[IndexIn]) / (BalanceIn + AmountIn)), Decimals[IndexIn], fraction(AssetsWeights[IndexIn], 10000, AssetsWeights[IndexOut]), 4, Decimals[IndexOut], FLOOR)), Scales[IndexOut], DOWN) | |
626 | 626 | } | |
627 | 627 | } | |
628 | 628 | ||
629 | 629 | ||
630 | 630 | @Callable(i) | |
631 | 631 | func preInit () = [IntegerEntry((("static_" + toBase58String(assetIds[0])) + "_scale"), Scales[0]), IntegerEntry((("static_" + toBase58String(assetIds[1])) + "_scale"), Scales[1]), IntegerEntry((("static_" + toBase58String(assetIds[2])) + "_scale"), Scales[2]), IntegerEntry((("static_" + toBase58String(assetIds[3])) + "_scale"), Scales[3]), IntegerEntry((("static_" + toBase58String(assetIds[4])) + "_scale"), Scales[4]), IntegerEntry((("static_" + toBase58String(assetIds[5])) + "_scale"), Scales[5]), IntegerEntry((("static_" + toBase58String(assetIds[6])) + "_scale"), Scales[6]), IntegerEntry((("static_" + toBase58String(assetIds[7])) + "_scale"), Scales[7]), IntegerEntry((("static_" + toBase58String(assetIds[8])) + "_scale"), Scales[8]), IntegerEntry((("static_" + toBase58String(assetIds[9])) + "_scale"), Scales[9])] | |
632 | 632 | ||
633 | 633 | ||
634 | 634 | ||
635 | 635 | @Callable(i) | |
636 | 636 | func init () = { | |
637 | 637 | func prepareList () = { | |
638 | 638 | func handler (accum,n) = (accum ++ [IntegerEntry((("global_" + toBase58String(value(n.assetId))) + "_balance"), n.amount)]) | |
639 | 639 | ||
640 | 640 | let $list74697502 = i.payments | |
641 | 641 | let $size74697502 = size($list74697502) | |
642 | 642 | let $acc074697502 = nil | |
643 | 643 | if (($size74697502 == 0)) | |
644 | 644 | then $acc074697502 | |
645 | 645 | else { | |
646 | 646 | let $acc174697502 = handler($acc074697502, $list74697502[0]) | |
647 | 647 | if (($size74697502 == 1)) | |
648 | 648 | then $acc174697502 | |
649 | 649 | else { | |
650 | 650 | let $acc274697502 = handler($acc174697502, $list74697502[1]) | |
651 | 651 | if (($size74697502 == 2)) | |
652 | 652 | then $acc274697502 | |
653 | 653 | else { | |
654 | 654 | let $acc374697502 = handler($acc274697502, $list74697502[2]) | |
655 | 655 | if (($size74697502 == 3)) | |
656 | 656 | then $acc374697502 | |
657 | 657 | else { | |
658 | 658 | let $acc474697502 = handler($acc374697502, $list74697502[3]) | |
659 | 659 | if (($size74697502 == 4)) | |
660 | 660 | then $acc474697502 | |
661 | 661 | else { | |
662 | 662 | let $acc574697502 = handler($acc474697502, $list74697502[4]) | |
663 | 663 | if (($size74697502 == 5)) | |
664 | 664 | then $acc574697502 | |
665 | 665 | else { | |
666 | 666 | let $acc674697502 = handler($acc574697502, $list74697502[5]) | |
667 | 667 | if (($size74697502 == 6)) | |
668 | 668 | then $acc674697502 | |
669 | 669 | else { | |
670 | 670 | let $acc774697502 = handler($acc674697502, $list74697502[6]) | |
671 | 671 | if (($size74697502 == 7)) | |
672 | 672 | then $acc774697502 | |
673 | 673 | else { | |
674 | 674 | let $acc874697502 = handler($acc774697502, $list74697502[7]) | |
675 | 675 | if (($size74697502 == 8)) | |
676 | 676 | then $acc874697502 | |
677 | 677 | else { | |
678 | 678 | let $acc974697502 = handler($acc874697502, $list74697502[8]) | |
679 | 679 | if (($size74697502 == 9)) | |
680 | 680 | then $acc974697502 | |
681 | 681 | else { | |
682 | 682 | let $acc1074697502 = handler($acc974697502, $list74697502[9]) | |
683 | 683 | if (($size74697502 == 10)) | |
684 | 684 | then $acc1074697502 | |
685 | 685 | else { | |
686 | 686 | let $acc1174697502 = handler($acc1074697502, $list74697502[10]) | |
687 | 687 | throw("List size exceed 10") | |
688 | 688 | } | |
689 | 689 | } | |
690 | 690 | } | |
691 | 691 | } | |
692 | 692 | } | |
693 | 693 | } | |
694 | 694 | } | |
695 | 695 | } | |
696 | 696 | } | |
697 | 697 | } | |
698 | 698 | } | |
699 | 699 | } | |
700 | 700 | ||
701 | 701 | func calculatePoolTokensAmount (payments) = { | |
702 | 702 | func handler (accum,pmt) = { | |
703 | 703 | let assetId = value(pmt.assetId) | |
704 | 704 | func handler2 (accum,n) = if ((n == assetId)) | |
705 | 705 | then value(indexOf(assetIds, n)) | |
706 | 706 | else accum | |
707 | 707 | ||
708 | 708 | let Token = { | |
709 | 709 | let $list78247855 = assetIds | |
710 | 710 | let $size78247855 = size($list78247855) | |
711 | 711 | let $acc078247855 = 1 | |
712 | 712 | if (($size78247855 == 0)) | |
713 | 713 | then $acc078247855 | |
714 | 714 | else { | |
715 | 715 | let $acc178247855 = handler2($acc078247855, $list78247855[0]) | |
716 | 716 | if (($size78247855 == 1)) | |
717 | 717 | then $acc178247855 | |
718 | 718 | else { | |
719 | 719 | let $acc278247855 = handler2($acc178247855, $list78247855[1]) | |
720 | 720 | if (($size78247855 == 2)) | |
721 | 721 | then $acc278247855 | |
722 | 722 | else { | |
723 | 723 | let $acc378247855 = handler2($acc278247855, $list78247855[2]) | |
724 | 724 | if (($size78247855 == 3)) | |
725 | 725 | then $acc378247855 | |
726 | 726 | else { | |
727 | 727 | let $acc478247855 = handler2($acc378247855, $list78247855[3]) | |
728 | 728 | if (($size78247855 == 4)) | |
729 | 729 | then $acc478247855 | |
730 | 730 | else { | |
731 | 731 | let $acc578247855 = handler2($acc478247855, $list78247855[4]) | |
732 | 732 | if (($size78247855 == 5)) | |
733 | 733 | then $acc578247855 | |
734 | 734 | else { | |
735 | 735 | let $acc678247855 = handler2($acc578247855, $list78247855[5]) | |
736 | 736 | if (($size78247855 == 6)) | |
737 | 737 | then $acc678247855 | |
738 | 738 | else { | |
739 | 739 | let $acc778247855 = handler2($acc678247855, $list78247855[6]) | |
740 | 740 | if (($size78247855 == 7)) | |
741 | 741 | then $acc778247855 | |
742 | 742 | else { | |
743 | 743 | let $acc878247855 = handler2($acc778247855, $list78247855[7]) | |
744 | 744 | if (($size78247855 == 8)) | |
745 | 745 | then $acc878247855 | |
746 | 746 | else { | |
747 | 747 | let $acc978247855 = handler2($acc878247855, $list78247855[8]) | |
748 | 748 | if (($size78247855 == 9)) | |
749 | 749 | then $acc978247855 | |
750 | 750 | else { | |
751 | 751 | let $acc1078247855 = handler2($acc978247855, $list78247855[9]) | |
752 | 752 | if (($size78247855 == 10)) | |
753 | 753 | then $acc1078247855 | |
754 | 754 | else { | |
755 | 755 | let $acc1178247855 = handler2($acc1078247855, $list78247855[10]) | |
756 | 756 | throw("List size exceed 10") | |
757 | 757 | } | |
758 | 758 | } | |
759 | 759 | } | |
760 | 760 | } | |
761 | 761 | } | |
762 | 762 | } | |
763 | 763 | } | |
764 | 764 | } | |
765 | 765 | } | |
766 | 766 | } | |
767 | 767 | } | |
768 | 768 | } | |
769 | 769 | (accum * pow(pmt.amount, Decimals[Token], AssetsWeights[Token], AssetsWeightsDecimals, 1, FLOOR)) | |
770 | 770 | } | |
771 | 771 | ||
772 | 772 | let $list79687998 = payments | |
773 | 773 | let $size79687998 = size($list79687998) | |
774 | 774 | let $acc079687998 = 1 | |
775 | 775 | if (($size79687998 == 0)) | |
776 | 776 | then $acc079687998 | |
777 | 777 | else { | |
778 | 778 | let $acc179687998 = handler($acc079687998, $list79687998[0]) | |
779 | 779 | if (($size79687998 == 1)) | |
780 | 780 | then $acc179687998 | |
781 | 781 | else { | |
782 | 782 | let $acc279687998 = handler($acc179687998, $list79687998[1]) | |
783 | 783 | if (($size79687998 == 2)) | |
784 | 784 | then $acc279687998 | |
785 | 785 | else { | |
786 | 786 | let $acc379687998 = handler($acc279687998, $list79687998[2]) | |
787 | 787 | if (($size79687998 == 3)) | |
788 | 788 | then $acc379687998 | |
789 | 789 | else { | |
790 | 790 | let $acc479687998 = handler($acc379687998, $list79687998[3]) | |
791 | 791 | if (($size79687998 == 4)) | |
792 | 792 | then $acc479687998 | |
793 | 793 | else { | |
794 | 794 | let $acc579687998 = handler($acc479687998, $list79687998[4]) | |
795 | 795 | if (($size79687998 == 5)) | |
796 | 796 | then $acc579687998 | |
797 | 797 | else { | |
798 | 798 | let $acc679687998 = handler($acc579687998, $list79687998[5]) | |
799 | 799 | if (($size79687998 == 6)) | |
800 | 800 | then $acc679687998 | |
801 | 801 | else { | |
802 | 802 | let $acc779687998 = handler($acc679687998, $list79687998[6]) | |
803 | 803 | if (($size79687998 == 7)) | |
804 | 804 | then $acc779687998 | |
805 | 805 | else { | |
806 | 806 | let $acc879687998 = handler($acc779687998, $list79687998[7]) | |
807 | 807 | if (($size79687998 == 8)) | |
808 | 808 | then $acc879687998 | |
809 | 809 | else { | |
810 | 810 | let $acc979687998 = handler($acc879687998, $list79687998[8]) | |
811 | 811 | if (($size79687998 == 9)) | |
812 | 812 | then $acc979687998 | |
813 | 813 | else { | |
814 | 814 | let $acc1079687998 = handler($acc979687998, $list79687998[9]) | |
815 | 815 | if (($size79687998 == 10)) | |
816 | 816 | then $acc1079687998 | |
817 | 817 | else { | |
818 | 818 | let $acc1179687998 = handler($acc1079687998, $list79687998[10]) | |
819 | 819 | throw("List size exceed 10") | |
820 | 820 | } | |
821 | 821 | } | |
822 | 822 | } | |
823 | 823 | } | |
824 | 824 | } | |
825 | 825 | } | |
826 | 826 | } | |
827 | 827 | } | |
828 | 828 | } | |
829 | 829 | } | |
830 | 830 | } | |
831 | 831 | } | |
832 | 832 | ||
833 | 833 | if ((tryGetInteger("global_wasInited") > 0)) | |
834 | 834 | then throw("pool already inited") | |
835 | 835 | else { | |
836 | 836 | let initialPoolTokens = calculatePoolTokensAmount(i.payments) | |
837 | 837 | let poolTokenIssue = Issue("Puzzle4", "Puzzle Swap Pool Token", initialPoolTokens, PoolTokenDecimals, true, unit, 0) | |
838 | 838 | let poolTokenId = calculateAssetId(poolTokenIssue) | |
839 | 839 | (prepareList() ++ [poolTokenIssue, IntegerEntry("global_poolToken_amount", initialPoolTokens), IntegerEntry("global_wasInited", 1), BinaryEntry("global_poolToken_id", poolTokenId), ScriptTransfer(i.caller, initialPoolTokens, poolTokenId)]) | |
840 | 840 | } | |
841 | 841 | } | |
842 | 842 | ||
843 | 843 | ||
844 | 844 | ||
845 | 845 | @Callable(i) | |
846 | 846 | func addLiquidity () = throw("LP is closed yet") | |
847 | 847 | ||
848 | 848 | ||
849 | 849 | ||
850 | 850 | @Callable(i) | |
851 | 851 | func removeLiquidity () = { | |
852 | 852 | let pmt = i.payments[0] | |
853 | 853 | if ((pmt.assetId != tryGetBinary("global_poolToken_id"))) | |
854 | 854 | then throw("please attach pool share token") | |
855 | 855 | else { | |
856 | 856 | let PRedeemed = pmt.amount | |
857 | 857 | let result = handlePoolTokensRedeem(PRedeemed, i.caller) | |
858 | 858 | (result ++ [Burn(tryGetBinary("global_poolToken_id"), PRedeemed), IntegerEntry("global_poolToken_amount", (tryGetInteger("global_poolToken_amount") - PRedeemed))]) | |
859 | 859 | } | |
860 | 860 | } | |
861 | 861 | ||
862 | 862 | ||
863 | 863 | ||
864 | 864 | @Callable(i) | |
865 | 865 | func swap (assetOut,minimum) = { | |
866 | 866 | let pmt = value(i.payments[0]) | |
867 | 867 | let AmountIn = value(i.payments[0].amount) | |
868 | 868 | let AssetIn = value(pmt.assetId) | |
869 | 869 | let AssetOut = fromBase58String(assetOut) | |
870 | 870 | let AmountOut = calculateOutAmount(AmountIn, AssetIn, AssetOut) | |
871 | 871 | if ((minimum > AmountOut)) | |
872 | 872 | then throw(("amount to recieve it lower than given one: " + toString(AmountOut))) | |
873 | 873 | else if (((Scales[value(indexOf(assetIds, AssetIn))] / 10000) > AmountIn)) | |
874 | 874 | then throw("sum to exchange is too small") | |
875 | 875 | else if ((0 > (tryGetInteger((("global_" + toBase58String(AssetOut)) + "_balance")) - AmountOut))) | |
876 | 876 | then throw("contract is out of reserves") | |
877 | 877 | else { | |
878 | 878 | let feeAmount = fraction(AmountOut, Fee, FeeScale) | |
879 | 879 | let cleanAmountOut = (AmountOut - feeAmount) | |
880 | 880 | [ScriptTransfer(feeAggregator, feeAmount, AssetOut), 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, cleanAmountOut, AssetOut)] | |
881 | 881 | } | |
882 | 882 | } | |
883 | 883 | ||
884 | 884 | ||
885 | 885 | @Verifier(tx) | |
886 | 886 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
887 | 887 |
github/deemru/w8io/3ef1775 106.16 ms ◑