tx · F91crzN5k8PDtnYtmLbn6nG3hfiCBtmYnMTdFLSnrWB1

3Mrnje6z2xa3xuXyU2Lk6ynKy8tsRnnt4Bv:  -0.01400000 Waves

2021.08.23 09:19 [1670608] smart account 3Mrnje6z2xa3xuXyU2Lk6ynKy8tsRnnt4Bv > SELF 0.00000000 Waves

{ "type": 13, "id": "F91crzN5k8PDtnYtmLbn6nG3hfiCBtmYnMTdFLSnrWB1", "fee": 1400000, "feeAssetId": null, "timestamp": 1629699579402, "version": 2, "chainId": 84, "sender": "3Mrnje6z2xa3xuXyU2Lk6ynKy8tsRnnt4Bv", "senderPublicKey": "28sGn7FYnmxceAmnGYiDiKuMK1QyXiqX8zQXfKDnrc8t", "proofs": [ "3wF5kYvvN6s1NKjXeYMDPjM7bDrgFZrJaGxkfcVAcNuGhzymcwivsweoDAbrUDB7oBewA4csyabPVtmBm2hyjVnL" ], "script": "base64:AAIEAAAAAAAAACsIAhIFCgMIAQESABIAEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIAAAAAAAAAAkAAAABaQEAAAAVUmVnaXN0ZXJQYWlyRm9yVm90aW5nAAAAAwAAAAhBc3NldElEMQAAAARkYXlzAAAADExpc3RpbmdQcmljZQQAAAAEcG10MQkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAEcG10MgkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQQAAAAKRmVlQWRkcmVzcwEAAAAg463XstSKNtaiPAMTm2AWTDVjxzAiveOx6Vx7CmnuvCMEAAAAEW1heGltdW12b3RpbmdkYXlzAAAAAAAAAABaBAAAAA1CYWxsZXRBc3NldElEAQAAACAtb1sBuZ3lSm8ahGink+4TF5YYAu/xRHYwe1h195OooAQAAAALVVNEVEFzc2V0SUQBAAAAIF9XaRjICieBJvFbl+3E7E35wrtZyxIYi4RgoF+m9/zzBAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAAlROCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAEcG10MgAAAAdhc3NldElkBAAAAAZvbmVkYXkAAAAAAAAABaAEAAAADk5vT2ZEYXlzQmxvY2tzCQAAaAAAAAIFAAAABm9uZWRheQUAAAAEZGF5cwQAAAADZ2FwCQAAZQAAAAIFAAAADk5vT2ZEYXlzQmxvY2tzAAAAAAAAAKi/BAAAAA12b3Rlc3JlcXVpcmVkCQAAaAAAAAIJAABkAAAAAgAAAAAAAAGGoAkAAGkAAAACCQAAaAAAAAIAAAAAAAAALTYFAAAAA2dhcAAAAAAAAAAnEAAAAAAABfXhAAQAAAAMdm90aW5nRXhwaXJlCQAAZAAAAAIFAAAABmhlaWdodAUAAAAOTm9PZkRheXNCbG9ja3MEAAAACWZldGNocGFpcgkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAElBhaXJfVW5kZXJfVm90aW5nXwUAAAAIQXNzZXRJRDEEAAAADHZvdGluZ3N0YXR1cwIAAAAERmFpbAQAAAANYXNzZXRpbmZvcG10MgkAAlkAAAABBQAAAAhBc3NldElEMQMJAABmAAAAAgAAAAAAAAAAKwkAATEAAAABBQAAAAhBc3NldElEMQkAAAIAAAABAgAAAHlXcm9uZyBBc3NldElEMSBpcyBFbnRlcmVkIGZvciBWb3RpbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIEFzc2V0SUQxLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBBU1NFVElEMSBsZXNzIHRoYW4gNDMgQ2hhcnMuAwkAAGcAAAACAAAAAAAAAAAdBQAAAARkYXlzCQAAAgAAAAECAAAAJkVudGVyIG5vLiBvZiBkYXlzIGluIGJldHdlZW4gMzAgdG8gOTAuAwkAAGYAAAACBQAAAARkYXlzBQAAABFtYXhpbXVtdm90aW5nZGF5cwkAAAIAAAABAgAAAE1Zb3UgRW50ZXJlZCBkYXlzIGdyZWF0ZXIgdGhhbiA5MCBwbGVhc2UgRW50ZXIgbm8uIG9mIGRheXMgaW4gYmV0d2VlbiAxIHRvIDkwLgMJAAAAAAAAAgUAAAAJZmV0Y2hwYWlyBQAAAAhBc3NldElEMQkAAAIAAAABAgAAACJQYWlyIEFscmVhZHkgRXhpc3QgaW4gVm90aW5nIExpc3QuAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAgkAAAIAAAABAgAAAIdUd28gYXR0YWNoZWQgYXNzZXRzIGV4cGVjdGVkIGFzIHBheW1lbnQuIEtpbmRseSBBdHRhY2ggcGF5bWVudDEgPSBCYWxsZXQgVG9rZW4gYW5kIHBheW1lbnQyID0gVG9rZW4geW91IHdhbnQgdG8gYWRkIHRvIExpc3QgZm9yIFZvdGluZy4DCQEAAAACIT0AAAACCAUAAAAEcG10MQAAAAdhc3NldElkBQAAAA1CYWxsZXRBc3NldElECQAAAgAAAAECAAAAWEluY29ycmVjdCBhc3NldCBhdHRhY2hlZCBmb3IgVm90aW5nIGluIHBheW1lbnRbMV0sIHBsZWFzZSBhdHRhY2ggMTAwMCBCYWxsZXQgVG9rZW4gb25seS4DCQAAZgAAAAIAAAAAAAJiWgAIBQAAAARwbXQxAAAABmFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEllvdSBhdHRhY2hlZCBvbmx5IAkAAaQAAAABCQAAawAAAAMIBQAAAARwbXQxAAAABmFtb3VudAAAAAAAAAAAAQAAAAAABfXhAAIAAAABLgkAAaQAAAABCQAAawAAAAMIBQAAAARwbXQxAAAABmFtb3VudAAAAAAAAAAAAQAAAAAAAJiWgAIAAABHIEJhbGxldCBmb3IgVm90aW5nIGluIHBheW1lbnRbMV0sIHBsZWFzZSBhdHRhY2ggMTAwMCBCYWxsZXQgVG9rZW4gb25seS4DCQEAAAACIT0AAAACCAUAAAAEcG10MgAAAAdhc3NldElkBQAAAA1hc3NldGluZm9wbXQyCQAAAgAAAAECAAAASEFzc2V0IFN0cmluZyBBdHRhY2hlZCBpbiBBU1NFVElEMSBpcyBub3QgbWF0Y2hpbmcgd2l0aCBQYXltZW50MiBBc3NldElELgMJAAAAAAAAAgUAAAACVE4GCQAAAgAAAAECAAAAXFlvdSBBdHRhY2hlZCBUTiBBc3NldCBJRCBmb3IgVm90aW5nLCBwbGVhc2UgYXR0YWNoIHRoZSBUb2tlbiBZb3Ugd2FudCB0byBsaXN0IGluIHBheW1lbnRbMl0uAwkAAAAAAAACCAUAAAAEcG10MgAAAAdhc3NldElkBQAAAA1CYWxsZXRBc3NldElECQAAAgAAAAECAAAAbllvdSBBdHRhY2hlZCBCYWxsZXQgYXNzZXQgZm9yIFZvdGluZyBpbiBib3RoIHBheW1lbnRzLCBwbGVhc2UgYXR0YWNoIHRoZSBUb2tlbiBZb3Ugd2FudCB0byBsaXN0IGluIHBheW1lbnRbMl0uAwkAAGcAAAACAAAAAAAAAABkBQAAAAxMaXN0aW5nUHJpY2UJAAACAAAAAQIAAABGV3JvbmcgTGlzdGluZyBQcmljZSBpcyBFbnRlcmVkLCBwbGVhc2UgZW50ZXIgYXMgbWluaW11bSAwLjAwMDAwMSBVU0RULgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAAElBhaXJfVW5kZXJfVm90aW5nXwUAAAAIQXNzZXRJRDEFAAAACEFzc2V0SUQxCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAOVm90aW5nX1N0YXR1c18FAAAACEFzc2V0SUQxBQAAAAx2b3RpbmdzdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAUVm90aW5nX1N0YXJ0X0hlaWdodF8FAAAACEFzc2V0SUQxBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAASVm90aW5nX0VuZF9IZWlnaHRfBQAAAAhBc3NldElEMQUAAAAMdm90aW5nRXhwaXJlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADlZvdGluZ19QZXJpb2RfBQAAAAhBc3NldElEMQUAAAAOTm9PZkRheXNCbG9ja3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAATVm90aW5nX0xpc3RpbmdfRmVlXwUAAAAIQXNzZXRJRDEIBQAAAARwbXQxAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA9Wb3Rlc19SZXF1aXJlZF8FAAAACEFzc2V0SUQxBQAAAA12b3Rlc3JlcXVpcmVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAD1ZvdGVzX1JlY2VpdmVkXwUAAAAIQXNzZXRJRDEAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACVByaWNlX09mXwUAAAAIQXNzZXRJRDECAAAAAV8JAAJYAAAAAQUAAAALVVNEVEFzc2V0SUQFAAAADExpc3RpbmdQcmljZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAApGZWVBZGRyZXNzCAUAAAAEcG10MQAAAAZhbW91bnQFAAAADUJhbGxldEFzc2V0SUQFAAAAA25pbAAAAAFpAQAAAAtJc3N1ZUJhbGxldAAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1CYWxsZXRBc3NldElEAQAAACAtb1sBuZ3lSm8ahGink+4TF5YYAu/xRHYwe1h195OooAQAAAAOUHJpY2VQZXJCYWxsZXQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAACUJBTExFVC9UTgQAAAAPTmV3QmFsbGV0VG9Vc2VyCQAAawAAAAMAAAAAAAABhqAIBQAAAANwbXQAAAAGYW1vdW50BQAAAA5QcmljZVBlckJhbGxldAQAAAAUUHJldmlvdXNJc3N1ZWRCYWxsZXQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAFFRvdGFsX0lzc3VlZF9CYWxsZXQ6BAAAABFUb3RhbElzc3VlZEJhbGxldAkAAGQAAAACBQAAABRQcmV2aW91c0lzc3VlZEJhbGxldAUAAAAPTmV3QmFsbGV0VG9Vc2VyBAAAABpQcmV2aW91c0JhbGxldFJlc2VydmVWYWx1ZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAbVG90YWxfQmFsbGV0X1Jlc2VydmVfSW5fVE46BAAAABJCYWxsZXRSZXNlcnZlVmFsdWUJAABkAAAAAgUAAAAaUHJldmlvdXNCYWxsZXRSZXNlcnZlVmFsdWUIBQAAAANwbXQAAAAGYW1vdW50BAAAABlQcmV2aW91c0JhbGxldEJhY2t1cFByaWNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABpCYWxsZXRfQmFja3VwX1ZhbHVlX0luX1ROOgQAAAARQmFsbGV0QmFja3VwUHJpY2UJAABrAAAAAwAAAAAAAAGGoAUAAAASQmFsbGV0UmVzZXJ2ZVZhbHVlBQAAABFUb3RhbElzc3VlZEJhbGxldAQAAAAKRmVlQWRkcmVzcwEAAAAg463XstSKNtaiPAMTm2AWTDVjxzAiveOx6Vx7CmnuvCMEAAAADUZlZVBlcmNlbnRhZ2UAAAAAAAAAAAEEAAAAG0JhbGFuY2VUb2tlbnNSZXR1cm5lZFRvVXNlcgkAAGUAAAACAAAAAAAAAABkBQAAAA1GZWVQZXJjZW50YWdlAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACtJbmNvcnJlY3QgYXNzZXQgYXR0YWNoZWQsIHBsZWFzZSBhdHRhY2ggVE4uAwkAAGYAAAACAAAAAAAATEtACAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAADRQbGVhc2UgQXR0YWNoIG1pbmltdW0gMC4wNSBUTiBUbyBJc3N1ZSBCYWxsZXQgQXNzZXQuCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABRUb3RhbF9Jc3N1ZWRfQmFsbGV0OgUAAAARVG90YWxJc3N1ZWRCYWxsZXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAG1RvdGFsX0JhbGxldF9SZXNlcnZlX0luX1ROOgUAAAASQmFsbGV0UmVzZXJ2ZVZhbHVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpCYWxsZXRfQmFja3VwX1ZhbHVlX0luX1ROOgUAAAARQmFsbGV0QmFja3VwUHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAoPGgxPkJhbGxldCBJc3N1ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgkABEwAAAACCQEAAAAHUmVpc3N1ZQAAAAMFAAAADUJhbGxldEFzc2V0SUQFAAAAD05ld0JhbGxldFRvVXNlcgYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQAAaQAAAAIJAABoAAAAAgUAAAAPTmV3QmFsbGV0VG9Vc2VyBQAAABtCYWxhbmNlVG9rZW5zUmV0dXJuZWRUb1VzZXIAAAAAAAAAAGQFAAAADUJhbGxldEFzc2V0SUQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAKRmVlQWRkcmVzcwkAAGkAAAACCQAAaAAAAAIFAAAAD05ld0JhbGxldFRvVXNlcgUAAAANRmVlUGVyY2VudGFnZQAAAAAAAAAAZAUAAAANQmFsbGV0QXNzZXRJRAUAAAADbmlsAAAAAWkBAAAACUxpcXVpZGF0ZQAAAAAEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAADUJhbGxldEFzc2V0SUQBAAAAIC1vWwG5neVKbxqEaKeT7hMXlhgC7/FEdjB7WHX3k6igBAAAABRQcmV2aW91c0lzc3VlZEJhbGxldAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAUVG90YWxfSXNzdWVkX0JhbGxldDoEAAAAEVRvdGFsSXNzdWVkQmFsbGV0CQAAZQAAAAIFAAAAFFByZXZpb3VzSXNzdWVkQmFsbGV0CAUAAAADcG10AAAABmFtb3VudAQAAAAaUHJldmlvdXNCYWxsZXRSZXNlcnZlVmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAG1RvdGFsX0JhbGxldF9SZXNlcnZlX0luX1ROOgQAAAAZUHJldmlvdXNCYWxsZXRCYWNrdXBQcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAaQmFsbGV0X0JhY2t1cF9WYWx1ZV9Jbl9UTjoEAAAAEmNhbGN1bGF0ZWJ1cm52YWx1ZQkAAGsAAAADBQAAABlQcmV2aW91c0JhbGxldEJhY2t1cFByaWNlCAUAAAADcG10AAAABmFtb3VudAAAAAAAAAGGoAQAAAASQmFsbGV0UmVzZXJ2ZVZhbHVlCQAAZQAAAAIFAAAAGlByZXZpb3VzQmFsbGV0UmVzZXJ2ZVZhbHVlBQAAABJjYWxjdWxhdGVidXJudmFsdWUEAAAAEUJhbGxldEJhY2t1cFByaWNlCQAAawAAAAMAAAAAAAABhqAFAAAAEkJhbGxldFJlc2VydmVWYWx1ZQUAAAARVG90YWxJc3N1ZWRCYWxsZXQDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAADUJhbGxldEFzc2V0SUQJAAACAAAAAQIAAABKS2luZGx5IERlcG9zaXQgT25seSA0NE1xOEtxVWhNOTR0OTNNaUJxM1MyMmlpdUdjek14cEttc2U1ZEJ5Mnc1eSAoQmFsbGV0KS4DCQAAZgAAAAIAAAAAAAABhqAIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAECAAAAMEF0dGFjaCBBbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMC4wMDEgQmFsbGV0LgkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAADUJhbGxldEFzc2V0SUQIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABRUb3RhbF9Jc3N1ZWRfQmFsbGV0OgUAAAARVG90YWxJc3N1ZWRCYWxsZXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAG1RvdGFsX0JhbGxldF9SZXNlcnZlX0luX1ROOgUAAAASQmFsbGV0UmVzZXJ2ZVZhbHVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpCYWxsZXRfQmFja3VwX1ZhbHVlX0luX1ROOgUAAAARQmFsbGV0QmFja3VwUHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQIAAAAsPGgxPkJhbGxldCBMaXF1aWRhdGVkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABJjYWxjdWxhdGVidXJudmFsdWUFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAAAhEb1ZvdGluZwAAAAEAAAAMRW50ZXJBc3NldElEBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQIAAAAsQmFsbGV0IFRva2VuIGlzIHJlcXVpcmVkIGFzIEF0dGFjaGVkIHBheW1lbnQEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAANQmFsbGV0QXNzZXRJRAEAAAAgLW9bAbmd5UpvGoRop5PuExeWGALv8UR2MHtYdfeTqKAEAAAAD05ld1ZvdGluZ1N0YXR1cwIAAAAEUGFzcwQAAAALVVNEVEFzc2V0SUQBAAAAIF9XaRjICieBJvFbl+3E7E35wrtZyxIYi4RgoF+m9/zzBAAAABhjaGVja3Byb2plY3RleHBpcmVoZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAASVm90aW5nX0VuZF9IZWlnaHRfBQAAAAxFbnRlckFzc2V0SUQEAAAAGWNoZWNrcGFpcmlzYXZhaWxhYmxlb3Jub3QJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABJQYWlyX1VuZGVyX1ZvdGluZ18FAAAADEVudGVyQXNzZXRJRAQAAAASY2hlY2t2b3Rlc3JlcXVpcmVkCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAD1ZvdGVzX1JlcXVpcmVkXwUAAAAMRW50ZXJBc3NldElEBAAAABJjaGVja3ZvdGVzcmVjZWl2ZWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAPVm90ZXNfUmVjZWl2ZWRfBQAAAAxFbnRlckFzc2V0SUQEAAAADFZvdGluZ1N0YXR1cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAA5Wb3RpbmdfU3RhdHVzXwUAAAAMRW50ZXJBc3NldElEBAAAAAxjdXJyZW50dm90ZXMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADEVudGVyQXNzZXRJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAA1uZXd2b3Rlc2NvdW50CQAAZAAAAAIFAAAADGN1cnJlbnR2b3RlcwgFAAAAA3BtdAAAAAZhbW91bnQEAAAAD2luZGl2aWR1YWx2b3RlcwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADWNhbGxlcmFkZHJlc3MCAAAAAV8FAAAADEVudGVyQXNzZXRJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAABAAAABRpbmRpdmlkdWFsdm90ZXNjb3VudAkAAGQAAAACBQAAAA9pbmRpdmlkdWFsdm90ZXMIBQAAAANwbXQAAAAGYW1vdW50BAAAAA5jaGVja3doaXRlbGlzdAkAAGcAAAACBQAAABJjaGVja3ZvdGVzcmVjZWl2ZWQFAAAAEmNoZWNrdm90ZXNyZXF1aXJlZAQAAAAEaW5mbwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEJAAJZAAAAAQUAAAAMRW50ZXJBc3NldElECQABLAAAAAIJAAEsAAAAAgIAAAAGQXNzZXQgBQAAAAxFbnRlckFzc2V0SUQCAAAADiBkb2Vzbid0IGV4aXN0BAAAAAhkZWNpbWFscwgFAAAABGluZm8AAAAIZGVjaW1hbHMDCQEAAAACIT0AAAACBQAAABljaGVja3BhaXJpc2F2YWlsYWJsZW9ybm90BQAAAAxFbnRlckFzc2V0SUQJAAACAAAAAQIAAAAlUGFpciBpcyBub3QgYXZhaWxhYmxlIGluIFZvdGluZyBMaXN0LgMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAABhjaGVja3Byb2plY3RleHBpcmVoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAFFZvdGluZyB0aW1lbGluZSBmb3IgBQAAAAxFbnRlckFzc2V0SUQCAAAADCBpcyBleHBpcmVkLgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAANQmFsbGV0QXNzZXRJRAkAAAIAAAABAgAAAElLaW5kbHkgQXR0YWNoIE9ubHkgNDRNcThLcVVoTTk0dDkzTWlCcTNTMjJpaXVHY3pNeHBLbXNlNWRCeTJ3NXkgKEJhbGxldCkuAwkAAAAAAAACBQAAAAxWb3RpbmdTdGF0dXMFAAAAD05ld1ZvdGluZ1N0YXR1cwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAALVm90aW5nIGZvciAFAAAADEVudGVyQXNzZXRJRAIAAAA1IHBhaXIgaXMgY29tcGxldGVkIGFuZCBpdOKAmXMgYXZhaWxhYmxlIGluIHdoaXRlbGlzdC4DBQAAAA5jaGVja3doaXRlbGlzdAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAADlZvdGluZ19TdGF0dXNfBQAAAAxFbnRlckFzc2V0SUQFAAAAD05ld1ZvdGluZ1N0YXR1cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAxEZWNpbWFsc19vZl8FAAAADEVudGVyQXNzZXRJRAUAAAAIZGVjaW1hbHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD09sZF9CYWxhbmNlX29mXwUAAAAMRW50ZXJBc3NldElEAgAAAAFfCQACWAAAAAEFAAAAC1VTRFRBc3NldElEAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9OZXdfQmFsYW5jZV9vZl8FAAAADEVudGVyQXNzZXRJRAIAAAABXwkAAlgAAAABBQAAAAtVU0RUQXNzZXRJRAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAATVG90YWxfb2ZfcGFpcl9UeG5zXwUAAAAMRW50ZXJBc3NldElEAgAAAAFfCQACWAAAAAEFAAAAC1VTRFRBc3NldElEAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9vZl9Td2Fwc19UeG5zAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABhUb3RhbF9Td2FwX0ZlZV9Db2xsZWN0ZWQAAAAAAAAAAAAFAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADEVudGVyQXNzZXRJRAUAAAANbmV3dm90ZXNjb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPVm90ZXNfUmVjZWl2ZWRfBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAFfBQAAAAxFbnRlckFzc2V0SUQFAAAAFGluZGl2aWR1YWx2b3Rlc2NvdW50BQAAAANuaWwAAAABaQEAAAATV2l0aGRyYXdWb3RlZFRva2VucwAAAAEAAAAMRW50ZXJBc3NldElEBAAAAANwbXQJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAANQmFsbGV0QXNzZXRJRAEAAAAgLW9bAbmd5UpvGoRop5PuExeWGALv8UR2MHtYdfeTqKAEAAAAGGNoZWNrcHJvamVjdGV4cGlyZWhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABJWb3RpbmdfRW5kX0hlaWdodF8FAAAADEVudGVyQXNzZXRJRAQAAAAZY2hlY2twYWlyaXNhdmFpbGFibGVvcm5vdAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAElBhaXJfVW5kZXJfVm90aW5nXwUAAAAMRW50ZXJBc3NldElEBAAAABZjaGVja3VzZXJ2b3RpbmdiYWxhbmNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADWNhbGxlcmFkZHJlc3MCAAAAAV8FAAAADEVudGVyQXNzZXRJRAQAAAAdcGVuZGluZ2Jsb2Nrc2ZvcnByb2plY3RleHBpcmUJAABlAAAAAgUAAAAYY2hlY2twcm9qZWN0ZXhwaXJlaGVpZ2h0BQAAAAZoZWlnaHQDCQEAAAACIT0AAAACBQAAABljaGVja3BhaXJpc2F2YWlsYWJsZW9ybm90BQAAAAxFbnRlckFz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YXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAElZvdGluZ19FbmRfSGVpZ2h0XwUAAAAMRW50ZXJBc3NldElEBAAAABljaGVja3BhaXJpc2F2YWlsYWJsZW9ybm90CQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAASUGFpcl9VbmRlcl9Wb3RpbmdfBQAAAAxFbnRlckFzc2V0SUQEAAAADFZvdGluZ1N0YXR1cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAA5Wb3RpbmdfU3RhdHVzXwUAAAAMRW50ZXJBc3NldElEBAAAAA9OZXdWb3RpbmdTdGF0dXMCAAAABFBhc3MEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAANY3VycmVudGhlaWdodAUAAAAGaGVpZ2h0BAAAAB1wZW5kaW5nYmxvY2tzZm9ycHJvamVjdGV4cGlyZQkAAGUAAAACBQAAABhjaGVja3Byb2plY3RleHBpcmVoZWlnaHQFAAAABmhlaWdodAMJAQAAAAIhPQAAAAIFAAAAGWNoZWNrcGFpcmlzYXZhaWxhYmxlb3Jub3QFAAAADEVudGVyQXNzZXRJRAkAAAIAAAABAgAAACVQYWlyIGlzIG5vdCBhdmFpbGFibGUgaW4gVm90aW5nIExpc3QuAwkBAAAAAiE9AAAAAgUAAAALYWRtaW5yaWdodHMFAAAADWNhbGxlcmFkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIkkga25vdyBZb3UgYXJlIG5vdCBBbiBBZG1pbi4gT25seSAFAAAAC2FkbWlucmlnaHRzAgAAAB8gaGFzIHJpZ2h0cyB0byByZW1vdmUgdGhlIHBhaXIuAwkAAGYAAAACBQAAABhjaGVja3Byb2plY3RleHBpcmVoZWlnaHQFAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAA2Vm90aW5nIEFscmVhZHkgUnVubmluZy4gWW91IGNhbiByZW1vdmUgdGhlIHBhaXIgYWZ0ZXIgCQABpAAAAAEFAAAAHXBlbmRpbmdibG9ja3Nmb3Jwcm9qZWN0ZXhwaXJlAgAAAAcgQmxvY2tzAwkAAAAAAAACBQAAAAxWb3RpbmdTdGF0dXMFAAAAD05ld1ZvdGluZ1N0YXR1cwkAAAIAAAABCQABLAAAAAIFAAAADEVudGVyQXNzZXRJRAIAAAAsIGlzIG5vdyBXaGl0ZWxpc3RlZC4gU28geW91IGNhbid0IHJlbW92ZSBpdC4JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACAgAAABJQYWlyX1VuZGVyX1ZvdGluZ18FAAAADEVudGVyQXNzZXRJRAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAICAAAAFFZvdGluZ19TdGFydF9IZWlnaHRfBQAAAAxFbnRlckFzc2V0SUQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACAgAAABJWb3RpbmdfRW5kX0hlaWdodF8FAAAADEVudGVyQXNzZXRJRAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAICAAAADlZvdGluZ19QZXJpb2RfBQAAAAxFbnRlckFzc2V0SUQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACAgAAAA9Wb3Rlc19SZXF1aXJlZF8FAAAADEVudGVyQXNzZXRJRAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAICAAAAE1ZvdGluZ19MaXN0aW5nX0ZlZV8FAAAADEVudGVyQXNzZXRJRAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAICAAAADlZvdGluZ19TdGF0dXNfBQAAAAxFbnRlckFzc2V0SUQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADEVudGVyQXNzZXRJRAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAlQcmljZV9PZl8FAAAADEVudGVyQXNzZXRJRAIAAAABXwkAAlgAAAABBQAAAAtVU0RUQXNzZXRJRAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V50tf+7g==", "height": 1670608, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8yWXQTuBUdgaiSGkANccZC8K5ocL4VXknG4WNFSQkRis Next: 6K8JAN32kJDDYKVuFfzwL46bsCcD8pddiv6U1SyScaDX Diff:
OldNewDifferences
4141 then throw("You Attached TN Asset ID for Voting, please attach the Token You want to list in payment[2].")
4242 else if ((pmt2.assetId == BalletAssetID))
4343 then throw("You Attached Ballet asset for Voting in both payments, please attach the Token You want to list in payment[2].")
44- else [StringEntry(("Pair_Under_Voting_" + AssetID1), AssetID1), StringEntry(("Voting_Status_" + AssetID1), votingstatus), IntegerEntry(("Voting_Start_Height_" + AssetID1), height), IntegerEntry(("Voting_End_Height_" + AssetID1), votingExpire), IntegerEntry(("Voting_Period_" + AssetID1), NoOfDaysBlocks), IntegerEntry(("Voting_Listing_Fee_" + AssetID1), pmt1.amount), IntegerEntry(("Votes_Required_" + AssetID1), votesrequired), IntegerEntry(("Votes_Received_" + AssetID1), 0), IntegerEntry(((("Price_Of_" + AssetID1) + "_") + toBase58String(USDTAssetID)), ListingPrice), ScriptTransfer(addressFromPublicKey(FeeAddress), pmt1.amount, BalletAssetID)]
44+ else if ((100 >= ListingPrice))
45+ then throw("Wrong Listing Price is Entered, please enter as minimum 0.000001 USDT.")
46+ else [StringEntry(("Pair_Under_Voting_" + AssetID1), AssetID1), StringEntry(("Voting_Status_" + AssetID1), votingstatus), IntegerEntry(("Voting_Start_Height_" + AssetID1), height), IntegerEntry(("Voting_End_Height_" + AssetID1), votingExpire), IntegerEntry(("Voting_Period_" + AssetID1), NoOfDaysBlocks), IntegerEntry(("Voting_Listing_Fee_" + AssetID1), pmt1.amount), IntegerEntry(("Votes_Required_" + AssetID1), votesrequired), IntegerEntry(("Votes_Received_" + AssetID1), 0), IntegerEntry(((("Price_Of_" + AssetID1) + "_") + toBase58String(USDTAssetID)), ListingPrice), ScriptTransfer(addressFromPublicKey(FeeAddress), pmt1.amount, BalletAssetID)]
4547 }
4648
4749
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func RegisterPairForVoting (AssetID1,days,ListingPrice) = {
88 let pmt1 = value(i.payments[0])
99 let pmt2 = value(i.payments[1])
1010 let FeeAddress = base58'GKmJ6BchUgQfwKp4mp5eX8Y9xLioYRm6e1gDfFgdAcCr'
1111 let maximumvotingdays = 90
1212 let BalletAssetID = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y'
1313 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
1414 let currentKey = toBase58String(i.caller.bytes)
1515 let TN = !(isDefined(pmt2.assetId))
1616 let oneday = 1440
1717 let NoOfDaysBlocks = (oneday * days)
1818 let gap = (NoOfDaysBlocks - 43199)
1919 let votesrequired = ((100000 + ((11574 * gap) / 10000)) * 100000000)
2020 let votingExpire = (height + NoOfDaysBlocks)
2121 let fetchpair = getString(this, ("Pair_Under_Voting_" + AssetID1))
2222 let votingstatus = "Fail"
2323 let assetinfopmt2 = fromBase58String(AssetID1)
2424 if ((43 > size(AssetID1)))
2525 then throw("Wrong AssetID1 is Entered for Voting. Please Enter a Valid AssetID1. Probably you entered an ASSETID1 less than 43 Chars.")
2626 else if ((29 >= days))
2727 then throw("Enter no. of days in between 30 to 90.")
2828 else if ((days > maximumvotingdays))
2929 then throw("You Entered days greater than 90 please Enter no. of days in between 1 to 90.")
3030 else if ((fetchpair == AssetID1))
3131 then throw("Pair Already Exist in Voting List.")
3232 else if ((size(i.payments) != 2))
3333 then throw("Two attached assets expected as payment. Kindly Attach payment1 = Ballet Token and payment2 = Token you want to add to List for Voting.")
3434 else if ((pmt1.assetId != BalletAssetID))
3535 then throw("Incorrect asset attached for Voting in payment[1], please attach 1000 Ballet Token only.")
3636 else if ((40000000 > pmt1.amount))
3737 then throw((((("You attached only " + toString(fraction(pmt1.amount, 1, 100000000))) + ".") + toString(fraction(pmt1.amount, 1, 10000000))) + " Ballet for Voting in payment[1], please attach 1000 Ballet Token only."))
3838 else if ((pmt2.assetId != assetinfopmt2))
3939 then throw("Asset String Attached in ASSETID1 is not matching with Payment2 AssetID.")
4040 else if ((TN == true))
4141 then throw("You Attached TN Asset ID for Voting, please attach the Token You want to list in payment[2].")
4242 else if ((pmt2.assetId == BalletAssetID))
4343 then throw("You Attached Ballet asset for Voting in both payments, please attach the Token You want to list in payment[2].")
44- else [StringEntry(("Pair_Under_Voting_" + AssetID1), AssetID1), StringEntry(("Voting_Status_" + AssetID1), votingstatus), IntegerEntry(("Voting_Start_Height_" + AssetID1), height), IntegerEntry(("Voting_End_Height_" + AssetID1), votingExpire), IntegerEntry(("Voting_Period_" + AssetID1), NoOfDaysBlocks), IntegerEntry(("Voting_Listing_Fee_" + AssetID1), pmt1.amount), IntegerEntry(("Votes_Required_" + AssetID1), votesrequired), IntegerEntry(("Votes_Received_" + AssetID1), 0), IntegerEntry(((("Price_Of_" + AssetID1) + "_") + toBase58String(USDTAssetID)), ListingPrice), ScriptTransfer(addressFromPublicKey(FeeAddress), pmt1.amount, BalletAssetID)]
44+ else if ((100 >= ListingPrice))
45+ then throw("Wrong Listing Price is Entered, please enter as minimum 0.000001 USDT.")
46+ else [StringEntry(("Pair_Under_Voting_" + AssetID1), AssetID1), StringEntry(("Voting_Status_" + AssetID1), votingstatus), IntegerEntry(("Voting_Start_Height_" + AssetID1), height), IntegerEntry(("Voting_End_Height_" + AssetID1), votingExpire), IntegerEntry(("Voting_Period_" + AssetID1), NoOfDaysBlocks), IntegerEntry(("Voting_Listing_Fee_" + AssetID1), pmt1.amount), IntegerEntry(("Votes_Required_" + AssetID1), votesrequired), IntegerEntry(("Votes_Received_" + AssetID1), 0), IntegerEntry(((("Price_Of_" + AssetID1) + "_") + toBase58String(USDTAssetID)), ListingPrice), ScriptTransfer(addressFromPublicKey(FeeAddress), pmt1.amount, BalletAssetID)]
4547 }
4648
4749
4850
4951 @Callable(i)
5052 func IssueBallet () = {
5153 let pmt = value(i.payments[0])
5254 let currentKey = toBase58String(i.caller.bytes)
5355 let BalletAssetID = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y'
5456 let PricePerBallet = getIntegerValue(this, "BALLET/TN")
5557 let NewBalletToUser = fraction(100000, pmt.amount, PricePerBallet)
5658 let PreviousIssuedBallet = getIntegerValue(this, "Total_Issued_Ballet:")
5759 let TotalIssuedBallet = (PreviousIssuedBallet + NewBalletToUser)
5860 let PreviousBalletReserveValue = getIntegerValue(this, "Total_Ballet_Reserve_In_TN:")
5961 let BalletReserveValue = (PreviousBalletReserveValue + pmt.amount)
6062 let PreviousBalletBackupPrice = getIntegerValue(this, "Ballet_Backup_Value_In_TN:")
6163 let BalletBackupPrice = fraction(100000, BalletReserveValue, TotalIssuedBallet)
6264 let FeeAddress = base58'GKmJ6BchUgQfwKp4mp5eX8Y9xLioYRm6e1gDfFgdAcCr'
6365 let FeePercentage = 1
6466 let BalanceTokensReturnedToUser = (100 - FeePercentage)
6567 if (isDefined(pmt.assetId))
6668 then throw("Incorrect asset attached, please attach TN.")
6769 else if ((5000000 > pmt.amount))
6870 then throw("Please Attach minimum 0.05 TN To Issue Ballet Asset.")
6971 else [IntegerEntry("Total_Issued_Ballet:", TotalIssuedBallet), IntegerEntry("Total_Ballet_Reserve_In_TN:", BalletReserveValue), IntegerEntry("Ballet_Backup_Value_In_TN:", BalletBackupPrice), StringEntry("message", "<h1>Ballet Issued Successfully!</h1><br>"), Reissue(BalletAssetID, NewBalletToUser, true), ScriptTransfer(i.caller, ((NewBalletToUser * BalanceTokensReturnedToUser) / 100), BalletAssetID), ScriptTransfer(addressFromPublicKey(FeeAddress), ((NewBalletToUser * FeePercentage) / 100), BalletAssetID)]
7072 }
7173
7274
7375
7476 @Callable(i)
7577 func Liquidate () = {
7678 let currentKey = toBase58String(i.callerPublicKey)
7779 let pmt = value(i.payments[0])
7880 let BalletAssetID = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y'
7981 let PreviousIssuedBallet = getIntegerValue(this, "Total_Issued_Ballet:")
8082 let TotalIssuedBallet = (PreviousIssuedBallet - pmt.amount)
8183 let PreviousBalletReserveValue = getIntegerValue(this, "Total_Ballet_Reserve_In_TN:")
8284 let PreviousBalletBackupPrice = getIntegerValue(this, "Ballet_Backup_Value_In_TN:")
8385 let calculateburnvalue = fraction(PreviousBalletBackupPrice, pmt.amount, 100000)
8486 let BalletReserveValue = (PreviousBalletReserveValue - calculateburnvalue)
8587 let BalletBackupPrice = fraction(100000, BalletReserveValue, TotalIssuedBallet)
8688 if ((pmt.assetId != BalletAssetID))
8789 then throw("Kindly Deposit Only 44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y (Ballet).")
8890 else if ((100000 > pmt.amount))
8991 then throw("Attach Amount must be greater than 0.001 Ballet.")
9092 else [Burn(BalletAssetID, pmt.amount), IntegerEntry("Total_Issued_Ballet:", TotalIssuedBallet), IntegerEntry("Total_Ballet_Reserve_In_TN:", BalletReserveValue), IntegerEntry("Ballet_Backup_Value_In_TN:", BalletBackupPrice), StringEntry("message", "<h1>Ballet Liquidated Successfully!</h1><br>"), ScriptTransfer(i.caller, calculateburnvalue, unit)]
9193 }
9294
9395
9496
9597 @Callable(i)
9698 func DoVoting (EnterAssetID) = {
9799 let pmt = if ((size(i.payments) == 1))
98100 then i.payments[0]
99101 else throw("Ballet Token is required as Attached payment")
100102 let calleraddress = toBase58String(i.caller.bytes)
101103 let BalletAssetID = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y'
102104 let NewVotingStatus = "Pass"
103105 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
104106 let checkprojectexpireheight = getIntegerValue(this, ("Voting_End_Height_" + EnterAssetID))
105107 let checkpairisavailableornot = getString(this, ("Pair_Under_Voting_" + EnterAssetID))
106108 let checkvotesrequired = getIntegerValue(this, ("Votes_Required_" + EnterAssetID))
107109 let checkvotesreceived = getIntegerValue(this, ("Votes_Received_" + EnterAssetID))
108110 let VotingStatus = getStringValue(this, ("Voting_Status_" + EnterAssetID))
109111 let currentvotes = match getInteger(this, ("Votes_Received_" + EnterAssetID)) {
110112 case a: Int =>
111113 a
112114 case _ =>
113115 0
114116 }
115117 let newvotescount = (currentvotes + pmt.amount)
116118 let individualvotes = match getInteger(this, ((("Votes_Received_" + calleraddress) + "_") + EnterAssetID)) {
117119 case b: Int =>
118120 b
119121 case _ =>
120122 0
121123 }
122124 let individualvotescount = (individualvotes + pmt.amount)
123125 let checkwhitelist = (checkvotesreceived >= checkvotesrequired)
124126 let info = valueOrErrorMessage(assetInfo(fromBase58String(EnterAssetID)), (("Asset " + EnterAssetID) + " doesn't exist"))
125127 let decimals = info.decimals
126128 if ((checkpairisavailableornot != EnterAssetID))
127129 then throw("Pair is not available in Voting List.")
128130 else if ((height > checkprojectexpireheight))
129131 then throw((("Voting timeline for " + EnterAssetID) + " is expired."))
130132 else if ((pmt.assetId != BalletAssetID))
131133 then throw("Kindly Attach Only 44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y (Ballet).")
132134 else if ((VotingStatus == NewVotingStatus))
133135 then throw((("Voting for " + EnterAssetID) + " pair is completed and it’s available in whitelist."))
134136 else if (checkwhitelist)
135137 then [StringEntry(("Voting_Status_" + EnterAssetID), NewVotingStatus), IntegerEntry(("Decimals_of_" + EnterAssetID), decimals), IntegerEntry(((("Old_Balance_of_" + EnterAssetID) + "_") + toBase58String(USDTAssetID)), 0), IntegerEntry(((("New_Balance_of_" + EnterAssetID) + "_") + toBase58String(USDTAssetID)), 0), IntegerEntry(((("Total_of_pair_Txns_" + EnterAssetID) + "_") + toBase58String(USDTAssetID)), 0), IntegerEntry("Total_of_Swaps_Txns", 0), IntegerEntry("Total_Swap_Fee_Collected", 0)]
136138 else [IntegerEntry(("Votes_Received_" + EnterAssetID), newvotescount), IntegerEntry(((("Votes_Received_" + calleraddress) + "_") + EnterAssetID), individualvotescount)]
137139 }
138140
139141
140142
141143 @Callable(i)
142144 func WithdrawVotedTokens (EnterAssetID) = {
143145 let pmt = i.payments[0]
144146 let calleraddress = toBase58String(i.caller.bytes)
145147 let BalletAssetID = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y'
146148 let checkprojectexpireheight = getIntegerValue(this, ("Voting_End_Height_" + EnterAssetID))
147149 let checkpairisavailableornot = getString(this, ("Pair_Under_Voting_" + EnterAssetID))
148150 let checkuservotingbalance = getIntegerValue(this, ((("Votes_Received_" + calleraddress) + "_") + EnterAssetID))
149151 let pendingblocksforprojectexpire = (checkprojectexpireheight - height)
150152 if ((checkpairisavailableornot != EnterAssetID))
151153 then throw("Pair is not available in Voting List.")
152154 else if ((checkprojectexpireheight > height))
153155 then throw((("Voting Already Running. You can withdraw your Ballet Token only after the expire of " + toString(pendingblocksforprojectexpire)) + " Blocks"))
154156 else if ((0 >= checkuservotingbalance))
155157 then throw("You don't have any dues of ballet balance in this Voting Pair.")
156158 else if (isDefined(pmt.assetId))
157159 then throw("Don't attach any asset. If you still want to support we accept only TN as payment.")
158160 else if ((pmt.amount != 10000000))
159161 then throw("Please attach 0.1 TN as a fee to release your token.")
160162 else [IntegerEntry(((("Votes_Received_" + calleraddress) + "_") + EnterAssetID), 0), ScriptTransfer(i.caller, checkuservotingbalance, BalletAssetID)]
161163 }
162164
163165
164166
165167 @Callable(i)
166168 func SwapAssetToUSDTPairEntry (EnterAssetID) = {
167169 let calleraddress = toBase58String(i.caller.bytes)
168170 let pmt = if ((size(i.payments) == 1))
169171 then i.payments[0]
170172 else throw("Whitelisted Swap Token is required as Attached payment[1].")
171173 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
172174 let checkpairisavailableornot = getString(this, ("Pair_Under_Voting_" + EnterAssetID))
173175 let VotingStatus = getStringValue(this, ("Voting_Status_" + EnterAssetID))
174176 let CheckPairPrice = getIntegerValue(this, ((("Price_Of_" + EnterAssetID) + "_") + toBase58String(USDTAssetID)))
175177 let CheckOldBalance = getIntegerValue(this, ((("Old_Balance_of_" + EnterAssetID) + "_") + toBase58String(USDTAssetID)))
176178 let CheckAssetDecimals = getIntegerValue(this, ("Decimals_of_" + EnterAssetID))
177179 let CurrentVotingStatus = "Fail"
178180 let SwapFee = 1
179181 let amountAssetDecimals = CheckAssetDecimals
180182 let priceAssetDecimals = 6
181183 let decimalsgap = ((6 - amountAssetDecimals) - 8)
182184 let quantityofpriceasset = (((pmt.amount * CheckPairPrice) * pow(10, 0, decimalsgap, 0, 0, UP)) / pow(10, 0, amountAssetDecimals, 0, 0, UP))
183185 let getUSDTBalance = assetBalance(this, base58'GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU')
184186 let newUSDTBalance = (getUSDTBalance - quantityofpriceasset)
185187 if ((checkpairisavailableornot != EnterAssetID))
186188 then throw("Pair is not available in Whitelisted Asset.")
187189 else if ((VotingStatus == CurrentVotingStatus))
188190 then throw((EnterAssetID + " is not A Whitelisted Token Yet."))
189191 else if ((pmt.assetId == USDTAssetID))
190192 then throw("You can't Attach USDT as an Attached Payment. Only Whitelisted Tokens are Accepted.")
191193 else if ((pmt.assetId != fromBase58String(EnterAssetID)))
192194 then throw(("Incorrect asset attached, please attach or send " + EnterAssetID))
193195 else if ((10000 > quantityofpriceasset))
194196 then throw((("Your Attached Amount is very low. Attach More " + EnterAssetID) + " Token to Claim the minimum Amount of 1 cent atleast."))
195197 else if ((CheckOldBalance == 0))
196198 then throw("Swap Pair Need to Add Liquidity first into Pool. Only After that Pair will be activated for Swapping.")
197199 else [IntegerEntry(((("Price_Of_" + EnterAssetID) + "_") + toBase58String(USDTAssetID)), CheckPairPrice), ScriptTransfer(i.caller, ((quantityofpriceasset * 99) / 100), base58'GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU'), ScriptTransfer(i.caller, ((quantityofpriceasset * SwapFee) / 100), base58'GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU')]
198200 }
199201
200202
201203
202204 @Callable(i)
203205 func SwapUSDTToAssetPairEntry (EnterAssetID) = {
204206 let calleraddress = toBase58String(i.caller.bytes)
205207 let pmt = if ((size(i.payments) == 1))
206208 then i.payments[0]
207209 else throw("Whitelisted Swap Token is required as Attached payment[1].")
208210 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
209211 nil
210212 }
211213
212214
213215
214216 @Callable(i)
215217 func AddLiquidity (EnterAssetID) = {
216218 let calleraddress = toBase58String(i.caller.bytes)
217219 let pmt = if ((size(i.payments) == 1))
218220 then i.payments[0]
219221 else throw("Whitelisted Swap Token is required as Attached payment[1].")
220222 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
221223 nil
222224 }
223225
224226
225227
226228 @Callable(i)
227229 func RemovePairEntry (EnterAssetID) = {
228230 let adminrights = getStringValue(this, "Polarity_Admin_Rights")
229231 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
230232 let checkprojectexpireheight = getIntegerValue(this, ("Voting_End_Height_" + EnterAssetID))
231233 let checkpairisavailableornot = getString(this, ("Pair_Under_Voting_" + EnterAssetID))
232234 let VotingStatus = getStringValue(this, ("Voting_Status_" + EnterAssetID))
233235 let NewVotingStatus = "Pass"
234236 let calleraddress = toBase58String(i.caller.bytes)
235237 let currentheight = height
236238 let pendingblocksforprojectexpire = (checkprojectexpireheight - height)
237239 if ((checkpairisavailableornot != EnterAssetID))
238240 then throw("Pair is not available in Voting List.")
239241 else if ((adminrights != calleraddress))
240242 then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to remove the pair."))
241243 else if ((checkprojectexpireheight > height))
242244 then throw((("Voting Already Running. You can remove the pair after " + toString(pendingblocksforprojectexpire)) + " Blocks"))
243245 else if ((VotingStatus == NewVotingStatus))
244246 then throw((EnterAssetID + " is now Whitelisted. So you can't remove it."))
245247 else [DeleteEntry(("Pair_Under_Voting_" + EnterAssetID)), DeleteEntry(("Voting_Start_Height_" + EnterAssetID)), DeleteEntry(("Voting_End_Height_" + EnterAssetID)), DeleteEntry(("Voting_Period_" + EnterAssetID)), DeleteEntry(("Votes_Required_" + EnterAssetID)), DeleteEntry(("Voting_Listing_Fee_" + EnterAssetID)), DeleteEntry(("Voting_Status_" + EnterAssetID)), DeleteEntry(("Votes_Received_" + EnterAssetID)), DeleteEntry(((("Price_Of_" + EnterAssetID) + "_") + toBase58String(USDTAssetID)))]
246248 }
247249
248250
249251 @Verifier(tx)
250252 func verify () = match tx {
251253 case _ =>
252254 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
253255 }
254256

github/deemru/w8io/169f3d6 
62.46 ms