tx · Hx8HPrcJsLe88CwzLzs3jiFS7V7bHNMfNZxFuQNxiSA9

3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo:  -0.01400000 Waves

2019.08.16 11:29 [633396] smart account 3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo > SELF 0.00000000 Waves

{ "type": 13, "id": "Hx8HPrcJsLe88CwzLzs3jiFS7V7bHNMfNZxFuQNxiSA9", "fee": 1400000, "feeAssetId": null, "timestamp": 1565944198695, "version": 1, "sender": "3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo", "senderPublicKey": "5GQSFwNMkJFTT3FeLT3KENqoSr42yiJP3Av5qAYq1F7f", "proofs": [ "5XsAsfNMQkJAuYgLZEPxrscgKWNtWV5ppeZcZ1fUNjfDqma5VGFqWBU67EnN4JksoZWKUgdQoeBBHVb4UBfEAkQ" ], "script": "base64:AAIDAAAAAAAAAAAAAAAMAAAAAAdSVU5OSU5HAgAAAAdSVU5OSU5HAAAAAAZDTE9TRUQCAAAABkNMT1NFRAAAAAAJREFQUE9XTkVSAgAAACMzTjdXaWlzbzd2bzY5cHFXZkx0cHpUM3Riek1VR2FocXBnbwAAAAAFV0FWRVMCAAAABVdBVkVTAAAAAAROT05FAgAAAAROT05FAAAAAANGRUUAAAAAAAANu6AAAAAAA1dMVAEAAAAgXc1YMiAxtU0669iAvoWYChIkz8rePUfYvMDdGTUOq6oBAAAAC2dldE51bUJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAQZ2V0Q29udGVzdFN0YXR1cwAAAAAEAAAAEWNvbnRlc3RDdXJyTnVtYmVyCQEAAAALZ2V0TnVtQnlLZXkAAAABAgAAABVjb250ZXN0X2N1cnJlbnRudW1iZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAHX3N0YXR1cwEAAAANZ2V0QmV0QWNjb3VudAAAAAEAAAAFYmV0SWQEAAAAEWNvbnRlc3RDdXJyTnVtYmVyCQEAAAALZ2V0TnVtQnlLZXkAAAABAgAAABVjb250ZXN0X2N1cnJlbnRudW1iZXIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGJldF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAAV8JAAGkAAAAAQUAAAAFYmV0SWQBAAAAGmdldEV4dFdBVkVTVVNEQ3VycmVuY3lSYXRlAAAAAAQAAAANb3JhY2xlQWRkcmVzcwkBAAAAB2V4dHJhY3QAAAABCQEAAAARYWRkcmVzc0Zyb21TdHJpbmcAAAABAgAAACMzUFBUclRvM0F6UjU2TjdBcnpiVTNCcHE5ellNZ2NmMzlNawQAAAAUV0FWRVNVU0RDdXJyZW5jeVJhdGUEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAANb3JhY2xlQWRkcmVzcwIAAAALd2F2ZXNfdXNkXzIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAAUV0FWRVNVU0RDdXJyZW5jeVJhdGUAAAAEAAAAAWkBAAAAEHNldENvbnRlc3RTdGF0dXMAAAACAAAADWNvbnRlc3ROdW1iZXIAAAANY29udGVzdFN0YXR1cwQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAAiE9AAAAAgUAAAAHYWNjb3VudAUAAAAJREFQUE9XTkVSCQAAAgAAAAECAAAAJ09ubHkgZEFQUCBPd25lciBjYW4gc2V0IENvbnRlc3QgU3RhdHVzLgMDCQEAAAACIT0AAAACBQAAAA1jb250ZXN0U3RhdHVzBQAAAAdSVU5OSU5HCQEAAAACIT0AAAACBQAAAA1jb250ZXN0U3RhdHVzBQAAAAZDTE9TRUQHCQAAAgAAAAEJAAEsAAAAAgIAAAAQSW52YWxpZCBzdGF0dXM6IAUAAAANY29udGVzdFN0YXR1cwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAADWNvbnRlc3ROdW1iZXICAAAAB19zdGF0dXMFAAAADWNvbnRlc3RTdGF0dXMFAAAAA25pbAAAAAFpAQAAABdzZXRDb250ZXN0Q29uZmlndXJhdGlvbgAAAAIAAAAOY3VycmVuY3lUaWNrZXIAAAASY29udGVzdFN0YXJ0SGVpZ2h0BAAAAAdhY2NvdW50CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAEWNvbnRlc3RDdXJyTnVtYmVyCQEAAAALZ2V0TnVtQnlLZXkAAAABAgAAABVjb250ZXN0X2N1cnJlbnRudW1iZXIEAAAAEWNvbnRlc3RDdXJyU3RhdHVzCQEAAAALZ2V0U3RyQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19zdGF0dXMEAAAAEGNvbnRlc3ROZXdOdW1iZXIJAABkAAAAAgUAAAARY29udGVzdEN1cnJOdW1iZXIAAAAAAAAAAAEDCQEAAAACIT0AAAACBQAAAAdhY2NvdW50BQAAAAlEQVBQT1dORVIJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAA3T25seSBkQVBQIE93bmVyIGNhbiBDb25maWd1cmUgQ29udGVzdC4gQ2FsbGVyIGFjY291bnQ6IAUAAAAHYWNjb3VudAIAAAANIGRhcHAgb3duZXI6IAUAAAAJREFQUE9XTkVSAwkAAGcAAAACBQAAAAZoZWlnaHQFAAAAEmNvbnRlc3RTdGFydEhlaWdodAkAAAIAAAABCQABLAAAAAICAAAAPVN0YXJ0IEhlaWdodCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBjdXJyZW50IEJsb2NrY2hhaW4gaGVpZ2h0OiAJAAGkAAAAAQUAAAAGaGVpZ2h0AwkAAAAAAAACBQAAABFjb250ZXN0Q3VyclN0YXR1cwUAAAAHUlVOTklORwkAAAIAAAABCQABLAAAAAICAAAAQFlvdSBjYW5ub3QgY29uZmlndXJlIGEgbmV3IENvbnRlc3Qgd2hpbGUgb2xkIENvbnRlc3Qgc3RhdHVzIGlzOiAFAAAAEWNvbnRlc3RDdXJyU3RhdHVzAwkBAAAAAiE9AAAAAgUAAAAOY3VycmVuY3lUaWNrZXIFAAAABVdBVkVTCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACBkQVBQIGRvZXMgbm90IHN1cHBvcnQgY3VycmVuY3k6IAUAAAAOY3VycmVuY3lUaWNrZXICAAAABSB5ZXQuBAAAABNjb250ZXN0RmluaXNoSGVpZ2h0CQAAZAAAAAIFAAAAEmNvbnRlc3RTdGFydEhlaWdodAkAAGgAAAACAAAAAAAAAAAHAAAAAAAAAAWgCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAABVjb250ZXN0X2N1cnJlbnRudW1iZXIFAAAAEGNvbnRlc3ROZXdOdW1iZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABBjb250ZXN0TmV3TnVtYmVyAgAAAAlfY3VycmVuY3kFAAAADmN1cnJlbmN5VGlja2VyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAAQY29udGVzdE5ld051bWJlcgIAAAAMX3N0YXJ0aGVpZ2h0BQAAABJjb250ZXN0U3RhcnRIZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABBjb250ZXN0TmV3TnVtYmVyAgAAAA1fZmluaXNoaGVpZ2h0BQAAABNjb250ZXN0RmluaXNoSGVpZ2h0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAAQY29udGVzdE5ld051bWJlcgIAAAAHX3N0YXR1cwUAAAAHUlVOTklORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEGNvbnRlc3ROZXdOdW1iZXICAAAADF92b3RlY291bnRlcgAAAAAAAAAAAAUAAAADbmlsAAAAAWkBAAAAA2JldAAAAAEAAAANY3VycmVuY3lWYWx1ZQQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAARY29udGVzdEN1cnJOdW1iZXIJAQAAAAtnZXROdW1CeUtleQAAAAECAAAAFWNvbnRlc3RfY3VycmVudG51bWJlcgQAAAASY29udGVzdFN0YXJ0SGVpZ2h0CQEAAAALZ2V0TnVtQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAADF9zdGFydGhlaWdodAQAAAATY29udGVzdEZpbmlzaEhlaWdodAkBAAAAC2dldE51bUJ5S2V5AAAAAQkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAA1fZmluaXNoaGVpZ2h0BAAAABJjb250ZXN0Vm90ZUNvdW50ZXIJAQAAAAtnZXROdW1CeUtleQAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAMX3ZvdGVjb3VudGVyBAAAABFjb250ZXN0Q3VyclN0YXR1cwkBAAAAC2dldFN0ckJ5S2V5AAAAAQkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAdfc3RhdHVzBAAAAAp0aGlzVm90ZUlkCQAAZAAAAAIFAAAAEmNvbnRlc3RWb3RlQ291bnRlcgAAAAAAAAAAAQQAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARiZXRfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAFfBQAAAA1jdXJyZW5jeVZhbHVlBAAAAA1jb250ZXN0U3RhdHVzCQEAAAALZ2V0U3RyQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19zdGF0dXMEAAAAEWV4aXN0aW5nQmV0Vm90ZUlkCQEAAAALZ2V0TnVtQnlLZXkAAAABBQAAAANrZXkEAAAAEmV4aXN0aW5nQmV0QWNjb3VudAkBAAAADWdldEJldEFjY291bnQAAAABBQAAABFleGlzdGluZ0JldFZvdGVJZAMJAABmAAAAAgUAAAAGaGVpZ2h0CQAAZQAAAAIFAAAAE2NvbnRlc3RGaW5pc2hIZWlnaHQJAABoAAAAAgAAAAAAAAAAAgAAAAAAAAAFoAkAAAIAAAABAgAAACZZb3UgY2Fubm90IGJldCBhbnltb3JlIGF0IHRoaXMgaGVpZ2h0LgMJAQAAAAIhPQAAAAIFAAAAEWNvbnRlc3RDdXJyU3RhdHVzBQAAAAdSVU5OSU5HCQAAAgAAAAECAAAAI0ludmFsaWQgc3RhdHVzOiB5b3UgY2Fubm90IGJldCBub3cuAwMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAADV0xUBgkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAHoSAJAAACAAAAAQIAAAAaWW91IG11c3QgcGF5IDUgV0xUIHRvIGJldC4DAwYGAwkBAAAAAiE9AAAAAgUAAAASZXhpc3RpbmdCZXRBY2NvdW50BQAAAAROT05FCQEAAAACIT0AAAACBQAAABJleGlzdGluZ0JldEFjY291bnQFAAAAB2FjY291bnQHCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFa2V5OiAFAAAAA2tleQIAAAARIEFub3RoZXIgd2FsbGV0OiAFAAAAEmV4aXN0aW5nQmV0QWNjb3VudAIAAAAaIGRpZCBiZXQgYWxyZWFkeSBvbiByYXRlOiAFAAAADWN1cnJlbmN5VmFsdWUCAAAABSBiZXQ6CQABpAAAAAEFAAAAEWV4aXN0aW5nQmV0Vm90ZUlkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGJldF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAAV8JAAGkAAAAAQUAAAAKdGhpc1ZvdGVJZAIAAAAGX293bmVyBQAAAAdhY2NvdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARiZXRfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAFfBQAAAA1jdXJyZW5jeVZhbHVlBQAAAAp0aGlzVm90ZUlkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAADF92b3RlY291bnRlcgUAAAAKdGhpc1ZvdGVJZAUAAAADbmlsAAAAAWkBAAAADGNsb3NlY29udGVzdAAAAAEAAAAMY3VycmVuY3lSYXRlBAAAABFjb250ZXN0Q3Vyck51bWJlcgkBAAAAC2dldE51bUJ5S2V5AAAAAQIAAAAVY29udGVzdF9jdXJyZW50bnVtYmVyBAAAABB3aW5uaW5nQmV0Vm90ZUlkCQEAAAALZ2V0TnVtQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARiZXRfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAFfBQAAAAxjdXJyZW5jeVJhdGUEAAAAEXdpbm5pbmdCZXRBY2NvdW50CQEAAAANZ2V0QmV0QWNjb3VudAAAAAEFAAAAEHdpbm5pbmdCZXRWb3RlSWQEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAHYmFsYW5jZQkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAABHRoaXMEAAAAEWNvbnRlc3RDdXJyU3RhdHVzCQEAAAALZ2V0U3RyQnlLZXkAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19zdGF0dXMEAAAAD3dyaXRlU3RhdGlzdGljcwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAdfc3RhdHVzBQAAAAZDTE9TRUQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAHX3dpbm5lcgUAAAARd2lubmluZ0JldEFjY291bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAANX2N1cnJlbmN5cmF0ZQUAAAAMY3VycmVuY3lSYXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19oZWlnaHQFAAAABmhlaWdodAUAAAADbmlsAwkBAAAAAiE9AAAAAgUAAAAHYWNjb3VudAUAAAAJREFQUE9XTkVSCQAAAgAAAAECAAAAIk9ubHkgZEFQUCBPd25lciBjYW4gQ2xvc2UgQ29udGVzdC4DCQEAAAACIT0AAAACBQAAABFjb250ZXN0Q3VyclN0YXR1cwUAAAAHUlVOTklORwkAAAIAAAABCQABLAAAAAICAAAAIkNhbm5vdCBjbG9zZSBhIGNvbnRlc3QgaW4gc3RhdHVzOiAFAAAAEWNvbnRlc3RDdXJyU3RhdHVzAwkBAAAAAiE9AAAAAgUAAAARd2lubmluZ0JldEFjY291bnQFAAAABE5PTkUEAAAAC3dpblRyYW5zZmVyCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdleHRyYWN0AAAAAQkBAAAAEWFkZHJlc3NGcm9tU3RyaW5nAAAAAQUAAAARd2lubmluZ0JldEFjY291bnQJAABlAAAAAgkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAABHRoaXMFAAAAA0ZFRQUAAAAEdW5pdAUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAdfc3RhdHVzBQAAAAZDTE9TRUQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAHX3dpbm5lcgUAAAARd2lubmluZ0JldEFjY291bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAANX2N1cnJlbmN5cmF0ZQUAAAAMY3VycmVuY3lSYXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19oZWlnaHQFAAAABmhlaWdodAUAAAADbmlsBQAAAAt3aW5UcmFuc2ZlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGNvbnRlc3RfCQABpAAAAAEFAAAAEWNvbnRlc3RDdXJyTnVtYmVyAgAAAAdfc3RhdHVzBQAAAAZDTE9TRUQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAAHX3dpbm5lcgUAAAARd2lubmluZ0JldEFjY291bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhjb250ZXN0XwkAAaQAAAABBQAAABFjb250ZXN0Q3Vyck51bWJlcgIAAAANX2N1cnJlbmN5cmF0ZQUAAAAMY3VycmVuY3lSYXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIY29udGVzdF8JAAGkAAAAAQUAAAARY29udGVzdEN1cnJOdW1iZXICAAAAB19oZWlnaHQFAAAABmhlaWdodAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24GBpMiyI0=", "chainId": 84, "height": 633396, "spentComplexity": 0 } View: original | compacted Prev: 6hv4feAeF2sgPMsAaTyFQkL8V2TFGu9cG5Vzo44atNC7 Next: 8V8gvhurrz3WCEK5zvC9SRJxXJMve98iRvLeXi7LKuxv Diff:
OldNewDifferences
4545
4646 func getBetAccount (betId) = {
4747 let contestCurrNumber = getNumByKey("contest_currentnumber")
48- getStrByKey((("contest_" + toString(contestCurrNumber)) + toString(betId)))
48+ getStrByKey(((("bet_" + toString(contestCurrNumber)) + "_") + toString(betId)))
4949 }
5050
5151
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RUNNING = "RUNNING"
55
66 let CLOSED = "CLOSED"
77
88 let DAPPOWNER = "3N7Wiiso7vo69pqWfLtpzT3tbzMUGahqpgo"
99
1010 let WAVES = "WAVES"
1111
1212 let NONE = "NONE"
1313
1414 let FEE = 900000
1515
1616 let WLT = base58'7KAXNTswj6947a6cVpGhVrh1utWpLcjwf8AFpWCtuMT7'
1717
1818 func getNumByKey (key) = {
1919 let num = match getInteger(this, key) {
2020 case a: Int =>
2121 a
2222 case _ =>
2323 0
2424 }
2525 num
2626 }
2727
2828
2929 func getStrByKey (key) = {
3030 let str = match getString(this, key) {
3131 case a: String =>
3232 a
3333 case _ =>
3434 NONE
3535 }
3636 str
3737 }
3838
3939
4040 func getContestStatus () = {
4141 let contestCurrNumber = getNumByKey("contest_currentnumber")
4242 getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
4343 }
4444
4545
4646 func getBetAccount (betId) = {
4747 let contestCurrNumber = getNumByKey("contest_currentnumber")
48- getStrByKey((("contest_" + toString(contestCurrNumber)) + toString(betId)))
48+ getStrByKey(((("bet_" + toString(contestCurrNumber)) + "_") + toString(betId)))
4949 }
5050
5151
5252 func getExtWAVESUSDCurrencyRate () = {
5353 let oracleAddress = extract(addressFromString("3PPTrTo3AzR56N7ArzbU3Bpq9zYMgcf39Mk"))
5454 let WAVESUSDCurrencyRate = match getInteger(oracleAddress, "waves_usd_2") {
5555 case a: Int =>
5656 a
5757 case _ =>
5858 0
5959 }
6060 WAVESUSDCurrencyRate
6161 }
6262
6363
6464 @Callable(i)
6565 func setContestStatus (contestNumber,contestStatus) = {
6666 let account = toBase58String(i.caller.bytes)
6767 if ((account != DAPPOWNER))
6868 then throw("Only dAPP Owner can set Contest Status.")
6969 else if (if ((contestStatus != RUNNING))
7070 then (contestStatus != CLOSED)
7171 else false)
7272 then throw(("Invalid status: " + contestStatus))
7373 else WriteSet([DataEntry((("contest_" + toString(contestNumber)) + "_status"), contestStatus)])
7474 }
7575
7676
7777
7878 @Callable(i)
7979 func setContestConfiguration (currencyTicker,contestStartHeight) = {
8080 let account = toBase58String(i.caller.bytes)
8181 let contestCurrNumber = getNumByKey("contest_currentnumber")
8282 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
8383 let contestNewNumber = (contestCurrNumber + 1)
8484 if ((account != DAPPOWNER))
8585 then throw(((("Only dAPP Owner can Configure Contest. Caller account: " + account) + " dapp owner: ") + DAPPOWNER))
8686 else if ((height >= contestStartHeight))
8787 then throw(("Start Height must be greater than current Blockchain height: " + toString(height)))
8888 else if ((contestCurrStatus == RUNNING))
8989 then throw(("You cannot configure a new Contest while old Contest status is: " + contestCurrStatus))
9090 else if ((currencyTicker != WAVES))
9191 then throw((("dAPP does not support currency: " + currencyTicker) + " yet."))
9292 else {
9393 let contestFinishHeight = (contestStartHeight + (7 * 1440))
9494 WriteSet([DataEntry("contest_currentnumber", contestNewNumber), DataEntry((("contest_" + toString(contestNewNumber)) + "_currency"), currencyTicker), DataEntry((("contest_" + toString(contestNewNumber)) + "_startheight"), contestStartHeight), DataEntry((("contest_" + toString(contestNewNumber)) + "_finishheight"), contestFinishHeight), DataEntry((("contest_" + toString(contestNewNumber)) + "_status"), RUNNING), DataEntry((("contest_" + toString(contestNewNumber)) + "_votecounter"), 0)])
9595 }
9696 }
9797
9898
9999
100100 @Callable(i)
101101 func bet (currencyValue) = {
102102 let account = toBase58String(i.caller.bytes)
103103 let pmt = extract(i.payment)
104104 let contestCurrNumber = getNumByKey("contest_currentnumber")
105105 let contestStartHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_startheight"))
106106 let contestFinishHeight = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_finishheight"))
107107 let contestVoteCounter = getNumByKey((("contest_" + toString(contestCurrNumber)) + "_votecounter"))
108108 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
109109 let thisVoteId = (contestVoteCounter + 1)
110110 let key = ((("bet_" + toString(contestCurrNumber)) + "_") + currencyValue)
111111 let contestStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
112112 let existingBetVoteId = getNumByKey(key)
113113 let existingBetAccount = getBetAccount(existingBetVoteId)
114114 if ((height > (contestFinishHeight - (2 * 1440))))
115115 then throw("You cannot bet anymore at this height.")
116116 else if ((contestCurrStatus != RUNNING))
117117 then throw("Invalid status: you cannot bet now.")
118118 else if (if ((pmt.assetId != WLT))
119119 then true
120120 else (pmt.amount != 500000))
121121 then throw("You must pay 5 WLT to bet.")
122122 else if (if (true)
123123 then true
124124 else if ((existingBetAccount != NONE))
125125 then (existingBetAccount != account)
126126 else false)
127127 then throw(((((((("key: " + key) + " Another wallet: ") + existingBetAccount) + " did bet already on rate: ") + currencyValue) + " bet:") + toString(existingBetVoteId)))
128128 else WriteSet([DataEntry((((("bet_" + toString(contestCurrNumber)) + "_") + toString(thisVoteId)) + "_owner"), account), DataEntry(((("bet_" + toString(contestCurrNumber)) + "_") + currencyValue), thisVoteId), DataEntry((("contest_" + toString(contestCurrNumber)) + "_votecounter"), thisVoteId)])
129129 }
130130
131131
132132
133133 @Callable(i)
134134 func closecontest (currencyRate) = {
135135 let contestCurrNumber = getNumByKey("contest_currentnumber")
136136 let winningBetVoteId = getNumByKey(((("bet_" + toString(contestCurrNumber)) + "_") + currencyRate))
137137 let winningBetAccount = getBetAccount(winningBetVoteId)
138138 let account = toBase58String(i.caller.bytes)
139139 let balance = wavesBalance(this)
140140 let contestCurrStatus = getStrByKey((("contest_" + toString(contestCurrNumber)) + "_status"))
141141 let writeStatistics = WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), CLOSED), DataEntry((("contest_" + toString(contestCurrNumber)) + "_winner"), winningBetAccount), DataEntry((("contest_" + toString(contestCurrNumber)) + "_currencyrate"), currencyRate), DataEntry((("contest_" + toString(contestCurrNumber)) + "_height"), height)])
142142 if ((account != DAPPOWNER))
143143 then throw("Only dAPP Owner can Close Contest.")
144144 else if ((contestCurrStatus != RUNNING))
145145 then throw(("Cannot close a contest in status: " + contestCurrStatus))
146146 else if ((winningBetAccount != NONE))
147147 then {
148148 let winTransfer = TransferSet([ScriptTransfer(extract(addressFromString(winningBetAccount)), (wavesBalance(this) - FEE), unit)])
149149 ScriptResult(WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), CLOSED), DataEntry((("contest_" + toString(contestCurrNumber)) + "_winner"), winningBetAccount), DataEntry((("contest_" + toString(contestCurrNumber)) + "_currencyrate"), currencyRate), DataEntry((("contest_" + toString(contestCurrNumber)) + "_height"), height)]), winTransfer)
150150 }
151151 else WriteSet([DataEntry((("contest_" + toString(contestCurrNumber)) + "_status"), CLOSED), DataEntry((("contest_" + toString(contestCurrNumber)) + "_winner"), winningBetAccount), DataEntry((("contest_" + toString(contestCurrNumber)) + "_currencyrate"), currencyRate), DataEntry((("contest_" + toString(contestCurrNumber)) + "_height"), height)])
152152 }
153153
154154
155155 @Verifier(tx)
156156 func verify () = match tx {
157157 case _: SetScriptTransaction|DataTransaction =>
158158 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
159159 case _: InvokeScriptTransaction =>
160160 true
161161 case _ =>
162162 true
163163 }
164164

github/deemru/w8io/026f985 
43.48 ms