tx · FwnPwB138LCiBcoDzXQyLdooWreJjjoXGzr8A1ooz7fy 3Mrnje6z2xa3xuXyU2Lk6ynKy8tsRnnt4Bv: -0.01400000 Waves 2021.08.20 10:42 [1666386] smart account 3Mrnje6z2xa3xuXyU2Lk6ynKy8tsRnnt4Bv > SELF 0.00000000 Waves
{ "type": 13, "id": "FwnPwB138LCiBcoDzXQyLdooWreJjjoXGzr8A1ooz7fy", "fee": 1400000, "feeAssetId": null, "timestamp": 1629445402006, "version": 2, "chainId": 84, "sender": "3Mrnje6z2xa3xuXyU2Lk6ynKy8tsRnnt4Bv", "senderPublicKey": "28sGn7FYnmxceAmnGYiDiKuMK1QyXiqX8zQXfKDnrc8t", "proofs": [ "4LHJnujJknhoFin2JxUgMTcwnsk2T1nTsENYsjYPRsTkmbwN8Kgdmf5sgTrvkrDPs8skVZhEN2ZaJfv1RzgmeuPM" ], "script": "base64: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lhgC7/FEdjB7WHX3k6igBAAAAA5QcmljZVBlckJhbGxldAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAJQkFMTEVUL1ROBAAAAA9OZXdCYWxsZXRUb1VzZXIJAABrAAAAAwAAAAAAAAGGoAgFAAAAA3BtdAAAAAZhbW91bnQFAAAADlByaWNlUGVyQmFsbGV0BAAAABRQcmV2aW91c0lzc3VlZEJhbGxldAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAUVG90YWxfSXNzdWVkX0JhbGxldDoEAAAAEVRvdGFsSXNzdWVkQmFsbGV0CQAAZAAAAAIFAAAAFFByZXZpb3VzSXNzdWVkQmFsbGV0BQAAAA9OZXdCYWxsZXRUb1VzZXIEAAAAGlByZXZpb3VzQmFsbGV0UmVzZXJ2ZVZhbHVlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABtUb3RhbF9CYWxsZXRfUmVzZXJ2ZV9Jbl9UTjoEAAAAEkJhbGxldFJlc2VydmVWYWx1ZQkAAGQAAAACBQAAABpQcmV2aW91c0JhbGxldFJlc2VydmVWYWx1ZQgFAAAAA3BtdAAAAAZhbW91bnQEAAAAGVByZXZpb3VzQmFsbGV0QmFja3VwUHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMCAAAAGkJhbGxldF9CYWNrdXBfVmFsdWVfSW5fVE46BAAAABFCYWxsZXRCYWNrdXBQcmljZQkAAGsAAAADAAAAAAAAAYagBQAAABJCYWxsZXRSZXNlcnZlVmFsdWUFAAAAEVRvdGFsSXNzdWVkQmFsbGV0BAAAAApGZWVBZGRyZXNzAQAAACBxPzntQa7CXqUpHrNREofekMqtlOVQyxdZBdjFyNZ4GwMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAArSW5jb3JyZWN0IGFzc2V0IGF0dGFjaGVkLCBwbGVhc2UgYXR0YWNoIFROLgMJAABmAAAAAgAAAAAAAExLQAgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAA0UGxlYXNlIEF0dGFjaCBtaW5pbXVtIDAuMDUgVE4gVG8gSXNzdWUgQmFsbGV0IEFzc2V0LgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAUVG90YWxfSXNzdWVkX0JhbGxldDoFAAAAEVRvdGFsSXNzdWVkQmFsbGV0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABtUb3RhbF9CYWxsZXRfUmVzZXJ2ZV9Jbl9UTjoFAAAAEkJhbGxldFJlc2VydmVWYWx1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaQmFsbGV0X0JhY2t1cF9WYWx1ZV9Jbl9UTjoFAAAAEUJhbGxldEJhY2t1cFByaWNlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UCAAAAKDxoMT5CYWxsZXQgSXNzdWVkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4JAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAAA1CYWxsZXRBc3NldElEBQAAAA9OZXdCYWxsZXRUb1VzZXIGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgkAAGkAAAACCQAAaAAAAAIFAAAAD05ld0JhbGxldFRvVXNlcgAAAAAAAAAAYwAAAAAAAAAAZAUAAAANQmFsbGV0QXNzZXRJRAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAApGZWVBZGRyZXNzCQAAaQAAAAIJAABoAAAAAgUAAAAPTmV3QmFsbGV0VG9Vc2VyAAAAAAAAAAABAAAAAAAAAABkBQAAAA1CYWxsZXRBc3NldElEBQAAAANuaWwAAAABaQEAAAAJTGlxdWlkYXRlAAAAAAQAAAAKY3VycmVudEtleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAANQmFsbGV0QXNzZXRJRAEAAAAgLW9bAbmd5UpvGoRop5PuExeWGALv8UR2MHtYdfeTqKAEAAAAFFByZXZpb3VzSXNzdWVkQmFsbGV0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABRUb3RhbF9Jc3N1ZWRfQmFsbGV0OgQAAAARVG90YWxJc3N1ZWRCYWxsZXQJAABlAAAAAgUAAAAUUHJldmlvdXNJc3N1ZWRCYWxsZXQIBQAAAANwbXQAAAAGYW1vdW50BAAAABpQcmV2aW91c0JhbGxldFJlc2VydmVWYWx1ZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAbVG90YWxfQmFsbGV0X1Jlc2VydmVfSW5fVE46BAAAABlQcmV2aW91c0JhbGxldEJhY2t1cFByaWNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAABpCYWxsZXRfQmFja3VwX1ZhbHVlX0luX1ROOgQAAAASY2FsY3VsYXRlYnVybnZhbHVlCQAAawAAAAMFAAAAGVByZXZpb3VzQmFsbGV0QmFja3VwUHJpY2UIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAAYagBAAAABJCYWxsZXRSZXNlcnZlVmFsdWUJAABlAAAAAgUAAAAaUHJldmlvdXNCYWxsZXRSZXNlcnZlVmFsdWUFAAAAEmNhbGN1bGF0ZWJ1cm52YWx1ZQQAAAARQmFsbGV0QmFja3VwUHJpY2UJAABrAAAAAwAAAAAAAAGGoAUAAAASQmFsbGV0UmVzZXJ2ZVZhbHVlBQAAABFUb3RhbElzc3VlZEJhbGxldAMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAANQmFsbGV0QXNzZXRJRAkAAAIAAAABAgAAAEpLaW5kbHkgRGVwb3NpdCBPbmx5IDQ0TXE4S3FVaE05NHQ5M01pQnEzUzIyaWl1R2N6TXhwS21zZTVkQnkydzV5IChCYWxsZXQpLgMJAABmAAAAAgAAAAAAAAGGoAgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQIAAAAwQXR0YWNoIEFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLjAwMSBCYWxsZXQuCQAETAAAAAIJAQAAAARCdXJuAAAAAgUAAAANQmFsbGV0QXNzZXRJRAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX0lzc3VlZF9CYWxsZXQ6BQAAABFUb3RhbElzc3VlZEJhbGxldAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAbVG90YWxfQmFsbGV0X1Jlc2VydmVfSW5fVE46BQAAABJCYWxsZXRSZXNlcnZlVmFsdWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGkJhbGxldF9CYWNrdXBfVmFsdWVfSW5fVE46BQAAABFCYWxsZXRCYWNrdXBQcmljZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAEmNhbGN1bGF0ZWJ1cm52YWx1ZQUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAACERvVm90aW5nAAAAAQAAAAxFbnRlckFzc2V0SUQEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAACxCYWxsZXQgVG9rZW4gaXMgcmVxdWlyZWQgYXMgQXR0YWNoZWQgcGF5bWVudAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1CYWxsZXRBc3NldElEAQAAACAtb1sBuZ3lSm8ahGink+4TF5YYAu/xRHYwe1h195OooAQAAAAPTmV3Vm90aW5nU3RhdHVzAgAAAARQYXNzBAAAABhjaGVja3Byb2plY3RleHBpcmVoZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAASVm90aW5nX0VuZF9IZWlnaHRfBQAAAAxFbnRlckFzc2V0SUQEAAAAGWNoZWNrcGFpcmlzYXZhaWxhYmxlb3Jub3QJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABJQYWlyX1VuZGVyX1ZvdGluZ18FAAAADEVudGVyQXNzZXRJRAQAAAASY2hlY2t2b3Rlc3JlcXVpcmVkCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAD1ZvdGVzX1JlcXVpcmVkXwUAAAAMRW50ZXJBc3NldElEBAAAABJjaGVja3ZvdGVzcmVjZWl2ZWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAPVm90ZXNfUmVjZWl2ZWRfBQAAAAxFbnRlckFzc2V0SUQEAAAADFZvdGluZ1N0YXR1cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAA5Wb3RpbmdfU3RhdHVzXwUAAAAMRW50ZXJBc3NldElEBAAAAAxjdXJyZW50dm90ZXMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADEVudGVyQXNzZXRJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAA1uZXd2b3Rlc2NvdW50CQAAZAAAAAIFAAAADGN1cnJlbnR2b3RlcwgFAAAAA3BtdAAAAAZhbW91bnQEAAAAD2luZGl2aWR1YWx2b3RlcwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADWNhbGxlcmFkZHJlc3MCAAAAAV8FAAAADEVudGVyQXNzZXRJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAABAAAABRpbmRpdmlkdWFsdm90ZXNjb3VudAkAAGQAAAACBQAAAA9pbmRpdmlkdWFsdm90ZXMIBQAAAANwbXQAAAAGYW1vdW50BAAAAA5jaGVja3doaXRlbGlzdAkAAGcAAAACBQAAABJjaGVja3ZvdGVzcmVjZWl2ZWQFAAAAEmNoZWNrdm90ZXNyZXF1aXJlZAQAAAAEaW5mbwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEJAAJZAAAAAQUAAAAMRW50ZXJBc3NldElECQABLAAAAAIJAAEsAAAAAgIAAAAGQXNzZXQgBQAAAAxFbnRlckFzc2V0SUQCAAAADiBkb2Vzbid0IGV4aXN0BAAAAAhkZWNpbWFscwgFAAAABGluZm8AAAAIZGVjaW1hbHMDCQEAAAACIT0AAAACBQAAABljaGVja3BhaXJpc2F2YWlsYWJsZW9ybm90BQAAAAxFbnRlckFzc2V0SUQJAAACAAAAAQIAAAAlUGFpciBpcyBub3QgYXZhaWxhYmxlIGluIFZvdGluZyBMaXN0LgMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAABhjaGVja3Byb2plY3RleHBpcmVoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAFFZvdGluZyB0aW1lbGluZSBmb3IgBQAAAAxFbnRlckFzc2V0SUQCAAAADCBpcyBleHBpcmVkLgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAANQmFsbGV0QXNzZXRJRAkAAAIAAAABAgAAAElLaW5kbHkgQXR0YWNoIE9ubHkgNDRNcThLcVVoTTk0dDkzTWlCcTNTMjJpaXVHY3pNeHBLbXNlNWRCeTJ3NXkgKEJhbGxldCkuAwkAAAAAAAACBQAAAAxWb3RpbmdTdGF0dXMFAAAAD05ld1ZvdGluZ1N0YXR1cwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAALVm90aW5nIGZvciAFAAAADEVudGVyQXNzZXRJRAIAAAA1IHBhaXIgaXMgY29tcGxldGVkIGFuZCBpdOKAmXMgYXZhaWxhYmxlIGluIHdoaXRlbGlzdC4DBQAAAA5jaGVja3doaXRlbGlzdAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAADlZvdGluZ19TdGF0dXNfBQAAAAxFbnRlckFzc2V0SUQFAAAAD05ld1ZvdGluZ1N0YXR1cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAxEZWNpbWFsc19vZl8FAAAADEVudGVyQXNzZXRJRAUAAAAIZGVjaW1hbHMFAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADEVudGVyQXNzZXRJRAUAAAANbmV3dm90ZXNjb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPVm90ZXNfUmVjZWl2ZWRfBQAAAA1jYWxsZXJhZGRyZXNzAgAAAAFfBQAAAAxFbnRlckFzc2V0SUQFAAAAFGluZGl2aWR1YWx2b3Rlc2NvdW50BQAAAANuaWwAAAABaQEAAAATV2l0aGRyYXdWb3RlZFRva2VucwAAAAEAAAAMRW50ZXJBc3NldElEBAAAAANwbXQJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAANQmFsbGV0QXNzZXRJRAEAAAAgLW9bAbmd5UpvGoRop5PuExeWGALv8UR2MHtYdfeTqKAEAAAAGGNoZWNrcHJvamVjdGV4cGlyZWhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABJWb3RpbmdfRW5kX0hlaWdodF8FAAAADEVudGVyQXNzZXRJRAQAAAAZY2hlY2twYWlyaXNhdmFpbGFibGVvcm5vdAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAElBhaXJfVW5kZXJfVm90aW5nXwUAAAAMRW50ZXJBc3NldElEBAAAABZjaGVja3VzZXJ2b3RpbmdiYWxhbmNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9Wb3Rlc19SZWNlaXZlZF8FAAAADWNhbGxlcmFkZHJlc3MCAAAAAV8FAAAADEVudGVyQXNzZXRJRAQAAAAdcGVuZGluZ2Jsb2Nrc2ZvcnByb2plY3RleHBpcmUJAABlAAAAAgUAAAAYY2hlY2twcm9qZWN0ZXhwaXJlaGVpZ2h0BQAAAAZoZWlnaHQDCQEAAAACIT0AAAACBQAAABljaGVja3BhaXJpc2F2YWlsYWJsZW9ybm90BQAAAAxFbnRlckFzc2V0SUQJAAACAAAAAQIAAAAlUGFpciBpcyBub3QgYXZhaWxhYmxlIGluIFZvdGluZyBMaXN0LgMJAABmAAAAAgUAAAAYY2hlY2twcm9qZWN0ZXhwaXJlaGVpZ2h0BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAVFZvdGluZyBBbHJlYWR5IFJ1bm5pbmcuIFlvdSBjYW4gd2l0aGRyYXcgeW91ciBCYWxsZXQgVG9rZW4gb25seSBhZnRlciB0aGUgZXhwaXJlIG9mIAkAAaQAAAABBQAAAB1wZW5kaW5nYmxvY2tzZm9ycHJvamVjdGV4cGlyZQIAAAAHIEJsb2NrcwMJAABnAAAAAgAAAAAAAAAAAAUAAAAWY2hlY2t1c2Vydm90aW5nYmFsYW5jZQkAAAIAAAABAgAAAD5Zb3UgZG9uJ3QgaGF2ZSBhbnkgZHVlcyBvZiBiYWxsZXQgYmFsYW5jZSBpbiB0aGlzIFZvdGluZyBQYWlyLgMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAABSRG9uJ3QgYXR0YWNoIGFueSBhc3NldC4gSWYgeW91IHN0aWxsIHdhbnQgdG8gc3VwcG9ydCB3ZSBhY2NlcHQgb25seSBUTiBhcyBwYXltZW50LgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAmJaACQAAAgAAAAECAAAANFBsZWFzZSBhdHRhY2ggMC4xIFROIGFzIGEgZmVlIHRvIHJlbGVhc2UgeW91ciB0b2tlbi4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD1ZvdGVzX1JlY2VpdmVkXwUAAAANY2FsbGVyYWRkcmVzcwIAAAABXwUAAAAMRW50ZXJBc3NldElEAAAAAAAAAAAACQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAWY2hlY2t1c2Vydm90aW5nYmFsYW5jZQUAAAANQmFsbGV0QXNzZXRJRAUAAAADbmlsAAAAAWkBAAAAD1JlbW92ZVBhaXJFbnRyeQAAAAEAAAAMRW50ZXJBc3NldElEBAAAAAthZG1pbnJpZ2h0cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwIAAAAVUG9sYXJpdHlfQWRtaW5fUmlnaHRzBAAAAAtVU0RUQXNzZXRJRAEAAAAgX1dpGMgKJ4Em8VuX7cTsTfnCu1nLEhiLhGCgX6b3/PMEAAAAGGNoZWNrcHJvamVjdGV4cGlyZWhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABJWb3RpbmdfRW5kX0hlaWdodF8FAAAADEVudGVyQXNzZXRJRAQAAAAZY2hlY2twYWlyaXNhdmFpbGFibGVvcm5vdAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAElBhaXJfVW5kZXJfVm90aW5nXwUAAAAMRW50ZXJBc3NldElEBAAAAAxWb3RpbmdTdGF0dXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAOVm90aW5nX1N0YXR1c18FAAAADEVudGVyQXNzZXRJRAQAAAAPTmV3Vm90aW5nU3RhdHVzAgAAAARQYXNzBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWN1cnJlbnRoZWlnaHQFAAAABmhlaWdodAQAAAAdcGVuZGluZ2Jsb2Nrc2ZvcnByb2plY3RleHBpcmUJAABlAAAAAgUAAAAYY2hlY2twcm9qZWN0ZXhwaXJlaGVpZ2h0BQAAAAZoZWlnaHQDCQEAAAACIT0AAAACBQAAABljaGVja3BhaXJpc2F2YWlsYWJsZW9ybm90BQAAAAxFbnRlckFzc2V0SUQJAAACAAAAAQIAAAAlUGFpciBpcyBub3QgYXZhaWxhYmxlIGluIFZvdGluZyBMaXN0LgMJAQAAAAIhPQAAAAIFAAAAC2FkbWlucmlnaHRzBQAAAA1jYWxsZXJhZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACJJIGtub3cgWW91IGFyZSBub3QgQW4gQWRtaW4uIE9ubHkgBQAAAAthZG1pbnJpZ2h0cwIAAAAfIGhhcyByaWdodHMgdG8gcmVtb3ZlIHRoZSBwYWlyLgMJAABmAAAAAgUAAAAYY2hlY2twcm9qZWN0ZXhwaXJlaGVpZ2h0BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAANlZvdGluZyBBbHJlYWR5IFJ1bm5pbmcuIFlvdSBjYW4gcmVtb3ZlIHRoZSBwYWlyIGFmdGVyIAkAAaQAAAABBQAAAB1wZW5kaW5nYmxvY2tzZm9ycHJvamVjdGV4cGlyZQIAAAAHIEJsb2NrcwMJAAAAAAAAAgUAAAAMVm90aW5nU3RhdHVzBQAAAA9OZXdWb3RpbmdTdGF0dXMJAAACAAAAAQkAASwAAAACBQAAAAxFbnRlckFzc2V0SUQCAAAALCBpcyBub3cgV2hpdGVsaXN0ZWQuIFNvIHlvdSBjYW4ndCByZW1vdmUgaXQuCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAASUGFpcl9VbmRlcl9Wb3RpbmdfBQAAAAxFbnRlckFzc2V0SUQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACAgAAABRWb3RpbmdfU3RhcnRfSGVpZ2h0XwUAAAAMRW50ZXJBc3NldElECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAASVm90aW5nX0VuZF9IZWlnaHRfBQAAAAxFbnRlckFzc2V0SUQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACAgAAAA5Wb3RpbmdfUGVyaW9kXwUAAAAMRW50ZXJBc3NldElECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAAPVm90ZXNfUmVxdWlyZWRfBQAAAAxFbnRlckFzc2V0SUQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACAgAAABNWb3RpbmdfTGlzdGluZ19GZWVfBQAAAAxFbnRlckFzc2V0SUQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACAgAAAA5Wb3RpbmdfU3RhdHVzXwUAAAAMRW50ZXJBc3NldElECQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAAPVm90ZXNfUmVjZWl2ZWRfBQAAAAxFbnRlckFzc2V0SUQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAJUHJpY2VfT2ZfBQAAAAxFbnRlckFzc2V0SUQCAAAAAV8JAAJYAAAAAQUAAAALVVNEVEFzc2V0SUQFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4CQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleSJPI+0=", "height": 1666386, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7xR5bA1iUyKumhV4EKY6me5VJ3JGAJF85fSuuGfq1qJX Next: DtrBggEtLXzNGhU4T7fabBGNjdcJn5VhKm5j5dzjPDXv Diff:
Old | New | Differences | |
---|---|---|---|
4 | 4 | ||
5 | 5 | ||
6 | 6 | @Callable(a) | |
7 | - | func RegisterPairForVoting (b,c) = { | |
8 | - | let | |
9 | - | let | |
10 | - | let | |
11 | - | let | |
12 | - | let | |
13 | - | let | |
14 | - | let | |
15 | - | let | |
16 | - | let | |
17 | - | let | |
18 | - | let | |
19 | - | let | |
20 | - | let | |
21 | - | let | |
22 | - | let | |
23 | - | let | |
7 | + | func RegisterPairForVoting (b,c,d) = { | |
8 | + | let e = value(a.payments[0]) | |
9 | + | let f = value(a.payments[1]) | |
10 | + | let g = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
11 | + | let h = 90 | |
12 | + | let i = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y' | |
13 | + | let j = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4' | |
14 | + | let k = toBase58String(a.caller.bytes) | |
15 | + | let l = !(isDefined(f.assetId)) | |
16 | + | let m = 1440 | |
17 | + | let n = (m * c) | |
18 | + | let o = (n - 43199) | |
19 | + | let p = ((100000 + ((11574 * o) / 10000)) * 100000000) | |
20 | + | let q = (height + n) | |
21 | + | let r = getString(this, ("Pair_Under_Voting_" + b)) | |
22 | + | let s = "Fail" | |
23 | + | let t = fromBase58String(b) | |
24 | 24 | if ((43 > size(b))) | |
25 | 25 | then throw("Wrong AssetID1 is Entered for Voting. Please Enter a Valid AssetID1. Probably you entered an ASSETID1 less than 43 Chars.") | |
26 | 26 | else if ((29 >= c)) | |
27 | 27 | then throw("Enter no. of days in between 30 to 90.") | |
28 | - | else if ((c > | |
28 | + | else if ((c > h)) | |
29 | 29 | then throw("You Entered days greater than 90 please Enter no. of days in between 1 to 90.") | |
30 | - | else if (( | |
30 | + | else if ((r == b)) | |
31 | 31 | then throw("Pair Already Exist in Voting List.") | |
32 | - | else if ((size(a.payments) != | |
32 | + | else if ((size(a.payments) != 2)) | |
33 | 33 | then throw("Two attached assets expected as payment. Kindly Attach payment1 = Ballet Token and payment2 = Token you want to add to List for Voting.") | |
34 | - | else if (( | |
34 | + | else if ((e.assetId != i)) | |
35 | 35 | then throw("Incorrect asset attached for Voting in payment[1], please attach 1000 Ballet Token only.") | |
36 | - | else if ((40000000 > | |
37 | - | then throw((((("You attached only " + toString(fraction( | |
38 | - | else if (( | |
36 | + | else if ((40000000 > e.amount)) | |
37 | + | then throw((((("You attached only " + toString(fraction(e.amount, 1, 100000000))) + ".") + toString(fraction(e.amount, 1, 10000000))) + " Ballet for Voting in payment[1], please attach 1000 Ballet Token only.")) | |
38 | + | else if ((f.assetId != t)) | |
39 | 39 | then throw("Asset String Attached in ASSETID1 is not matching with Payment2 AssetID.") | |
40 | - | else if (( | |
40 | + | else if ((l == true)) | |
41 | 41 | then throw("You Attached TN Asset ID for Voting, please attach the Token You want to list in payment[2].") | |
42 | - | else if (( | |
42 | + | else if ((f.assetId == i)) | |
43 | 43 | 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_" + b), b), StringEntry(("Voting_Status_" + b), | |
44 | + | else [StringEntry(("Pair_Under_Voting_" + b), b), StringEntry(("Voting_Status_" + b), s), IntegerEntry(("Voting_Start_Height_" + b), height), IntegerEntry(("Voting_End_Height_" + b), q), IntegerEntry(("Voting_Period_" + b), n), IntegerEntry(("Voting_Listing_Fee_" + b), e.amount), IntegerEntry(("Votes_Required_" + b), p), IntegerEntry(("Votes_Received_" + b), 0), IntegerEntry(((("Price_Of_" + b) + "_") + toBase58String(j)), d), ScriptTransfer(addressFromPublicKey(g), e.amount, i)] | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
48 | 48 | ||
49 | 49 | @Callable(a) | |
50 | 50 | func IssueBallet () = { | |
51 | - | let | |
52 | - | let | |
53 | - | let | |
54 | - | let | |
55 | - | let | |
56 | - | let | |
57 | - | let | |
58 | - | let | |
59 | - | let | |
60 | - | let | |
61 | - | let | |
62 | - | let | |
63 | - | if (isDefined( | |
51 | + | let u = value(a.payments[0]) | |
52 | + | let k = toBase58String(a.caller.bytes) | |
53 | + | let i = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y' | |
54 | + | let v = getIntegerValue(this, "BALLET/TN") | |
55 | + | let w = fraction(100000, u.amount, v) | |
56 | + | let x = getIntegerValue(this, "Total_Issued_Ballet:") | |
57 | + | let y = (x + w) | |
58 | + | let z = getIntegerValue(this, "Total_Ballet_Reserve_In_TN:") | |
59 | + | let A = (z + u.amount) | |
60 | + | let B = getIntegerValue(this, "Ballet_Backup_Value_In_TN:") | |
61 | + | let C = fraction(100000, A, y) | |
62 | + | let g = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
63 | + | if (isDefined(u.assetId)) | |
64 | 64 | then throw("Incorrect asset attached, please attach TN.") | |
65 | - | else if ((5000000 > | |
65 | + | else if ((5000000 > u.amount)) | |
66 | 66 | then throw("Please Attach minimum 0.05 TN To Issue Ballet Asset.") | |
67 | - | else [IntegerEntry("Total_Issued_Ballet:", | |
67 | + | else [IntegerEntry("Total_Issued_Ballet:", y), IntegerEntry("Total_Ballet_Reserve_In_TN:", A), IntegerEntry("Ballet_Backup_Value_In_TN:", C), StringEntry("message", "<h1>Ballet Issued Successfully!</h1><br>"), Reissue(i, w, true), ScriptTransfer(a.caller, ((w * 99) / 100), i), ScriptTransfer(addressFromPublicKey(g), ((w * 1) / 100), i)] | |
68 | 68 | } | |
69 | 69 | ||
70 | 70 | ||
71 | 71 | ||
72 | 72 | @Callable(a) | |
73 | 73 | func Liquidate () = { | |
74 | - | let | |
75 | - | let | |
76 | - | let | |
77 | - | let | |
78 | - | let | |
79 | - | let | |
80 | - | let | |
81 | - | let | |
82 | - | let | |
83 | - | let | |
84 | - | if (( | |
74 | + | let k = toBase58String(a.callerPublicKey) | |
75 | + | let u = value(a.payments[0]) | |
76 | + | let i = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y' | |
77 | + | let x = getIntegerValue(this, "Total_Issued_Ballet:") | |
78 | + | let y = (x - u.amount) | |
79 | + | let z = getIntegerValue(this, "Total_Ballet_Reserve_In_TN:") | |
80 | + | let B = getIntegerValue(this, "Ballet_Backup_Value_In_TN:") | |
81 | + | let D = fraction(B, u.amount, 100000) | |
82 | + | let A = (z - D) | |
83 | + | let C = fraction(100000, A, y) | |
84 | + | if ((u.assetId != i)) | |
85 | 85 | then throw("Kindly Deposit Only 44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y (Ballet).") | |
86 | - | else if ((100000 > | |
86 | + | else if ((100000 > u.amount)) | |
87 | 87 | then throw("Attach Amount must be greater than 0.001 Ballet.") | |
88 | - | else [Burn( | |
88 | + | else [Burn(i, u.amount), IntegerEntry("Total_Issued_Ballet:", y), IntegerEntry("Total_Ballet_Reserve_In_TN:", A), IntegerEntry("Ballet_Backup_Value_In_TN:", C), ScriptTransfer(a.caller, D, unit)] | |
89 | 89 | } | |
90 | 90 | ||
91 | 91 | ||
92 | 92 | ||
93 | 93 | @Callable(a) | |
94 | - | func DoVoting ( | |
95 | - | let | |
94 | + | func DoVoting (E) = { | |
95 | + | let u = if ((size(a.payments) == 1)) | |
96 | 96 | then a.payments[0] | |
97 | 97 | else throw("Ballet Token is required as Attached payment") | |
98 | - | let | |
99 | - | let | |
100 | - | let | |
101 | - | let | |
102 | - | let | |
103 | - | let | |
104 | - | let | |
105 | - | let | |
106 | - | let | |
107 | - | let | |
108 | - | if ($isInstanceOf( | |
98 | + | let F = toBase58String(a.caller.bytes) | |
99 | + | let i = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y' | |
100 | + | let G = "Pass" | |
101 | + | let H = getIntegerValue(this, ("Voting_End_Height_" + E)) | |
102 | + | let I = getString(this, ("Pair_Under_Voting_" + E)) | |
103 | + | let J = getIntegerValue(this, ("Votes_Required_" + E)) | |
104 | + | let K = getIntegerValue(this, ("Votes_Received_" + E)) | |
105 | + | let L = getStringValue(this, ("Voting_Status_" + E)) | |
106 | + | let M = { | |
107 | + | let N = getInteger(this, ("Votes_Received_" + E)) | |
108 | + | if ($isInstanceOf(N, "Int")) | |
109 | 109 | then { | |
110 | - | let | |
111 | - | | |
110 | + | let O = N | |
111 | + | O | |
112 | 112 | } | |
113 | 113 | else 0 | |
114 | 114 | } | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | if ($isInstanceOf( | |
115 | + | let P = (M + u.amount) | |
116 | + | let Q = { | |
117 | + | let N = getInteger(this, ((("Votes_Received_" + F) + "_") + E)) | |
118 | + | if ($isInstanceOf(N, "Int")) | |
119 | 119 | then { | |
120 | - | let | |
121 | - | | |
120 | + | let R = N | |
121 | + | R | |
122 | 122 | } | |
123 | 123 | else 0 | |
124 | 124 | } | |
125 | - | let | |
126 | - | let | |
127 | - | let | |
128 | - | let | |
129 | - | if (( | |
125 | + | let S = (Q + u.amount) | |
126 | + | let T = (K >= J) | |
127 | + | let U = valueOrErrorMessage(assetInfo(fromBase58String(E)), (("Asset " + E) + " doesn't exist")) | |
128 | + | let V = U.decimals | |
129 | + | if ((I != E)) | |
130 | 130 | then throw("Pair is not available in Voting List.") | |
131 | - | else if ((height > | |
132 | - | then throw((("Voting timeline for " + | |
133 | - | else if (( | |
131 | + | else if ((height > H)) | |
132 | + | then throw((("Voting timeline for " + E) + " is expired.")) | |
133 | + | else if ((u.assetId != i)) | |
134 | 134 | then throw("Kindly Attach Only 44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y (Ballet).") | |
135 | - | else if (( | |
136 | - | then throw((("Voting for " + | |
137 | - | else if ( | |
138 | - | then [StringEntry(("Voting_Status_" + | |
139 | - | else [IntegerEntry(("Votes_Received_" + | |
135 | + | else if ((L == G)) | |
136 | + | then throw((("Voting for " + E) + " pair is completed and it’s available in whitelist.")) | |
137 | + | else if (T) | |
138 | + | then [StringEntry(("Voting_Status_" + E), G), IntegerEntry(("Decimals_of_" + E), V)] | |
139 | + | else [IntegerEntry(("Votes_Received_" + E), P), IntegerEntry(((("Votes_Received_" + F) + "_") + E), S)] | |
140 | 140 | } | |
141 | 141 | ||
142 | 142 | ||
143 | 143 | ||
144 | 144 | @Callable(a) | |
145 | - | func WithdrawVotedTokens ( | |
146 | - | let | |
147 | - | let | |
148 | - | let | |
149 | - | let | |
150 | - | let | |
151 | - | let | |
152 | - | let | |
153 | - | if (( | |
145 | + | func WithdrawVotedTokens (E) = { | |
146 | + | let u = a.payments[0] | |
147 | + | let F = toBase58String(a.caller.bytes) | |
148 | + | let i = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y' | |
149 | + | let H = getIntegerValue(this, ("Voting_End_Height_" + E)) | |
150 | + | let I = getString(this, ("Pair_Under_Voting_" + E)) | |
151 | + | let W = getIntegerValue(this, ((("Votes_Received_" + F) + "_") + E)) | |
152 | + | let X = (H - height) | |
153 | + | if ((I != E)) | |
154 | 154 | then throw("Pair is not available in Voting List.") | |
155 | - | else if (( | |
156 | - | then throw((("Voting Already Running. You can withdraw your Ballet Token only after the expire of " + toString( | |
157 | - | else if ((0 >= | |
155 | + | else if ((H > height)) | |
156 | + | then throw((("Voting Already Running. You can withdraw your Ballet Token only after the expire of " + toString(X)) + " Blocks")) | |
157 | + | else if ((0 >= W)) | |
158 | 158 | then throw("You don't have any dues of ballet balance in this Voting Pair.") | |
159 | - | else if (isDefined( | |
159 | + | else if (isDefined(u.assetId)) | |
160 | 160 | then throw("Don't attach any asset. If you still want to support we accept only TN as payment.") | |
161 | - | else if (( | |
161 | + | else if ((u.amount != 10000000)) | |
162 | 162 | then throw("Please attach 0.1 TN as a fee to release your token.") | |
163 | - | else [IntegerEntry(((("Votes_Received_" + | |
163 | + | else [IntegerEntry(((("Votes_Received_" + F) + "_") + E), 0), ScriptTransfer(a.caller, W, i)] | |
164 | 164 | } | |
165 | 165 | ||
166 | 166 | ||
167 | 167 | ||
168 | 168 | @Callable(a) | |
169 | - | func RemovePairEntry (D) = { | |
170 | - | let X = getStringValue(this, "Polarity_Admin_Rights") | |
171 | - | let G = getIntegerValue(this, ("Voting_End_Height_" + D)) | |
172 | - | let H = getString(this, ("Pair_Under_Voting_" + D)) | |
173 | - | let K = getStringValue(this, ("Voting_Status_" + D)) | |
174 | - | let F = "Pass" | |
175 | - | let E = toBase58String(a.caller.bytes) | |
176 | - | let Y = height | |
177 | - | let W = (G - height) | |
178 | - | if ((H != D)) | |
169 | + | func RemovePairEntry (E) = { | |
170 | + | let Y = getStringValue(this, "Polarity_Admin_Rights") | |
171 | + | let j = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4' | |
172 | + | let H = getIntegerValue(this, ("Voting_End_Height_" + E)) | |
173 | + | let I = getString(this, ("Pair_Under_Voting_" + E)) | |
174 | + | let L = getStringValue(this, ("Voting_Status_" + E)) | |
175 | + | let G = "Pass" | |
176 | + | let F = toBase58String(a.caller.bytes) | |
177 | + | let Z = height | |
178 | + | let X = (H - height) | |
179 | + | if ((I != E)) | |
179 | 180 | then throw("Pair is not available in Voting List.") | |
180 | - | else if (( | |
181 | - | then throw((("I know You are not An Admin. Only " + | |
182 | - | else if (( | |
183 | - | then throw((("Voting Already Running. You can remove the pair after " + toString( | |
184 | - | else if (( | |
185 | - | then throw(( | |
186 | - | else [DeleteEntry(("Pair_Under_Voting_" + | |
181 | + | else if ((Y != F)) | |
182 | + | then throw((("I know You are not An Admin. Only " + Y) + " has rights to remove the pair.")) | |
183 | + | else if ((H > height)) | |
184 | + | then throw((("Voting Already Running. You can remove the pair after " + toString(X)) + " Blocks")) | |
185 | + | else if ((L == G)) | |
186 | + | then throw((E + " is now Whitelisted. So you can't remove it.")) | |
187 | + | else [DeleteEntry(("Pair_Under_Voting_" + E)), DeleteEntry(("Voting_Start_Height_" + E)), DeleteEntry(("Voting_End_Height_" + E)), DeleteEntry(("Voting_Period_" + E)), DeleteEntry(("Votes_Required_" + E)), DeleteEntry(("Voting_Listing_Fee_" + E)), DeleteEntry(("Voting_Status_" + E)), DeleteEntry(("Votes_Received_" + E)), DeleteEntry(((("Price_Of_" + E) + "_") + toBase58String(j)))] | |
187 | 188 | } | |
188 | 189 | ||
189 | 190 | ||
190 | - | @Verifier( | |
191 | - | func | |
192 | - | let | |
193 | - | sigVerify( | |
191 | + | @Verifier(aa) | |
192 | + | func ab () = { | |
193 | + | let N = aa | |
194 | + | sigVerify(aa.bodyBytes, aa.proofs[0], aa.senderPublicKey) | |
194 | 195 | } | |
195 | 196 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | ||
5 | 5 | ||
6 | 6 | @Callable(a) | |
7 | - | func RegisterPairForVoting (b,c) = { | |
8 | - | let | |
9 | - | let | |
10 | - | let | |
11 | - | let | |
12 | - | let | |
13 | - | let | |
14 | - | let | |
15 | - | let | |
16 | - | let | |
17 | - | let | |
18 | - | let | |
19 | - | let | |
20 | - | let | |
21 | - | let | |
22 | - | let | |
23 | - | let | |
7 | + | func RegisterPairForVoting (b,c,d) = { | |
8 | + | let e = value(a.payments[0]) | |
9 | + | let f = value(a.payments[1]) | |
10 | + | let g = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
11 | + | let h = 90 | |
12 | + | let i = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y' | |
13 | + | let j = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4' | |
14 | + | let k = toBase58String(a.caller.bytes) | |
15 | + | let l = !(isDefined(f.assetId)) | |
16 | + | let m = 1440 | |
17 | + | let n = (m * c) | |
18 | + | let o = (n - 43199) | |
19 | + | let p = ((100000 + ((11574 * o) / 10000)) * 100000000) | |
20 | + | let q = (height + n) | |
21 | + | let r = getString(this, ("Pair_Under_Voting_" + b)) | |
22 | + | let s = "Fail" | |
23 | + | let t = fromBase58String(b) | |
24 | 24 | if ((43 > size(b))) | |
25 | 25 | then throw("Wrong AssetID1 is Entered for Voting. Please Enter a Valid AssetID1. Probably you entered an ASSETID1 less than 43 Chars.") | |
26 | 26 | else if ((29 >= c)) | |
27 | 27 | then throw("Enter no. of days in between 30 to 90.") | |
28 | - | else if ((c > | |
28 | + | else if ((c > h)) | |
29 | 29 | then throw("You Entered days greater than 90 please Enter no. of days in between 1 to 90.") | |
30 | - | else if (( | |
30 | + | else if ((r == b)) | |
31 | 31 | then throw("Pair Already Exist in Voting List.") | |
32 | - | else if ((size(a.payments) != | |
32 | + | else if ((size(a.payments) != 2)) | |
33 | 33 | then throw("Two attached assets expected as payment. Kindly Attach payment1 = Ballet Token and payment2 = Token you want to add to List for Voting.") | |
34 | - | else if (( | |
34 | + | else if ((e.assetId != i)) | |
35 | 35 | then throw("Incorrect asset attached for Voting in payment[1], please attach 1000 Ballet Token only.") | |
36 | - | else if ((40000000 > | |
37 | - | then throw((((("You attached only " + toString(fraction( | |
38 | - | else if (( | |
36 | + | else if ((40000000 > e.amount)) | |
37 | + | then throw((((("You attached only " + toString(fraction(e.amount, 1, 100000000))) + ".") + toString(fraction(e.amount, 1, 10000000))) + " Ballet for Voting in payment[1], please attach 1000 Ballet Token only.")) | |
38 | + | else if ((f.assetId != t)) | |
39 | 39 | then throw("Asset String Attached in ASSETID1 is not matching with Payment2 AssetID.") | |
40 | - | else if (( | |
40 | + | else if ((l == true)) | |
41 | 41 | then throw("You Attached TN Asset ID for Voting, please attach the Token You want to list in payment[2].") | |
42 | - | else if (( | |
42 | + | else if ((f.assetId == i)) | |
43 | 43 | 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_" + b), b), StringEntry(("Voting_Status_" + b), | |
44 | + | else [StringEntry(("Pair_Under_Voting_" + b), b), StringEntry(("Voting_Status_" + b), s), IntegerEntry(("Voting_Start_Height_" + b), height), IntegerEntry(("Voting_End_Height_" + b), q), IntegerEntry(("Voting_Period_" + b), n), IntegerEntry(("Voting_Listing_Fee_" + b), e.amount), IntegerEntry(("Votes_Required_" + b), p), IntegerEntry(("Votes_Received_" + b), 0), IntegerEntry(((("Price_Of_" + b) + "_") + toBase58String(j)), d), ScriptTransfer(addressFromPublicKey(g), e.amount, i)] | |
45 | 45 | } | |
46 | 46 | ||
47 | 47 | ||
48 | 48 | ||
49 | 49 | @Callable(a) | |
50 | 50 | func IssueBallet () = { | |
51 | - | let | |
52 | - | let | |
53 | - | let | |
54 | - | let | |
55 | - | let | |
56 | - | let | |
57 | - | let | |
58 | - | let | |
59 | - | let | |
60 | - | let | |
61 | - | let | |
62 | - | let | |
63 | - | if (isDefined( | |
51 | + | let u = value(a.payments[0]) | |
52 | + | let k = toBase58String(a.caller.bytes) | |
53 | + | let i = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y' | |
54 | + | let v = getIntegerValue(this, "BALLET/TN") | |
55 | + | let w = fraction(100000, u.amount, v) | |
56 | + | let x = getIntegerValue(this, "Total_Issued_Ballet:") | |
57 | + | let y = (x + w) | |
58 | + | let z = getIntegerValue(this, "Total_Ballet_Reserve_In_TN:") | |
59 | + | let A = (z + u.amount) | |
60 | + | let B = getIntegerValue(this, "Ballet_Backup_Value_In_TN:") | |
61 | + | let C = fraction(100000, A, y) | |
62 | + | let g = base58'8d4zGuTjT3h67Z4DatzMXdXXW1GvoQhMTjwCGFxJuene' | |
63 | + | if (isDefined(u.assetId)) | |
64 | 64 | then throw("Incorrect asset attached, please attach TN.") | |
65 | - | else if ((5000000 > | |
65 | + | else if ((5000000 > u.amount)) | |
66 | 66 | then throw("Please Attach minimum 0.05 TN To Issue Ballet Asset.") | |
67 | - | else [IntegerEntry("Total_Issued_Ballet:", | |
67 | + | else [IntegerEntry("Total_Issued_Ballet:", y), IntegerEntry("Total_Ballet_Reserve_In_TN:", A), IntegerEntry("Ballet_Backup_Value_In_TN:", C), StringEntry("message", "<h1>Ballet Issued Successfully!</h1><br>"), Reissue(i, w, true), ScriptTransfer(a.caller, ((w * 99) / 100), i), ScriptTransfer(addressFromPublicKey(g), ((w * 1) / 100), i)] | |
68 | 68 | } | |
69 | 69 | ||
70 | 70 | ||
71 | 71 | ||
72 | 72 | @Callable(a) | |
73 | 73 | func Liquidate () = { | |
74 | - | let | |
75 | - | let | |
76 | - | let | |
77 | - | let | |
78 | - | let | |
79 | - | let | |
80 | - | let | |
81 | - | let | |
82 | - | let | |
83 | - | let | |
84 | - | if (( | |
74 | + | let k = toBase58String(a.callerPublicKey) | |
75 | + | let u = value(a.payments[0]) | |
76 | + | let i = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y' | |
77 | + | let x = getIntegerValue(this, "Total_Issued_Ballet:") | |
78 | + | let y = (x - u.amount) | |
79 | + | let z = getIntegerValue(this, "Total_Ballet_Reserve_In_TN:") | |
80 | + | let B = getIntegerValue(this, "Ballet_Backup_Value_In_TN:") | |
81 | + | let D = fraction(B, u.amount, 100000) | |
82 | + | let A = (z - D) | |
83 | + | let C = fraction(100000, A, y) | |
84 | + | if ((u.assetId != i)) | |
85 | 85 | then throw("Kindly Deposit Only 44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y (Ballet).") | |
86 | - | else if ((100000 > | |
86 | + | else if ((100000 > u.amount)) | |
87 | 87 | then throw("Attach Amount must be greater than 0.001 Ballet.") | |
88 | - | else [Burn( | |
88 | + | else [Burn(i, u.amount), IntegerEntry("Total_Issued_Ballet:", y), IntegerEntry("Total_Ballet_Reserve_In_TN:", A), IntegerEntry("Ballet_Backup_Value_In_TN:", C), ScriptTransfer(a.caller, D, unit)] | |
89 | 89 | } | |
90 | 90 | ||
91 | 91 | ||
92 | 92 | ||
93 | 93 | @Callable(a) | |
94 | - | func DoVoting ( | |
95 | - | let | |
94 | + | func DoVoting (E) = { | |
95 | + | let u = if ((size(a.payments) == 1)) | |
96 | 96 | then a.payments[0] | |
97 | 97 | else throw("Ballet Token is required as Attached payment") | |
98 | - | let | |
99 | - | let | |
100 | - | let | |
101 | - | let | |
102 | - | let | |
103 | - | let | |
104 | - | let | |
105 | - | let | |
106 | - | let | |
107 | - | let | |
108 | - | if ($isInstanceOf( | |
98 | + | let F = toBase58String(a.caller.bytes) | |
99 | + | let i = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y' | |
100 | + | let G = "Pass" | |
101 | + | let H = getIntegerValue(this, ("Voting_End_Height_" + E)) | |
102 | + | let I = getString(this, ("Pair_Under_Voting_" + E)) | |
103 | + | let J = getIntegerValue(this, ("Votes_Required_" + E)) | |
104 | + | let K = getIntegerValue(this, ("Votes_Received_" + E)) | |
105 | + | let L = getStringValue(this, ("Voting_Status_" + E)) | |
106 | + | let M = { | |
107 | + | let N = getInteger(this, ("Votes_Received_" + E)) | |
108 | + | if ($isInstanceOf(N, "Int")) | |
109 | 109 | then { | |
110 | - | let | |
111 | - | | |
110 | + | let O = N | |
111 | + | O | |
112 | 112 | } | |
113 | 113 | else 0 | |
114 | 114 | } | |
115 | - | let | |
116 | - | let | |
117 | - | let | |
118 | - | if ($isInstanceOf( | |
115 | + | let P = (M + u.amount) | |
116 | + | let Q = { | |
117 | + | let N = getInteger(this, ((("Votes_Received_" + F) + "_") + E)) | |
118 | + | if ($isInstanceOf(N, "Int")) | |
119 | 119 | then { | |
120 | - | let | |
121 | - | | |
120 | + | let R = N | |
121 | + | R | |
122 | 122 | } | |
123 | 123 | else 0 | |
124 | 124 | } | |
125 | - | let | |
126 | - | let | |
127 | - | let | |
128 | - | let | |
129 | - | if (( | |
125 | + | let S = (Q + u.amount) | |
126 | + | let T = (K >= J) | |
127 | + | let U = valueOrErrorMessage(assetInfo(fromBase58String(E)), (("Asset " + E) + " doesn't exist")) | |
128 | + | let V = U.decimals | |
129 | + | if ((I != E)) | |
130 | 130 | then throw("Pair is not available in Voting List.") | |
131 | - | else if ((height > | |
132 | - | then throw((("Voting timeline for " + | |
133 | - | else if (( | |
131 | + | else if ((height > H)) | |
132 | + | then throw((("Voting timeline for " + E) + " is expired.")) | |
133 | + | else if ((u.assetId != i)) | |
134 | 134 | then throw("Kindly Attach Only 44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y (Ballet).") | |
135 | - | else if (( | |
136 | - | then throw((("Voting for " + | |
137 | - | else if ( | |
138 | - | then [StringEntry(("Voting_Status_" + | |
139 | - | else [IntegerEntry(("Votes_Received_" + | |
135 | + | else if ((L == G)) | |
136 | + | then throw((("Voting for " + E) + " pair is completed and it’s available in whitelist.")) | |
137 | + | else if (T) | |
138 | + | then [StringEntry(("Voting_Status_" + E), G), IntegerEntry(("Decimals_of_" + E), V)] | |
139 | + | else [IntegerEntry(("Votes_Received_" + E), P), IntegerEntry(((("Votes_Received_" + F) + "_") + E), S)] | |
140 | 140 | } | |
141 | 141 | ||
142 | 142 | ||
143 | 143 | ||
144 | 144 | @Callable(a) | |
145 | - | func WithdrawVotedTokens ( | |
146 | - | let | |
147 | - | let | |
148 | - | let | |
149 | - | let | |
150 | - | let | |
151 | - | let | |
152 | - | let | |
153 | - | if (( | |
145 | + | func WithdrawVotedTokens (E) = { | |
146 | + | let u = a.payments[0] | |
147 | + | let F = toBase58String(a.caller.bytes) | |
148 | + | let i = base58'44Mq8KqUhM94t93MiBq3S22iiuGczMxpKmse5dBy2w5y' | |
149 | + | let H = getIntegerValue(this, ("Voting_End_Height_" + E)) | |
150 | + | let I = getString(this, ("Pair_Under_Voting_" + E)) | |
151 | + | let W = getIntegerValue(this, ((("Votes_Received_" + F) + "_") + E)) | |
152 | + | let X = (H - height) | |
153 | + | if ((I != E)) | |
154 | 154 | then throw("Pair is not available in Voting List.") | |
155 | - | else if (( | |
156 | - | then throw((("Voting Already Running. You can withdraw your Ballet Token only after the expire of " + toString( | |
157 | - | else if ((0 >= | |
155 | + | else if ((H > height)) | |
156 | + | then throw((("Voting Already Running. You can withdraw your Ballet Token only after the expire of " + toString(X)) + " Blocks")) | |
157 | + | else if ((0 >= W)) | |
158 | 158 | then throw("You don't have any dues of ballet balance in this Voting Pair.") | |
159 | - | else if (isDefined( | |
159 | + | else if (isDefined(u.assetId)) | |
160 | 160 | then throw("Don't attach any asset. If you still want to support we accept only TN as payment.") | |
161 | - | else if (( | |
161 | + | else if ((u.amount != 10000000)) | |
162 | 162 | then throw("Please attach 0.1 TN as a fee to release your token.") | |
163 | - | else [IntegerEntry(((("Votes_Received_" + | |
163 | + | else [IntegerEntry(((("Votes_Received_" + F) + "_") + E), 0), ScriptTransfer(a.caller, W, i)] | |
164 | 164 | } | |
165 | 165 | ||
166 | 166 | ||
167 | 167 | ||
168 | 168 | @Callable(a) | |
169 | - | func RemovePairEntry (D) = { | |
170 | - | let X = getStringValue(this, "Polarity_Admin_Rights") | |
171 | - | let G = getIntegerValue(this, ("Voting_End_Height_" + D)) | |
172 | - | let H = getString(this, ("Pair_Under_Voting_" + D)) | |
173 | - | let K = getStringValue(this, ("Voting_Status_" + D)) | |
174 | - | let F = "Pass" | |
175 | - | let E = toBase58String(a.caller.bytes) | |
176 | - | let Y = height | |
177 | - | let W = (G - height) | |
178 | - | if ((H != D)) | |
169 | + | func RemovePairEntry (E) = { | |
170 | + | let Y = getStringValue(this, "Polarity_Admin_Rights") | |
171 | + | let j = base58'7RB3BWayeCVPq3kkpkeJZAFv2DYCB5gEwnutEpRofaw4' | |
172 | + | let H = getIntegerValue(this, ("Voting_End_Height_" + E)) | |
173 | + | let I = getString(this, ("Pair_Under_Voting_" + E)) | |
174 | + | let L = getStringValue(this, ("Voting_Status_" + E)) | |
175 | + | let G = "Pass" | |
176 | + | let F = toBase58String(a.caller.bytes) | |
177 | + | let Z = height | |
178 | + | let X = (H - height) | |
179 | + | if ((I != E)) | |
179 | 180 | then throw("Pair is not available in Voting List.") | |
180 | - | else if (( | |
181 | - | then throw((("I know You are not An Admin. Only " + | |
182 | - | else if (( | |
183 | - | then throw((("Voting Already Running. You can remove the pair after " + toString( | |
184 | - | else if (( | |
185 | - | then throw(( | |
186 | - | else [DeleteEntry(("Pair_Under_Voting_" + | |
181 | + | else if ((Y != F)) | |
182 | + | then throw((("I know You are not An Admin. Only " + Y) + " has rights to remove the pair.")) | |
183 | + | else if ((H > height)) | |
184 | + | then throw((("Voting Already Running. You can remove the pair after " + toString(X)) + " Blocks")) | |
185 | + | else if ((L == G)) | |
186 | + | then throw((E + " is now Whitelisted. So you can't remove it.")) | |
187 | + | else [DeleteEntry(("Pair_Under_Voting_" + E)), DeleteEntry(("Voting_Start_Height_" + E)), DeleteEntry(("Voting_End_Height_" + E)), DeleteEntry(("Voting_Period_" + E)), DeleteEntry(("Votes_Required_" + E)), DeleteEntry(("Voting_Listing_Fee_" + E)), DeleteEntry(("Voting_Status_" + E)), DeleteEntry(("Votes_Received_" + E)), DeleteEntry(((("Price_Of_" + E) + "_") + toBase58String(j)))] | |
187 | 188 | } | |
188 | 189 | ||
189 | 190 | ||
190 | - | @Verifier( | |
191 | - | func | |
192 | - | let | |
193 | - | sigVerify( | |
191 | + | @Verifier(aa) | |
192 | + | func ab () = { | |
193 | + | let N = aa | |
194 | + | sigVerify(aa.bodyBytes, aa.proofs[0], aa.senderPublicKey) | |
194 | 195 | } | |
195 | 196 |
github/deemru/w8io/169f3d6 132.08 ms ◑![]()