tx · 6K8JAN32kJDDYKVuFfzwL46bsCcD8pddiv6U1SyScaDX

3Mrnje6z2xa3xuXyU2Lk6ynKy8tsRnnt4Bv:  -0.01400000 Waves

2021.08.23 12:21 [1670782] smart account 3Mrnje6z2xa3xuXyU2Lk6ynKy8tsRnnt4Bv > SELF 0.00000000 Waves

{ "type": 13, "id": "6K8JAN32kJDDYKVuFfzwL46bsCcD8pddiv6U1SyScaDX", "fee": 1400000, "feeAssetId": null, "timestamp": 1629710481671, "version": 2, "chainId": 84, "sender": "3Mrnje6z2xa3xuXyU2Lk6ynKy8tsRnnt4Bv", "senderPublicKey": "28sGn7FYnmxceAmnGYiDiKuMK1QyXiqX8zQXfKDnrc8t", "proofs": [ "4vEo7kFJLnRx5uHncLwW4Hfd2DBKivPHoCGnSLdJ9HJrfW1aaPNQ5MXCW443RDFnebmKoAxP1Q52UXbPbeVXX4yS" ], "script": "base64:AAIEAAAAAAAAACsIAhIFCgMIAQESABIAEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIAAAAAAAAAAkAAAABaQEAAAAVUmVnaXN0ZXJQYWlyRm9yVm90aW5nAAAAAwAAAAhBc3NldElEMQAAAARkYXlzAAAADExpc3RpbmdQcmljZQQAAAAEcG10MQkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAEcG10MgkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQQAAAAKRmVlQWRkcmVzcwEAAAAg463XstSKNtaiPAMTm2AWTDVjxzAiveOx6Vx7CmnuvCMEAAAAEW1heGltdW12b3RpbmdkYXlzAAAAAAAAAABaBAAAAA1CYWxsZXRBc3NldElEAQAAACAtb1sBuZ3lSm8ahGink+4TF5YYAu/xRHYwe1h195OooAQAAAALVVNEVEFzc2V0SUQBAAAAIF9XaRjICieBJvFbl+3E7E35wrtZyxIYi4RgoF+m9/zzBAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAAlROCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAEcG10MgAAAAdhc3NldElkBAAAAAZvbmVkYXkAAAAAAAAABaAEAAAADk5vT2ZEYXlzQmxvY2tzCQAAaAAAAAIFAAAABm9uZWRheQUAAAAEZGF5cwQAAAADZ2FwCQAAZQAAAAIFAAAADk5vT2ZEYXlzQmxvY2tzAAAAAAAAAKi/BAAAAA12b3Rlc3JlcXVpcmVkCQAAaAAAAAIJAABkAAAAAgAAAAAAAAGGoAkAAGkAAAACCQAAaAAAAAIAAAAAAAAALTYFAAAAA2dhcAAAAAAAAAAnEAAAAAAABfXhAAQAAAAMdm90aW5nRXhwaXJlCQAAZAAAAAIFAAAABmhlaWdodAUAAAAOTm9PZkRheXNCbG9ja3MEAAAACWZldGNocGFpcgkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAElBhaXJfVW5kZXJfVm90aW5nXwUAAAAIQXNzZXRJRDEEAAAADHZvdGluZ3N0YXR1cwIAAAAERmFpbAQAAAANYXNzZXRpbmZvcG10MgkAAlkAAAABBQAAAAhBc3NldElEMQQAAAAMcmV2ZXJzZXByaWNlCQAAawAAAAMAAAAAAAAAAAEFAAAADExpc3RpbmdQcmljZQAAAADo1KUQAAMJAABmAAAAAgAAAAAAAAAAKwkAATEAAAABBQAAAAhBc3NldElEMQkAAAIAAAABAgAAAHlXcm9uZyBBc3NldElEMSBpcyBFbnRlcmVkIGZvciBWb3RpbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIEFzc2V0SUQxLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBBU1NFVElEMSBsZXNzIHRoYW4gNDMgQ2hhcnMuAwkAAGcAAAACAAAAAAAAAAAdBQAAAARkYXlzCQAAAgAAAAECAAAAJkVudGVyIG5vLiBvZiBkYXlzIGluIGJldHdlZW4gMzAgdG8gOTAuAwkAAGYAAAACBQAAAARkYXlzBQAAABFtYXhpbXVtdm90aW5nZGF5cwkAAAIAAAABAgAAAE1Zb3UgRW50ZXJlZCBkYXlzIGdyZWF0ZXIgdGhhbiA5MCBwbGVhc2UgRW50ZXIgbm8uIG9mIGRheXMgaW4gYmV0d2VlbiAxIHRvIDkwLgMJAAAAAAAAAgUAAAAJZmV0Y2hwYWlyBQAAAAhBc3NldElEMQkAAAIAAAABAgAAACJQYWlyIEFscmVhZHkgRXhpc3QgaW4gVm90aW5nIExpc3QuAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAgkAAAIAAAABAgAAAIdUd28gYXR0YWNoZWQgYXNzZXRzIGV4cGVjdGVkIGFzIHBheW1lbnQuIEtpbmRseSBBdHRhY2ggcGF5bWVudDEgPSBCYWxsZXQgVG9rZW4gYW5kIHBheW1lbnQyID0gVG9rZW4geW91IHdhbnQgdG8gYWRkIHRvIExpc3QgZm9yIFZvdGluZy4DCQEAAAACIT0AAAACCAUAAAAEcG10MQAAAAdhc3NldElkBQAAAA1CYWxsZXRBc3NldElECQAAAgAAAAECAAAAWEluY29ycmVjdCBhc3NldCBhdHRhY2hlZCBmb3IgVm90aW5nIGluIHBheW1lbnRbMV0sIHBsZWFzZSBhdHRhY2ggMTAwMCBCYWxsZXQgVG9rZW4gb25seS4DCQAAZgAAAAIAAAAAAAJiWgAIBQAAAARwbXQxAAAABmFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEllvdSBhdHRhY2hlZCBvbmx5IAkAAaQAAAABCQAAawAAAAMIBQAAAARwbXQxAAAABmFtb3VudAAAAAAAAAAAAQAAAAAABfXhAAIAAAABLgkAAaQAAAABCQAAawAAAAMIBQAAAARwbXQxAAAABmFtb3VudAAAAAAAAAAAAQAAAAAAAJiWgAIAAABHIEJhbGxldCBmb3IgVm90aW5nIGluIHBheW1lbnRbMV0sIHBsZWFzZSBhdHRhY2ggMTAwMCBCYWxsZXQgVG9rZW4gb25seS4DCQEAAAACIT0AAAACCAUAAAAEcG10MgAAAAdhc3NldElkBQAAAA1hc3NldGluZm9wbXQyCQAAAgAAAAECAAAASEFzc2V0IFN0cmluZyBBdHRhY2hlZCBpbiBBU1NFVElEMSBpcyBub3QgbWF0Y2hpbmcgd2l0aCBQYXltZW50MiBBc3NldElELgMJAAAAAAAAAgUAAAACVE4GCQAAAgAAAAECAAAAXFlvdSBBdHRhY2hlZCBUTiBBc3NldCBJRCBmb3IgVm90aW5nLCBwbGVhc2UgYXR0YWNoIHRoZSBUb2tlbiBZb3Ugd2FudCB0byBsaXN0IGluIHBheW1lbnRbMl0uAwkAAAAAAAACCAUAAAAEcG10MgAAAAdhc3NldElkBQAAAA1CYWxsZXRBc3NldElECQAAAgAAAAECAAAAbllvdSBBdHRhY2hlZCBCYWxsZXQgYXNzZXQgZm9yIFZvdGluZyBpbiBib3RoIHBheW1lbnRzLCBwbGVhc2UgYXR0YWNoIHRoZSBUb2tlbiBZb3Ugd2FudCB0byBsaXN0IGluIHBheW1lbnRbMl0uAwkAAGYAAAACAAAAAAAAAABjBQAAAAxMaXN0aW5nUHJpY2UJAAACAAAAAQIAAABsV3JvbmcgbGlzdGluZyBQcmljZSBpcyBFbnRlcmVkIHBlciB0b2tlbiwgcGxlYXNlIGVudGVyIGFzIGEgdmFsaWQgcmFuZ2UgaW4gYmV0d2VlbiByYW5nZSBbMC4wMDAxMDAtMU1dIFVTRFQuAwkAAGYAAAACBQAAAAxMaXN0aW5nUHJpY2UAAAAA6NSlD/8JAAACAAAAAQIAAABsV3JvbmcgbGlzdGluZyBQcmljZSBpcyBFbnRlcmVkIHBlciB0b2tlbiwgcGxlYXNlIGVudGVyIGFzIGEgdmFsaWQgcmFuZ2UgaW4gYmV0d2VlbiByYW5nZSBbMC4wMDAxMDAtMU1dIFVTRFQuCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAASUGFpcl9VbmRlcl9Wb3RpbmdfBQAAAAhBc3NldElEMQUAAAAIQXNzZXRJRDEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAA5Wb3RpbmdfU3RhdHVzXwUAAAAIQXNzZXRJRDEFAAAADHZvdGluZ3N0YXR1cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABRWb3RpbmdfU3RhcnRfSGVpZ2h0XwUAAAAIQXNzZXRJRDEFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABJWb3RpbmdfRW5kX0hlaWdodF8FAAAACEFzc2V0SUQxBQAAAAx2b3RpbmdFeHBpcmUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAOVm90aW5nX1BlcmlvZF8FAAAACEFzc2V0SUQxBQAAAA5Ob09mRGF5c0Jsb2NrcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABNWb3RpbmdfTGlzdGluZ19GZWVfBQAAAAhBc3NldElEMQgFAAAABHBtdDEAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAD1ZvdGVzX1JlcXVpcmVkXwUAAAAIQXNzZXRJRDEFAAAADXZvdGVzcmVxdWlyZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAPVm90ZXNfUmVjZWl2ZWRfBQAAAAhBc3NldElEMQAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAJUHJpY2VfT2ZfBQAAAAhBc3NldElEMQIAAAABXwkAAlgAAAABBQAAAAtVU0RUQXNzZXRJRAUAAAAMTGlzdGluZ1ByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABBSZXZlcnNlUHJpY2VfT2ZfBQAAAAhBc3NldElEMQIAAAABXwkAAlgAAAABBQAAAAtVU0RUQXNzZXRJRAUAAAAMcmV2ZXJzZXByaWNlCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAACkZlZUFkZHJlc3MIBQAAAARwbXQxAAAABmFtb3VudAUAAAANQmFsbGV0QXNzZXRJRAUAAAADbmlsAAAAAWkBAAAAC0lzc3VlQmFsbGV0AAAAAAQAAAADcG10CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADUJhbGxldEFzc2V0SUQBAAAAIC1vWwG5neVKbxqEaKeT7hMXlhgC7/FEdjB7WHX3k6igBAAAAA5QcmljZVBlckJhbGxldAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAJQkFMTEVUL1ROBAAAAA9OZXdCYWxsZXRUb1VzZXIJAABrAAAAAwAAAAAAAAGGoAgFAAAAA3BtdAAAAAZhbW91bnQFAAAADlByaWNlUGVyQmFsbGV0BAAAABRQcmV2aW91c0lzc3VlZEJhbGxldAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAUVG90YWxfSXNzdWVkX0JhbGxldDoEAAAAEVRvdGFsSXNzdWVkQmFsbGV0CQAAZAAAAAIFAAAAFFByZXZpb3VzSXNzdWVkQmFsbGV0BQAAAA9OZXdCYWxsZXRUb1VzZXIEAAAAGlByZXZpb3VzQmFsbGV0UmVzZXJ2ZVZhbHVlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABtUb3RhbF9CYWxsZXRfUmVzZXJ2ZV9Jbl9UTjoEAAAAEkJhbGxldFJlc2VydmVWYWx1ZQkAAGQAAAACBQAAABpQcmV2aW91c0JhbGxldFJlc2VydmVWYWx1ZQgFAAAAA3BtdAAAAAZhbW91bnQEAAAAGVByZXZpb3VzQmFsbGV0QmFja3VwUHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAGkJhbGxldF9CYWNrdXBfVmFsdWVfSW5fVE46BAAAABFCYWxsZXRCYWNrdXBQcmljZQkAAGsAAAADAAAAAAAAAYagBQAAABJCYWxsZXRSZXNlcnZlVmFsdWUFAAAAEVRvdGFsSXNzdWVkQmFsbGV0BAAAAApGZWVBZGRyZXNzAQAAACDjrdey1Io21qI8AxObYBZMNWPHMCK947HpXHsKae68IwQAAAANRmVlUGVyY2VudGFnZQAAAAAAAAAAAQQAAAAbQmFsYW5jZVRva2Vuc1JldHVybmVkVG9Vc2VyCQAAZQAAAAIAAAAAAAAAAGQFAAAADUZlZVBlcmNlbnRhZ2UDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAAK0luY29ycmVjdCBhc3NldCBhdHRhY2hlZCwgcGxlYXNlIGF0dGFjaCBUTi4DCQAAZgAAAAIAAAAAAABMS0AIBQAAAANwbXQAAAAGYW1vdW50CQAAAgAAAAECAAAANFBsZWFzZSBBdHRhY2ggbWluaW11bSAwLjA1IFROIFRvIElzc3VlIEJhbGxldCBBc3NldC4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX0lzc3VlZF9CYWxsZXQ6BQAAABFUb3RhbElzc3VlZEJhbGxldAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAbVG90YWxfQmFsbGV0X1Jlc2VydmVfSW5fVE46BQAAABJCYWxsZXRSZXNlcnZlVmFsdWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGkJhbGxldF9CYWNrdXBfVmFsdWVfSW5fVE46BQAAABFCYWxsZXRCYWNrdXBQcmljZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlAgAAACg8aDE+QmFsbGV0IElzc3VlZCBTdWNjZXNzZnVsbHkhPC9oMT48YnI+CQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAANQmFsbGV0QXNzZXRJRAUAAAAPTmV3QmFsbGV0VG9Vc2VyBgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABpAAAAAgkAAGgAAAACBQAAAA9OZXdCYWxsZXRUb1VzZXIFAAAAG0JhbGFuY2VUb2tlbnNSZXR1cm5lZFRvVXNlcgAAAAAAAAAAZAUAAAANQmFsbGV0QXNzZXRJRAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAApGZWVBZGRyZXNzCQAAaQAAAAIJAABoAAAAAgUAAAAPTmV3QmFsbGV0VG9Vc2VyBQAAAA1GZWVQZXJjZW50YWdlAAAAAAAAAABkBQAAAA1CYWxsZXRBc3NldElEBQAAAANuaWwAAAABaQEAAAAJTGlxdWlkYXRlAAAAAAQAAAAKY3VycmVudEtleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAANQmFsbGV0QXNzZXRJRAEAAAAgLW9bAbmd5UpvGoRop5PuExeWGALv8UR2MHtYdfeTqKAEAAAAFFByZXZpb3VzSXNzdWVkQmFsbGV0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABRUb3RhbF9Jc3N1ZWRfQmFsbGV0OgQAAAARVG90YWxJc3N1ZWRCYWxsZXQJAABlAAAAAgUAAAAUUHJldmlvdXNJc3N1ZWRCYWxsZXQIBQAAAANwbXQAAAAGYW1vdW50BAAAABpQcmV2aW91c0JhbGxldFJlc2VydmVWYWx1ZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAbVG90YWxfQmFsbGV0X1Jlc2VydmVfSW5fVE46BAAAABlQcmV2aW91c0JhbGxldEJhY2t1cFByaWNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABpCYWxsZXRfQmFja3VwX1ZhbHVlX0luX1ROOgQAAAASY2FsY3VsYXRlYnVybnZhbHVlCQAAawAAAAMFAAAAGVByZXZpb3VzQmFsbGV0QmFja3VwUHJpY2UIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAAYagBAAAABJCYWxsZXRSZXNlcnZlVmFsdWUJAABlAAAAAgUAAAAaUHJldmlvdXNCYWxsZXRSZXNlcnZlVmFsdWUFAAAAEmNhbGN1bGF0ZWJ1cm52YWx1ZQQAAAARQmFsbGV0QmFja3VwUHJpY2UJAABrAAAAAwAAAAAAAAGGoAUAAAASQmFsbGV0UmVzZXJ2ZVZhbHVlBQAAABFUb3RhbElzc3VlZEJhbGxldAMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAANQmFsbGV0QXNzZXRJRAkAAAIAAAABAgAAAEpLaW5kbHkgRGVwb3NpdCBPbmx5IDQ0TXE4S3FVaE05NHQ5M01pQnEzUzIyaWl1R2N6TXhwS21zZTVkQnkydzV5IChCYWxsZXQpLgMJAABmAAAAAgAAAAAAAAGGoAgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAAwQXR0YWNoIEFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLjAwMSBCYWxsZXQuCQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAANQmFsbGV0QXNzZXRJRAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX0lzc3VlZF9CYWxsZXQ6BQAAABFUb3RhbElzc3VlZEJhbGxldAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAbVG90YWxfQmFsbGV0X1Jlc2VydmVfSW5fVE46BQAAABJCYWxsZXRSZXNlcnZlVmFsdWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGkJhbGxldF9CYWNrdXBfVmFsdWVfSW5fVE46BQAAABFCYWxsZXRCYWNrdXBQcmljZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlAgAAACw8aDE+QmFsbGV0IExpcXVpZGF0ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAEmNhbGN1bGF0ZWJ1cm52YWx1ZQUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAACERvVm90aW5nAAAAAQAAAAxFbnRlckFzc2V0SUQEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAACxCYWxsZXQgVG9rZW4gaXMgcmVxdWlyZWQgYXMgQXR0YWNoZWQgcGF5bWVudAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1CYWxsZXRBc3NldElEAQAAACAtb1sBuZ3lSm8ahGink+4TF5YYAu/xRHYwe1h195OooAQAAAAPTmV3Vm90aW5nU3RhdHVzAgAAAARQYXNzBAAAAAtVU0RUQXNzZXRJRAEAAAAgX1dpGMgKJ4Em8VuX7cTsTfnCu1nLEhiLhGCgX6b3/PMEAAAAGGNoZWNrcHJvamVjdGV4cGlyZWhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABJWb3RpbmdfRW5kX0hlaWdodF8FAAAADEVudGVyQXNzZXRJRAQAAAAZY2hlY2twYWlyaXNhdmFpbGFibGVvcm5vdAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAElBhaXJfVW5kZXJfVm90aW5nXwUAAAAMRW50ZXJBc3NldElEBAAAABJjaGVja3ZvdGVzcmVxdWlyZWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAPVm90ZXNfUmVxdWlyZWRfBQAAAAxFbnRlckFzc2V0SUQEAAAAEmNoZWNrdm90ZXNyZWNlaXZlZAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADEVudGVyQXNzZXRJRAQAAAAMVm90aW5nU3RhdHVzCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADlZvdGluZ19TdGF0dXNfBQAAAAxFbnRlckFzc2V0SUQEAAAADGN1cnJlbnR2b3RlcwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAD1ZvdGVzX1JlY2VpdmVkXwUAAAAMRW50ZXJBc3NldElEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADW5ld3ZvdGVzY291bnQJAABkAAAAAgUAAAAMY3VycmVudHZvdGVzCAUAAAADcG10AAAABmFtb3VudAQAAAAPaW5kaXZpZHVhbHZvdGVzBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD1ZvdGVzX1JlY2VpdmVkXwUAAAANY2FsbGVyYWRkcmVzcwIAAAABXwUAAAAMRW50ZXJBc3NldElEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAAEAAAAFGluZGl2aWR1YWx2b3Rlc2NvdW50CQAAZAAAAAIFAAAAD2luZGl2aWR1YWx2b3RlcwgFAAAAA3BtdAAAAAZhbW91bnQEAAAADmNoZWNrd2hpdGVsaXN0CQAAZwAAAAIFAAAAEmNoZWNrdm90ZXNyZWNlaXZlZAUAAAASY2hlY2t2b3Rlc3JlcXVpcmVkBAAAAARpbmZvCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPsAAAAAQkAAlkAAAABBQAAAAxFbnRlckFzc2V0SUQJAAEsAAAAAgkAASwAAAACAgAAAAZBc3NldCAFAAAADEVudGVyQXNzZXRJRAIAAAAOIGRvZXNuJ3QgZXhpc3QEAAAACGRlY2ltYWxzCAUAAAAEaW5mbwAAAAhkZWNpbWFscwMJAQAAAAIhPQAAAAIFAAAAGWNoZWNrcGFpcmlzYXZhaWxhYmxlb3Jub3QFAAAADEVudGVyQXNzZXRJRAkAAAIAAAABAgAAACVQYWlyIGlzIG5vdCBhdmFpbGFibGUgaW4gVm90aW5nIExpc3QuAwkAAGYAAAACBQAAAAZoZWlnaHQFAAAAGGNoZWNrcHJvamVjdGV4cGlyZWhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAUVm90aW5nIHRpbWVsaW5lIGZvciAFAAAADEVudGVyQXNzZXRJRAIAAAAMIGlzIGV4cGlyZWQuAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAA1CYWxsZXRBc3NldElECQAAAgAAAAECAAAASUtpbmRseSBBdHRhY2ggT25seSA0NE1xOEtxVWhNOTR0OTNNaUJxM1MyMmlpdUdjek14cEttc2U1ZEJ5Mnc1eSAoQmFsbGV0KS4DCQAAAAAAAAIFAAAADFZvdGluZ1N0YXR1cwUAAAAPTmV3Vm90aW5nU3RhdHVzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAtWb3RpbmcgZm9yIAUAAAAMRW50ZXJBc3NldElEAgAAADUgcGFpciBpcyBjb21wbGV0ZWQgYW5kIGl04oCZcyBhdmFpbGFibGUgaW4gd2hpdGVsaXN0LgMFAAAADmNoZWNrd2hpdGVsaXN0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAOVm90aW5nX1N0YXR1c18FAAAADEVudGVyQXNzZXRJRAUAAAAPTmV3Vm90aW5nU3RhdHVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADERlY2ltYWxzX29mXwUAAAAMRW50ZXJBc3NldElEBQAAAAhkZWNpbWFscwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPT2xkX0JhbGFuY2Vfb2ZfBQAAAAxFbnRlckFzc2V0SUQCAAAAAV8JAAJYAAAAAQUAAAALVVNEVEFzc2V0SUQAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD05ld19CYWxhbmNlX29mXwUAAAAMRW50ZXJBc3NldElEAgAAAAFfCQACWAAAAAEFAAAAC1VTRFRBc3NldElEAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABNUb3RhbF9vZl9wYWlyX1R4bnNfBQAAAAxFbnRlckFzc2V0SUQCAAAAAV8JAAJYAAAAAQUAAAALVVNEVEFzc2V0SUQAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1RvdGFsX29mX1N3YXBzX1R4bnMAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGFRvdGFsX1N3YXBfRmVlX0NvbGxlY3RlZAAAAAAAAAAAAAUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAD1ZvdGVzX1JlY2VpdmVkXwUAAAAMRW50ZXJBc3NldElEBQAAAA1uZXd2b3Rlc2NvdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADWNhbGxlcmFkZHJlc3MCAAAAAV8FAAAADEVudGVyQXNzZXRJRAUAAAAUaW5kaXZpZHVhbHZvdGVzY291bnQFAAAAA25pbAAAAAFpAQAAABNXaXRoZHJhd1ZvdGVkVG9rZW5zAAAAAQAAAAxFbnRlckFzc2V0SUQEAAAAA3BtdAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1CYWxsZXRBc3NldElEAQAAACAtb1sBuZ3lSm8ahGink+4TF5YYAu/xRHYwe1h195OooAQAAAAYY2hlY2twcm9qZWN0ZXhwaXJlaGVpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAElZvdGluZ19FbmRfSGVpZ2h0XwUAAAAMRW50ZXJBc3NldElEBAAAABljaGVja3BhaXJpc2F2YWlsYWJsZW9ybm90CQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAASUGFpcl9VbmRlcl9Wb3RpbmdfBQAAAAxFbnRlckFzc2V0SUQEAAAAFmNoZWNrdXNlcnZvdGluZ2JhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD1ZvdGVzX1JlY2VpdmVkXwUAAAANY2FsbGVyYWRkcmVzcwIAAAABXwUAAAAMRW50ZXJBc3NldElEBAAAAB1wZW5kaW5nYmxvY2tzZm9ycHJvamVjdGV4cGlyZQkAAGUAAAACBQAAABhjaGVja3Byb2plY3RleHBpcmVoZWlnaHQFAAAABmhlaWdodAMJAQAAAAIhPQAAAAIFAAAAGWNoZWNrcGFpcmlzYXZhaWxhYmxlb3Jub3QFAAAADEVudGVyQXNzZXRJRAkAAAIAAAABAgAAACVQYWlyIGlzIG5vdCBhdmFpbGFibGUgaW4gVm90aW5nIExpc3QuAwkAAGYAAAACBQAAABhjaGVja3Byb2plY3RleHBpcmVoZWlnaHQFAAAABmhlaWdodAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAABUVm90aW5nIEFscmVhZHkgUnVubmluZy4gWW91IGNhbiB3aXRoZHJhdyB5b3VyIEJhbGxldCBUb2tlbiBvbmx5IGFmdGVyIHRoZSBleHBpcmUgb2YgCQABpAAAAAEFAAAAHXBlbmRpbmdibG9ja3Nmb3Jwcm9qZWN0ZXhwaXJlAgAAAAcgQmxvY2tzAwkAAGcAAAACAAAAAAAAAAAABQAAABZjaGVja3VzZXJ2b3RpbmdiYWxhbmNlCQAAAgAAAAECAAAAPllvdSBkb24ndCBoYXZlIGFueSBkdWVzIG9mIGJhbGxldCBiYWxhbmNlIGluIHRoaXMgVm90aW5nIFBhaXIuAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAAFJEb24ndCBhdHRhY2ggYW55IGFzc2V0LiBJZiB5b3Ugc3RpbGwgd2FudCB0byBzdXBwb3J0IHdlIGFjY2VwdCBvbmx5IFROIGFzIHBheW1lbnQuAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAACYloAJAAACAAAAAQIAAAA0UGxlYXNlIGF0dGFjaCAwLjEgVE4gYXMgYSBmZWUgdG8gcmVsZWFzZSB5b3VyIHRva2VuLgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPVm90ZXNfUmVjZWl2ZWRfBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAFfBQAAAAxFbnRlckFzc2V0SUQAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABZjaGVja3VzZXJ2b3RpbmdiYWxhbmNlBQAAAA1CYWxsZXRBc3NldElEBQAAAANuaWwAAAABaQEAAAAYU3dhcEFzc2V0VG9VU0RUUGFpckVudHJ5AAAAAQAAAAxFbnRlckFzc2V0SUQEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAAOldoaXRlbGlzdGVkIFN3YXAgVG9rZW4gaXMgcmVxdWlyZWQgYXMgQXR0YWNoZWQgcGF5bWVudFsxXS4EAAAAC1VTRFRBc3NldElEAQAAACBfV2kYyAongSbxW5ftxOxN+cK7WcsSGIuEYKBfpvf88wQAAAAZY2hlY2twYWlyaXNhdmFpbGFibGVvcm5vdAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAElBhaXJfVW5kZXJfVm90aW5nXwUAAAAMRW50ZXJBc3NldElEBAAAAAxWb3RpbmdTdGF0dXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAOVm90aW5nX1N0YXR1c18FAAAADEVudGVyQXNzZXRJRAQAAAAOQ2hlY2tQYWlyUHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACVByaWNlX09mXwUAAAAMRW50ZXJBc3NldElEAgAAAAFfCQACWAAAAAEFAAAAC1VTRFRBc3NldElEBAAAAA9DaGVja09sZEJhbGFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD09sZF9CYWxhbmNlX29mXwUAAAAMRW50ZXJBc3NldElEAgAAAAFfCQACWAAAAAEFAAAAC1VTRFRBc3NldElEBAAAABJDaGVja0Fzc2V0RGVjaW1hbHMJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAMRGVjaW1hbHNfb2ZfBQAAAAxFbnRlckFzc2V0SUQEAAAAE0N1cnJlbnRWb3RpbmdTdGF0dXMCAAAABEZhaWwEAAAAB1N3YXBGZWUAAAAAAAAAAAEEAAAAE2Ftb3VudEFzc2V0RGVjaW1hbHMFAAAAEkNoZWNrQXNzZXREZWNpbWFscwQAAAAScHJpY2VBc3NldERlY2ltYWxzAAAAAAAAAAAGBAAAAAtkZWNpbWFsc2dhcAkAAGUAAAACCQAAZQAAAAIAAAAAAAAAAAYFAAAAE2Ftb3VudEFzc2V0RGVjaW1hbHMAAAAAAAAAAAgEAAAAFHF1YW50aXR5b2ZwcmljZWFzc2V0CQAAaQAAAAIJAABoAAAAAgkAAGgAAAACCAUAAAADcG10AAAABmFtb3VudAUAAAAOQ2hlY2tQYWlyUHJpY2UJAABsAAAABgAAAAAAAAAACgAAAAAAAAAAAAUAAAALZGVjaW1hbHNnYXAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAlVQCQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAFAAAAE2Ftb3VudEFzc2V0RGVjaW1hbHMAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAlVQBAAAAA5nZXRVU0RUQmFsYW5jZQkAA/AAAAACBQAAAAR0aGlzAQAAACDtbp7OYZSc/c7mGpIdLd7i5i2Qwk2YHwe8BMMPlpx8cQQAAAAObmV3VVNEVEJhbGFuY2UJAABlAAAAAgUAAAAOZ2V0VVNEVEJhbGFuY2UFAAAAFHF1YW50aXR5b2ZwcmljZWFzc2V0AwkBAAAAAiE9AAAAAgUAAAAZY2hlY2twYWlyaXNhdmFpbGFibGVvcm5vdAUAAAAMRW50ZXJBc3NldElECQAAAgAAAAECAAAAK1BhaXIgaXMgbm90IGF2YWlsYWJsZSBpbiBXaGl0ZWxpc3RlZCBBc3NldC4DCQAAAAAAAAIFAAAADFZvdGluZ1N0YXR1cwUAAAATQ3VycmVudFZvdGluZ1N0YXR1cwkAAAIAAAABCQABLAAAAAIFAAAADEVudGVyQXNzZXRJRAIAAAAgIGlzIG5vdCBBIFdoaXRlbGlzdGVkIFRva2VuIFlldC4DCQAAAAAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAALVVNEVEFzc2V0SUQJAAACAAAAAQIAAABTWW91IGNhbid0IEF0dGFjaCBVU0RUIGFzIGFuIEF0dGFjaGVkIFBheW1lbnQuIE9ubHkgV2hpdGVsaXN0ZWQgVG9rZW5zIGFyZSBBY2NlcHRlZC4DCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAAMRW50ZXJBc3NldElECQAAAgAAAAEJAAEsAAAAAgIAAAAwSW5jb3JyZWN0IGFzc2V0IGF0dGFjaGVkLCBwbGVhc2UgYXR0YWNoIG9yIHNlbmQgBQAAAAxFbnRlckFzc2V0SUQDCQAAZgAAAAIAAAAAAAAAJxAFAAAAFHF1YW50aXR5b2ZwcmljZWFzc2V0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAC5Zb3VyIEF0dGFjaGVkIEFtb3VudCBpcyB2ZXJ5IGxvdy4gQXR0YWNoIE1vcmUgBQAAAAxFbnRlckFzc2V0SUQCAAAANSBUb2tlbiB0byBDbGFpbSB0aGUgbWluaW11bSBBbW91bnQgb2YgMSBjZW50IGF0bGVhc3QuAwkAAAAAAAACBQAAAA9DaGVja09sZEJhbGFuY2UAAAAAAAAAAAAJAAACAAAAAQIAAABlU3dhcCBQYWlyIE5lZWQgdG8gQWRkIExpcXVpZGl0eSBmaXJzdCBpbnRvIFBvb2wuIE9ubHkgQWZ0ZXIgdGhhdCBQYWlyIHdpbGwgYmUgYWN0aXZhdGVkIGZvciBTd2FwcGluZy4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACVByaWNlX09mXwUAAAAMRW50ZXJBc3NldElEAgAAAAFfCQACWAAAAAEFAAAAC1VTRFRBc3NldElEBQAAAA5DaGVja1BhaXJQcmljZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAABpAAAAAgkAAGgAAAACBQAAABRxdWFudGl0eW9mcHJpY2Vhc3NldAAAAAAAAAAAYwAAAAAAAAAAZAEAAAAg7W6ezmGUnP3O5hqSHS3e4uYtkMJNmB8HvATDD5acfHEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQAAaQAAAAIJAABoAAAAAgUAAAAUcXVhbnRpdHlvZnByaWNlYXNzZXQFAAAAB1N3YXBGZWUAAAAAAAAAAGQBAAAAIO1uns5hlJz9zuYakh0t3uLmLZDCTZgfB7wEww+WnHxxBQAAAANuaWwAAAABaQEAAAAYU3dhcFVTRFRUb0Fzc2V0UGFpckVudHJ5AAAAAQAAAAxFbnRlckFzc2V0SUQEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAAOldoaXRlbGlzdGVkIFN3YXAgVG9rZW4gaXMgcmVxdWlyZWQgYXMgQXR0YWNoZWQgcGF5bWVudFsxXS4EAAAAC1VTRFRBc3NldElEAQAAACBfV2kYyAongSbxW5ftxOxN+cK7WcsSGIuEYKBfpvf88wUAAAADbmlsAAAAAWkBAAAADEFkZExpcXVpZGl0eQAAAAEAAAAMRW50ZXJBc3NldElEBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAADpXaGl0ZWxpc3RlZCBTd2FwIFRva2VuIGlzIHJlcXVpcmVkIGFzIEF0dGFjaGVkIHBheW1lbnRbMV0uBAAAAAtVU0RUQXNzZXRJRAEAAAAgX1dpGMgKJ4Em8VuX7cTsTfnCu1nLEhiLhGCgX6b3/PMFAAAAA25pbAAAAAFpAQAAAA9SZW1vdmVQYWlyRW50cnkAAAABAAAADEVudGVyQXNzZXRJRAQAAAALYWRtaW5yaWdodHMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMCAAAAFVBvbGFyaXR5X0FkbWluX1JpZ2h0cwQAAAALVVNEVEFzc2V0SUQBAAAAIF9XaRjICieBJvFbl+3E7E35wrtZyxIYi4RgoF+m9/zzBAAAABhjaGVja3Byb2plY3RleHBpcmVoZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAASVm90aW5nX0VuZF9IZWlnaHRfBQAAAAxFbnRlckFzc2V0SUQEAAAAGWNoZWNrcGFpcmlzYXZhaWxhYmxlb3Jub3QJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABJQYWlyX1VuZGVyX1ZvdGluZ18FAAAADEVudGVyQXNzZXRJRAQAAAAMVm90aW5nU3RhdHVzCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADlZvdGluZ19TdGF0dXNfBQAAAAxFbnRlckFzc2V0SUQEAAAAD05ld1ZvdGluZ1N0YXR1cwIAAAAEUGFzcwQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1jdXJyZW50aGVpZ2h0BQAAAAZoZWlnaHQEAAAAHXBlbmRpbmdibG9ja3Nmb3Jwcm9qZWN0ZXhwaXJlCQAAZQAAAAIFAAAAGGNoZWNrcHJvamVjdGV4cGlyZWhlaWdodAUAAAAGaGVpZ2h0AwkBAAAAAiE9AAAAAgUAAAAZY2hlY2twYWlyaXNhdmFpbGFibGVvcm5vdAUAAAAMRW50ZXJBc3NldElECQAAAgAAAAECAAAAJVBhaXIgaXMgbm90IGF2YWlsYWJsZSBpbiBWb3RpbmcgTGlzdC4DCQEAAAACIT0AAAACBQAAAAthZG1pbnJpZ2h0cwUAAAANY2FsbGVyYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAiSSBrbm93IFlvdSBhcmUgbm90IEFuIEFkbWluLiBPbmx5IAUAAAALYWRtaW5yaWdodHMCAAAAHyBoYXMgcmlnaHRzIHRvIHJlbW92ZSB0aGUgcGFpci4DCQAAZgAAAAIFAAAAGGNoZWNrcHJvamVjdGV4cGlyZWhlaWdodAUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAADZWb3RpbmcgQWxyZWFkeSBSdW5uaW5nLiBZb3UgY2FuIHJlbW92ZSB0aGUgcGFpciBhZnRlciAJAAGkAAAAAQUAAAAdcGVuZGluZ2Jsb2Nrc2ZvcnByb2plY3RleHBpcmUCAAAAByBCbG9ja3MDCQAAAAAAAAIFAAAADFZvdGluZ1N0YXR1cwUAAAAPTmV3Vm90aW5nU3RhdHVzCQAAAgAAAAEJAAEsAAAAAgUAAAAMRW50ZXJBc3NldElEAgAAACwgaXMgbm93IFdoaXRlbGlzdGVkLiBTbyB5b3UgY2FuJ3QgcmVtb3ZlIGl0LgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAICAAAAElBhaXJfVW5kZXJfVm90aW5nXwUAAAAMRW50ZXJBc3NldElECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAAUVm90aW5nX1N0YXJ0X0hlaWdodF8FAAAADEVudGVyQXNzZXRJRAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAICAAAAElZvdGluZ19FbmRfSGVpZ2h0XwUAAAAMRW50ZXJBc3NldElECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAAOVm90aW5nX1BlcmlvZF8FAAAADEVudGVyQXNzZXRJRAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAICAAAAD1ZvdGVzX1JlcXVpcmVkXwUAAAAMRW50ZXJBc3NldElECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAATVm90aW5nX0xpc3RpbmdfRmVlXwUAAAAMRW50ZXJBc3NldElECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAAOVm90aW5nX1N0YXR1c18FAAAADEVudGVyQXNzZXRJRAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAICAAAAD1ZvdGVzX1JlY2VpdmVkXwUAAAAMRW50ZXJBc3NldElECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACVByaWNlX09mXwUAAAAMRW50ZXJBc3NldElEAgAAAAFfCQACWAAAAAEFAAAAC1VTRFRBc3NldElEBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXnaByOj", "height": 1670782, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F91crzN5k8PDtnYtmLbn6nG3hfiCBtmYnMTdFLSnrWB1 Next: HAM8vqT6Km7bbYbBHt6UPcYQXGfnb4dWdEa3wPsTqkoP Diff:
OldNewDifferences
2121 let fetchpair = getString(this, ("Pair_Under_Voting_" + AssetID1))
2222 let votingstatus = "Fail"
2323 let assetinfopmt2 = fromBase58String(AssetID1)
24+ let reverseprice = fraction(1, ListingPrice, 1000000000000)
2425 if ((43 > size(AssetID1)))
2526 then throw("Wrong AssetID1 is Entered for Voting. Please Enter a Valid AssetID1. Probably you entered an ASSETID1 less than 43 Chars.")
2627 else if ((29 >= days))
4142 then throw("You Attached TN Asset ID for Voting, please attach the Token You want to list in payment[2].")
4243 else if ((pmt2.assetId == BalletAssetID))
4344 then throw("You Attached Ballet asset for Voting in both payments, please attach the Token You want to list in payment[2].")
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)]
45+ else if ((99 > ListingPrice))
46+ then throw("Wrong listing Price is Entered per token, please enter as a valid range in between range [0.000100-1M] USDT.")
47+ else if ((ListingPrice > 999999999999))
48+ then throw("Wrong listing Price is Entered per token, please enter as a valid range in between range [0.000100-1M] USDT.")
49+ 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), IntegerEntry(((("ReversePrice_Of_" + AssetID1) + "_") + toBase58String(USDTAssetID)), reverseprice), ScriptTransfer(addressFromPublicKey(FeeAddress), pmt1.amount, BalletAssetID)]
4750 }
4851
4952
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)
24+ let reverseprice = fraction(1, ListingPrice, 1000000000000)
2425 if ((43 > size(AssetID1)))
2526 then throw("Wrong AssetID1 is Entered for Voting. Please Enter a Valid AssetID1. Probably you entered an ASSETID1 less than 43 Chars.")
2627 else if ((29 >= days))
2728 then throw("Enter no. of days in between 30 to 90.")
2829 else if ((days > maximumvotingdays))
2930 then throw("You Entered days greater than 90 please Enter no. of days in between 1 to 90.")
3031 else if ((fetchpair == AssetID1))
3132 then throw("Pair Already Exist in Voting List.")
3233 else if ((size(i.payments) != 2))
3334 then throw("Two attached assets expected as payment. Kindly Attach payment1 = Ballet Token and payment2 = Token you want to add to List for Voting.")
3435 else if ((pmt1.assetId != BalletAssetID))
3536 then throw("Incorrect asset attached for Voting in payment[1], please attach 1000 Ballet Token only.")
3637 else if ((40000000 > pmt1.amount))
3738 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."))
3839 else if ((pmt2.assetId != assetinfopmt2))
3940 then throw("Asset String Attached in ASSETID1 is not matching with Payment2 AssetID.")
4041 else if ((TN == true))
4142 then throw("You Attached TN Asset ID for Voting, please attach the Token You want to list in payment[2].")
4243 else if ((pmt2.assetId == BalletAssetID))
4344 then throw("You Attached Ballet asset for Voting in both payments, please attach the Token You want to list in payment[2].")
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)]
45+ else if ((99 > ListingPrice))
46+ then throw("Wrong listing Price is Entered per token, please enter as a valid range in between range [0.000100-1M] USDT.")
47+ else if ((ListingPrice > 999999999999))
48+ then throw("Wrong listing Price is Entered per token, please enter as a valid range in between range [0.000100-1M] USDT.")
49+ 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), IntegerEntry(((("ReversePrice_Of_" + AssetID1) + "_") + toBase58String(USDTAssetID)), reverseprice), ScriptTransfer(addressFromPublicKey(FeeAddress), pmt1.amount, BalletAssetID)]
4750 }
4851
4952
5053
5154 @Callable(i)
5255 func IssueBallet () = {
5356 let pmt = value(i.payments[0])
5457 let currentKey = toBase58String(i.caller.bytes)
5558 let BalletAssetID = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y'
5659 let PricePerBallet = getIntegerValue(this, "BALLET/TN")
5760 let NewBalletToUser = fraction(100000, pmt.amount, PricePerBallet)
5861 let PreviousIssuedBallet = getIntegerValue(this, "Total_Issued_Ballet:")
5962 let TotalIssuedBallet = (PreviousIssuedBallet + NewBalletToUser)
6063 let PreviousBalletReserveValue = getIntegerValue(this, "Total_Ballet_Reserve_In_TN:")
6164 let BalletReserveValue = (PreviousBalletReserveValue + pmt.amount)
6265 let PreviousBalletBackupPrice = getIntegerValue(this, "Ballet_Backup_Value_In_TN:")
6366 let BalletBackupPrice = fraction(100000, BalletReserveValue, TotalIssuedBallet)
6467 let FeeAddress = base58'GKmJ6BchUgQfwKp4mp5eX8Y9xLioYRm6e1gDfFgdAcCr'
6568 let FeePercentage = 1
6669 let BalanceTokensReturnedToUser = (100 - FeePercentage)
6770 if (isDefined(pmt.assetId))
6871 then throw("Incorrect asset attached, please attach TN.")
6972 else if ((5000000 > pmt.amount))
7073 then throw("Please Attach minimum 0.05 TN To Issue Ballet Asset.")
7174 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)]
7275 }
7376
7477
7578
7679 @Callable(i)
7780 func Liquidate () = {
7881 let currentKey = toBase58String(i.callerPublicKey)
7982 let pmt = value(i.payments[0])
8083 let BalletAssetID = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y'
8184 let PreviousIssuedBallet = getIntegerValue(this, "Total_Issued_Ballet:")
8285 let TotalIssuedBallet = (PreviousIssuedBallet - pmt.amount)
8386 let PreviousBalletReserveValue = getIntegerValue(this, "Total_Ballet_Reserve_In_TN:")
8487 let PreviousBalletBackupPrice = getIntegerValue(this, "Ballet_Backup_Value_In_TN:")
8588 let calculateburnvalue = fraction(PreviousBalletBackupPrice, pmt.amount, 100000)
8689 let BalletReserveValue = (PreviousBalletReserveValue - calculateburnvalue)
8790 let BalletBackupPrice = fraction(100000, BalletReserveValue, TotalIssuedBallet)
8891 if ((pmt.assetId != BalletAssetID))
8992 then throw("Kindly Deposit Only 44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y (Ballet).")
9093 else if ((100000 > pmt.amount))
9194 then throw("Attach Amount must be greater than 0.001 Ballet.")
9295 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)]
9396 }
9497
9598
9699
97100 @Callable(i)
98101 func DoVoting (EnterAssetID) = {
99102 let pmt = if ((size(i.payments) == 1))
100103 then i.payments[0]
101104 else throw("Ballet Token is required as Attached payment")
102105 let calleraddress = toBase58String(i.caller.bytes)
103106 let BalletAssetID = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y'
104107 let NewVotingStatus = "Pass"
105108 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
106109 let checkprojectexpireheight = getIntegerValue(this, ("Voting_End_Height_" + EnterAssetID))
107110 let checkpairisavailableornot = getString(this, ("Pair_Under_Voting_" + EnterAssetID))
108111 let checkvotesrequired = getIntegerValue(this, ("Votes_Required_" + EnterAssetID))
109112 let checkvotesreceived = getIntegerValue(this, ("Votes_Received_" + EnterAssetID))
110113 let VotingStatus = getStringValue(this, ("Voting_Status_" + EnterAssetID))
111114 let currentvotes = match getInteger(this, ("Votes_Received_" + EnterAssetID)) {
112115 case a: Int =>
113116 a
114117 case _ =>
115118 0
116119 }
117120 let newvotescount = (currentvotes + pmt.amount)
118121 let individualvotes = match getInteger(this, ((("Votes_Received_" + calleraddress) + "_") + EnterAssetID)) {
119122 case b: Int =>
120123 b
121124 case _ =>
122125 0
123126 }
124127 let individualvotescount = (individualvotes + pmt.amount)
125128 let checkwhitelist = (checkvotesreceived >= checkvotesrequired)
126129 let info = valueOrErrorMessage(assetInfo(fromBase58String(EnterAssetID)), (("Asset " + EnterAssetID) + " doesn't exist"))
127130 let decimals = info.decimals
128131 if ((checkpairisavailableornot != EnterAssetID))
129132 then throw("Pair is not available in Voting List.")
130133 else if ((height > checkprojectexpireheight))
131134 then throw((("Voting timeline for " + EnterAssetID) + " is expired."))
132135 else if ((pmt.assetId != BalletAssetID))
133136 then throw("Kindly Attach Only 44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y (Ballet).")
134137 else if ((VotingStatus == NewVotingStatus))
135138 then throw((("Voting for " + EnterAssetID) + " pair is completed and it’s available in whitelist."))
136139 else if (checkwhitelist)
137140 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)]
138141 else [IntegerEntry(("Votes_Received_" + EnterAssetID), newvotescount), IntegerEntry(((("Votes_Received_" + calleraddress) + "_") + EnterAssetID), individualvotescount)]
139142 }
140143
141144
142145
143146 @Callable(i)
144147 func WithdrawVotedTokens (EnterAssetID) = {
145148 let pmt = i.payments[0]
146149 let calleraddress = toBase58String(i.caller.bytes)
147150 let BalletAssetID = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y'
148151 let checkprojectexpireheight = getIntegerValue(this, ("Voting_End_Height_" + EnterAssetID))
149152 let checkpairisavailableornot = getString(this, ("Pair_Under_Voting_" + EnterAssetID))
150153 let checkuservotingbalance = getIntegerValue(this, ((("Votes_Received_" + calleraddress) + "_") + EnterAssetID))
151154 let pendingblocksforprojectexpire = (checkprojectexpireheight - height)
152155 if ((checkpairisavailableornot != EnterAssetID))
153156 then throw("Pair is not available in Voting List.")
154157 else if ((checkprojectexpireheight > height))
155158 then throw((("Voting Already Running. You can withdraw your Ballet Token only after the expire of " + toString(pendingblocksforprojectexpire)) + " Blocks"))
156159 else if ((0 >= checkuservotingbalance))
157160 then throw("You don't have any dues of ballet balance in this Voting Pair.")
158161 else if (isDefined(pmt.assetId))
159162 then throw("Don't attach any asset. If you still want to support we accept only TN as payment.")
160163 else if ((pmt.amount != 10000000))
161164 then throw("Please attach 0.1 TN as a fee to release your token.")
162165 else [IntegerEntry(((("Votes_Received_" + calleraddress) + "_") + EnterAssetID), 0), ScriptTransfer(i.caller, checkuservotingbalance, BalletAssetID)]
163166 }
164167
165168
166169
167170 @Callable(i)
168171 func SwapAssetToUSDTPairEntry (EnterAssetID) = {
169172 let calleraddress = toBase58String(i.caller.bytes)
170173 let pmt = if ((size(i.payments) == 1))
171174 then i.payments[0]
172175 else throw("Whitelisted Swap Token is required as Attached payment[1].")
173176 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
174177 let checkpairisavailableornot = getString(this, ("Pair_Under_Voting_" + EnterAssetID))
175178 let VotingStatus = getStringValue(this, ("Voting_Status_" + EnterAssetID))
176179 let CheckPairPrice = getIntegerValue(this, ((("Price_Of_" + EnterAssetID) + "_") + toBase58String(USDTAssetID)))
177180 let CheckOldBalance = getIntegerValue(this, ((("Old_Balance_of_" + EnterAssetID) + "_") + toBase58String(USDTAssetID)))
178181 let CheckAssetDecimals = getIntegerValue(this, ("Decimals_of_" + EnterAssetID))
179182 let CurrentVotingStatus = "Fail"
180183 let SwapFee = 1
181184 let amountAssetDecimals = CheckAssetDecimals
182185 let priceAssetDecimals = 6
183186 let decimalsgap = ((6 - amountAssetDecimals) - 8)
184187 let quantityofpriceasset = (((pmt.amount * CheckPairPrice) * pow(10, 0, decimalsgap, 0, 0, UP)) / pow(10, 0, amountAssetDecimals, 0, 0, UP))
185188 let getUSDTBalance = assetBalance(this, base58'GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU')
186189 let newUSDTBalance = (getUSDTBalance - quantityofpriceasset)
187190 if ((checkpairisavailableornot != EnterAssetID))
188191 then throw("Pair is not available in Whitelisted Asset.")
189192 else if ((VotingStatus == CurrentVotingStatus))
190193 then throw((EnterAssetID + " is not A Whitelisted Token Yet."))
191194 else if ((pmt.assetId == USDTAssetID))
192195 then throw("You can't Attach USDT as an Attached Payment. Only Whitelisted Tokens are Accepted.")
193196 else if ((pmt.assetId != fromBase58String(EnterAssetID)))
194197 then throw(("Incorrect asset attached, please attach or send " + EnterAssetID))
195198 else if ((10000 > quantityofpriceasset))
196199 then throw((("Your Attached Amount is very low. Attach More " + EnterAssetID) + " Token to Claim the minimum Amount of 1 cent atleast."))
197200 else if ((CheckOldBalance == 0))
198201 then throw("Swap Pair Need to Add Liquidity first into Pool. Only After that Pair will be activated for Swapping.")
199202 else [IntegerEntry(((("Price_Of_" + EnterAssetID) + "_") + toBase58String(USDTAssetID)), CheckPairPrice), ScriptTransfer(i.caller, ((quantityofpriceasset * 99) / 100), base58'GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU'), ScriptTransfer(i.caller, ((quantityofpriceasset * SwapFee) / 100), base58'GyqTYDea3DWBaAyQs5S5uH2223ucELYFazJpZLCfMznU')]
200203 }
201204
202205
203206
204207 @Callable(i)
205208 func SwapUSDTToAssetPairEntry (EnterAssetID) = {
206209 let calleraddress = toBase58String(i.caller.bytes)
207210 let pmt = if ((size(i.payments) == 1))
208211 then i.payments[0]
209212 else throw("Whitelisted Swap Token is required as Attached payment[1].")
210213 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
211214 nil
212215 }
213216
214217
215218
216219 @Callable(i)
217220 func AddLiquidity (EnterAssetID) = {
218221 let calleraddress = toBase58String(i.caller.bytes)
219222 let pmt = if ((size(i.payments) == 1))
220223 then i.payments[0]
221224 else throw("Whitelisted Swap Token is required as Attached payment[1].")
222225 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
223226 nil
224227 }
225228
226229
227230
228231 @Callable(i)
229232 func RemovePairEntry (EnterAssetID) = {
230233 let adminrights = getStringValue(this, "Polarity_Admin_Rights")
231234 let USDTAssetID = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4'
232235 let checkprojectexpireheight = getIntegerValue(this, ("Voting_End_Height_" + EnterAssetID))
233236 let checkpairisavailableornot = getString(this, ("Pair_Under_Voting_" + EnterAssetID))
234237 let VotingStatus = getStringValue(this, ("Voting_Status_" + EnterAssetID))
235238 let NewVotingStatus = "Pass"
236239 let calleraddress = toBase58String(i.caller.bytes)
237240 let currentheight = height
238241 let pendingblocksforprojectexpire = (checkprojectexpireheight - height)
239242 if ((checkpairisavailableornot != EnterAssetID))
240243 then throw("Pair is not available in Voting List.")
241244 else if ((adminrights != calleraddress))
242245 then throw((("I know You are not An Admin. Only " + adminrights) + " has rights to remove the pair."))
243246 else if ((checkprojectexpireheight > height))
244247 then throw((("Voting Already Running. You can remove the pair after " + toString(pendingblocksforprojectexpire)) + " Blocks"))
245248 else if ((VotingStatus == NewVotingStatus))
246249 then throw((EnterAssetID + " is now Whitelisted. So you can't remove it."))
247250 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)))]
248251 }
249252
250253
251254 @Verifier(tx)
252255 func verify () = match tx {
253256 case _ =>
254257 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
255258 }
256259

github/deemru/w8io/169f3d6 
54.75 ms