tx · 5rpV7mj7Dq2mibG5SuoPWwVDCS3UxJ54ddBUA3DFag2M

3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL:  -0.02100000 Waves

2022.11.20 01:33 [2324609] smart account 3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL > SELF 0.00000000 Waves

{ "type": 13, "id": "5rpV7mj7Dq2mibG5SuoPWwVDCS3UxJ54ddBUA3DFag2M", "fee": 2100000, "feeAssetId": null, "timestamp": 1668897234854, "version": 2, "chainId": 84, "sender": "3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL", "senderPublicKey": "BefhVEanzhrtdYfeWquaoSsMZw3BEaEZZB86Kosqw7Qb", "proofs": [ "2ShK4Bt71Di1x6tfRZEmZCmY7yGCppH7CVoh8Y1Xo7C3qnSFweSXS1RBLS8iNJciVQfnSsDDzyPoW5CRxFFiEe5U" ], "script": "base64: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AAdhZGRyZXNzCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAACQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAABCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAACCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAADCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAECQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAFCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAGCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAHCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAICQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAJCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAKCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAALCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAMCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAANCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAOCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAPBQAAAANuaWwBAAAAD29jdG9BZGRyZXNzS2V5cwAAAAEAAAAHYWRkcmVzcwkABEwAAAACCQEAAAAFY29tYm8AAAACBQAAAAdhZGRyZXNzCQABkQAAAAIFAAAACGtleXNPY3RvAAAAAAAAAAAACQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAIa2V5c09jdG8AAAAAAAAAAAEJAARMAAAAAgkBAAAABWNvbWJvAAAAAgUAAAAHYWRkcmVzcwkAAZEAAAACBQAAAAhrZXlzT2N0bwAAAAAAAAAAAgkABEwAAAACCQEAAAAFY29tYm8AAAACBQAAAAdhZGRyZXNzCQABkQAAAAIFAAAACGtleXNPY3RvAAAAAAAAAAADCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAIa2V5c09jdG8AAAAAAAAAAAQJAARMAAAAAgkBAAAABWNvbWJvAAAAAgUAAAAHYWRkcmVzcwkAAZEAAAACBQAAAAhrZXlzT2N0bwAAAAAAAAAABQkABEwAAAACCQEAAAAFY29tYm8AAAACBQAAAAdhZGRyZXNzCQABkQAAAAIFAAAACGtleXNPY3RvAAAAAAAAAAAGCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAIa2V5c09jdG8AAAAAAAAAAAcFAAAAA25pbAEAAAAScXVhcnRlckFkZHJlc3NLZXlzAAAAAQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAALa2V5c1F1YXJ0ZXIAAAAAAAAAAAAJAARMAAAAAgkBAAAABWNvbWJvAAAAAgUAAAAHYWRkcmVzcwkAAZEAAAACBQAAAAtrZXlzUXVhcnRlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAFY29tYm8AAAACBQAAAAdhZGRyZXNzCQABkQAAAAIFAAAAC2tleXNRdWFydGVyAAAAAAAAAAACCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAALa2V5c1F1YXJ0ZXIAAAAAAAAAAAMFAAAAA25pbAEAAAAPc2VtaUFkZHJlc3NLZXlzAAAAAQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAIa2V5c1NlbWkAAAAAAAAAAAAJAARMAAAAAgkBAAAABWNvbWJvAAAAAgUAAAAHYWRkcmVzcwkAAZEAAAACBQAAAAhrZXlzU2VtaQAAAAAAAAAAAQUAAAADbmlsAQAAAApldmFsR3JvdXBzAAAAAQAAAAdhZGRyZXNzBAAAAAhhZGRyS2V5cwkBAAAAEWdyb3Vwc0FkZHJlc3NLZXlzAAAAAQUAAAAHYWRkcmVzcwoAAAAAAiRsBQAAAAhhZGRyS2V5cwoAAAAAAiRzCQABkAAAAAEFAAAAAiRsCgAAAAAFJGFjYzAAAAAAAAAAAAAKAQAAAAUkZjBfMQAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAQAAAAxjaGVja0hhbmRsZXIAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAAUTGlzdCBzaXplIGV4Y2VlZHMgMTYJAQAAAAUkZjBfMgAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAAAAAAAAAAAEAAAAAAAAAAAFAAAAAAAAAAAGAAAAAAAAAAAHAAAAAAAAAAAIAAAAAAAAAAAJAAAAAAAAAAAKAAAAAAAAAAALAAAAAAAAAAAMAAAAAAAAAAANAAAAAAAAAAAOAAAAAAAAAAAPAAAAAAAAAAAQAQAAAAhldmFsT2N0bwAAAAEAAAAHYWRkcmVzcwQAAAAIYWRkcktleXMJAQAAAA9vY3RvQWRkcmVzc0tleXMAAAABBQAAAAdhZGRyZXNzCgAAAAACJGwFAAAACGFkZHJLZXlzCgAAAAACJHMJAAGQAAAAAQUAAAACJGwKAAAAAAUkYWNjMAAAAAAAAAAAAAoBAAAABSRmMF8xAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkBAAAADGNoZWNrSGFuZGxlcgAAAAIFAAAAAiRhCQABkQAAAAIFAAAAAiRsBQAAAAIkaQoBAAAABSRmMF8yAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkAAAIAAAABAgAAABNMaXN0IHNpemUgZXhjZWVkcyA4CQEAAAAFJGYwXzIAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAEAAAALZXZhbFF1YXJ0ZXIAAAABAAAAB2FkZHJlc3MEAAAACGFkZHJLZXlzCQEAAAAScXVhcnRlckFkZHJlc3NLZXlzAAAAAQUAAAAHYWRkcmVzcwoAAAAAAiRsBQAAAAhhZGRyS2V5cwoAAAAAAiRzCQABkAAAAAEFAAAAAiRsCgAAAAAFJGFjYzAAAAAAAAAAAAAKAQAAAAUkZjBfMQAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAQAAAAxjaGVja0hhbmRsZXIAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZHMgNAkBAAAABSRmMF8yAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQBAAAACGV2YWxTZW1pAAAAAQAAAAdhZGRyZXNzBAAAAAhhZGRyS2V5cwkBAAAAD3NlbWlBZGRyZXNzS2V5cwAAAAEFAAAAB2FkZHJlc3MKAAAAAAIkbAUAAAAIYWRkcktleXMKAAAAAAIkcwkAAZAAAAABBQAAAAIkbAoAAAAABSRhY2MwAAAAAAAAAAAACgEAAAAFJGYwXzEAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQEAAAAMY2hlY2tIYW5kbGVyAAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAAFJGYwXzIAAAACAAAAAiRhAAAAAiRpAwkAAGcAAAACBQAAAAIkaQUAAAACJHMFAAAAAiRhCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWRzIDIJAQAAAAUkZjBfMgAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAQAAAAlldmFsRmluYWwAAAABAAAAB2FkZHJlc3MEAAAAB2FkZHJLZXkJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MFAAAACGtleUZpbmFsBAAAAAdiYXNlS2V5BQAAAAhrZXlGaW5hbAQAAAAHcmVzdWx0UgkBAAAADHRyeUdldFJlc3VsdAAAAAEFAAAAB2Jhc2VLZXkDCQAAAAAAAAIFAAAAB3Jlc3VsdFIFAAAAB3Jlc3VsdFIEAAAABmd1ZXNzUgkBAAAADHRyeUdldFN0cmluZwAAAAEFAAAAB2FkZHJLZXkDCQAAAAAAAAIFAAAABmd1ZXNzUgUAAAAGZ3Vlc3NSAwkAAAAAAAACBQAAAAdyZXN1bHRSBQAAAAZndWVzc1IAAAAAAAAAAAEAAAAAAAAAAAAJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAUAAAABaQEAAAAMc2V0QmV0QW1vdW50AAAAAQAAAAZhbW91bnQDCQEAAAAFYWxsb3cAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGJldEFtb3VudEtleQUAAAAGYW1vdW50BQAAAANuaWwJAAACAAAAAQIAAAAKT25seSBhZG1pbgAAAAFpAQAAAAtzZXREZWFkTGluZQAAAAEAAAAOZGVhZGxpbmVIZWlnaHQDCQEAAAAFYWxsb3cAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2RlYWRsaW5lS2V5BQAAAA5kZWFkbGluZUhlaWdodAUAAAADbmlsCQAAAgAAAAECAAAACk9ubHkgYWRtaW4AAAABaQEAAAAHbWFrZUJldAAAAAYAAAANZ3JvdXBfd2lubmVycwAAAAxncm91cF9zZWNvbmQAAAAMb2N0b193aW5uZXJzAAAAD3F1YXJ0ZXJfd2lubmVycwAAAAxzZW1pX3dpbm5lcnMAAAAGd2lubmVyBAAAAANwbXQJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAACXBtdF9hc3NldAgFAAAAA3BtdAAAAAdhc3NldElkBAAAAApwbXRfYW1vdW50CQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAABmFtb3VudAQAAAAKY2FsbGVyQWRkcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAABmJldHRlZAkBAAAABWlzQmV0AAAAAQUAAAAKY2FsbGVyQWRkcgQAAAAIZGVhZGxpbmUJAQAAAAtnZXREZWFkTGluZQAAAAADCQAAZgAAAAIFAAAACGRlYWRsaW5lBQAAAAZoZWlnaHQDCQEAAAABIQAAAAEFAAAABmJldHRlZAMJAAAAAAAAAgkBAAAADmdldEFzc2V0U3RyaW5nAAAAAQUAAAAJcG10X2Fzc2V0AgAAAAVXQVZFUwQAAAAJYmV0QW1vdW50CQEAAAAMZ2V0QmV0QW1vdW50AAAAAAMJAQAAAAIhPQAAAAIFAAAACWJldEFtb3VudAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAKcG10X2Ftb3VudAUAAAAJYmV0QW1vdW50BAAAAAxncm91cFdpbm5lcnMJAAS1AAAAAgUAAAANZ3JvdXBfd2lubmVycwIAAAABXwQAAAALZ3JvdXBTZWNvbmQJAAS1AAAAAgUAAAAMZ3JvdXBfc2Vjb25kAgAAAAFfBAAAAAtvY3RvV2lubmVycwkABLUAAAACBQAAAAxvY3RvX3dpbm5lcnMCAAAAAV8EAAAADnF1YXJ0ZXJXaW5uZXJzCQAEtQAAAAIFAAAAD3F1YXJ0ZXJfd2lubmVycwIAAAABXwQAAAALc2VtaVdpbm5lcnMJAAS1AAAAAgUAAAAMc2VtaV93aW5uZXJzAgAAAAFfAwMDAwMJAAAAAAAAAgkAAZAAAAABBQAAAAxncm91cFdpbm5lcnMAAAAAAAAAAAgJAAAAAAAAAgkAAZAAAAABBQAAAAtncm91cFNlY29uZAAAAAAAAAAACAcJAAAAAAAAAgkAAZAAAAABBQAAAAtvY3RvV2lubmVycwAAAAAAAAAACAcJAAAAAAAAAgkAAZAAAAABBQAAAA5xdWFydGVyV2lubmVycwAAAAAAAAAABAcJAAAAAAAAAgkAAZAAAAABBQAAAAtzZW1pV2lubmVycwAAAAAAAAAAAgcJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAAHX2JldHRlZAYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAAHX2hlaWdodAUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAACl9iZXRBbW91bnQFAAAACnBtdF9hbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBBLTFzdAkAAZEAAAACBQAAAAxncm91cFdpbm5lcnMAAAAAAAAAAAAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBBLTJuZAkAAZEAAAACBQAAAAtncm91cFNlY29uZAAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEItMXN0CQABkQAAAAIFAAAADGdyb3VwV2lubmVycwAAAAAAAAAAAQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEItMm5kCQABkQAAAAIFAAAAC2dyb3VwU2Vjb25kAAAAAAAAAAABCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwQy0xc3QJAAGRAAAAAgUAAAAMZ3JvdXBXaW5uZXJzAAAAAAAAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwQy0ybmQJAAGRAAAAAgUAAAALZ3JvdXBTZWNvbmQAAAAAAAAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBELTFzdAkAAZEAAAACBQAAAAxncm91cFdpbm5lcnMAAAAAAAAAAAMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBELTJuZAkAAZEAAAACBQAAAAtncm91cFNlY29uZAAAAAAAAAAAAwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEUtMXN0CQABkQAAAAIFAAAADGdyb3VwV2lubmVycwAAAAAAAAAABAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEUtMm5kCQABkQAAAAIFAAAAC2dyb3VwU2Vjb25kAAAAAAAAAAAECQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwRi0xc3QJAAGRAAAAAgUAAAAMZ3JvdXBXaW5uZXJzAAAAAAAAAAAFCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwRi0ybmQJAAGRAAAAAgUAAAALZ3JvdXBTZWNvbmQAAAAAAAAAAAUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBHLTFzdAkAAZEAAAACBQAAAAxncm91cFdpbm5lcnMAAAAAAAAAAAYJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBHLTJuZAkAAZEAAAACBQAAAAtncm91cFNlY29uZAAAAAAAAAAABgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEgtMXN0CQABkQAAAAIFAAAADGdyb3VwV2lubmVycwAAAAAAAAAABwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEgtMm5kCQABkQAAAAIFAAAAC2dyb3VwU2Vjb25kAAAAAAAAAAAHCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG8xLXdpbm5lcgkAAZEAAAACBQAAAAtvY3RvV2lubmVycwAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvMi13aW5uZXIJAAGRAAAAAgUAAAALb2N0b1dpbm5lcnMAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fT2N0bzMtd2lubmVyCQABkQAAAAIFAAAAC29jdG9XaW5uZXJzAAAAAAAAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG80LXdpbm5lcgkAAZEAAAACBQAAAAtvY3RvV2lubmVycwAAAAAAAAAAAwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvNS13aW5uZXIJAAGRAAAAAgUAAAALb2N0b1dpbm5lcnMAAAAAAAAAAAQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fT2N0bzYtd2lubmVyCQABkQAAAAIFAAAAC29jdG9XaW5uZXJzAAAAAAAAAAAFCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG83LXdpbm5lcgkAAZEAAAACBQAAAAtvY3RvV2lubmVycwAAAAAAAAAABgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvOC13aW5uZXIJAAGRAAAAAgUAAAALb2N0b1dpbm5lcnMAAAAAAAAAAAcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAABBfUXVhcnRlcjEtd2lubmVyCQABkQAAAAIFAAAADnF1YXJ0ZXJXaW5uZXJzAAAAAAAAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAAQX1F1YXJ0ZXIyLXdpbm5lcgkAAZEAAAACBQAAAA5xdWFydGVyV2lubmVycwAAAAAAAAAAAQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAEF9RdWFydGVyMy13aW5uZXIJAAGRAAAAAgUAAAAOcXVhcnRlcldpbm5lcnMAAAAAAAAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAABBfUXVhcnRlcjQtd2lubmVyCQABkQAAAAIFAAAADnF1YXJ0ZXJXaW5uZXJzAAAAAAAAAAADCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX1NlbWkxLXdpbm5lcgkAAZEAAAACBQAAAAtzZW1pV2lubmVycwAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9TZW1pMi13aW5uZXIJAAGRAAAAAgUAAAALc2VtaVdpbm5lcnMAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fRmluYWwtd2lubmVyBQAAAAZ3aW5uZXIFAAAAA25pbAkAAAIAAAABAgAAACNJbmNvcnJlY3QgZGF0YSBhcnJpdmVkIGluIGFyZ3VtZW50cwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAPQXR0YWNoIGV4YWN0bHkgCQABpAAAAAEFAAAACWJldEFtb3VudAIAAAAcIC8xMDAwMDAwMDAgV2F2ZXMgYXMgcGF5bWVudAkAAAIAAAABAgAAACRaZXJvIGJldEFtb3VudCBmcm9tIGNvbnRyYWN0IHN0b3JhZ2UJAAACAAAAAQIAAAAtT25seSBXYXZlcyBpcyBhbGxvd2VkIGFzIHBheW1lbnQgYXNzZXQgdG8gYmV0CQAAAgAAAAECAAAAEEJldCBhbHJlYWR5IG1hZGUJAAACAAAAAQIAAAAOQmV0dGluZyBjbG9zZWQAAAABaQEAAAANZGVsZXRlQWRkcmVzcwAAAAEAAAAHYWRkcmVzcwQAAAAKY2FsbGVyQWRkcgUAAAAHYWRkcmVzcwMJAQAAAAVhbGxvdwAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAB19iZXR0ZWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAdfaGVpZ2h0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAAKX2JldEFtb3VudAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEEtMXN0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwQS0ybmQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBCLTFzdAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEItMm5kCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwQy0xc3QJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBDLTJuZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEQtMXN0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwRC0ybmQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBFLTFzdAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEUtMm5kCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwRi0xc3QJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBGLTJuZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEctMXN0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwRy0ybmQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBILTFzdAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEgtMm5kCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG8xLXdpbm5lcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvMi13aW5uZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fT2N0bzMtd2lubmVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG80LXdpbm5lcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvNS13aW5uZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fT2N0bzYtd2lubmVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG83LXdpbm5lcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvOC13aW5uZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAABBfUXVhcnRlcjEtd2lubmVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAAQX1F1YXJ0ZXIyLXdpbm5lcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAEF9RdWFydGVyMy13aW5uZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAABBfUXVhcnRlcjQtd2lubmVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX1NlbWkxLXdpbm5lcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9TZW1pMi13aW5uZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fRmluYWwtd2lubmVyBQAAAANuaWwJAAACAAAAAQIAAAAKT25seSBhZG1pbgAAAAFpAQAAAAlldmFsU2NvcmUAAAABAAAAB2FkZHJlc3MEAAAACmdyb3VwU2NvcmUJAQAAAApldmFsR3JvdXBzAAAAAQUAAAAHYWRkcmVzcwQAAAAKZ3JvdXBCb251cwMJAAAAAAAAAgUAAAAKZ3JvdXBTY29yZQAAAAAAAAAACAAAAAAAAAAAlgAAAAAAAAAAZAQAAAAJb2N0b1Njb3JlCQEAAAAIZXZhbE9jdG8AAAABBQAAAAdhZGRyZXNzBAAAAAlvY3RvQm9udXMDCQAAAAAAAAIFAAAACW9jdG9TY29yZQAAAAAAAAAACAAAAAAAAAAAeAAAAAAAAAAAZAQAAAAMcXVhcnRlclNjb3JlCQEAAAALZXZhbFF1YXJ0ZXIAAAABBQAAAAdhZGRyZXNzBAAAAAxxdWFydGVyQm9udXMDCQAAAAAAAAIFAAAADHF1YXJ0ZXJTY29yZQAAAAAAAAAABAAAAAAAAAAAfQAAAAAAAAAAZAQAAAAJc2VtaVNjb3JlCQEAAAAIZXZhbFNlbWkAAAABBQAAAAdhZGRyZXNzBAAAAAlzZW1pQm9udXMDCQAAAAAAAAIFAAAACXNlbWlTY29yZQAAAAAAAAAAAgAAAAAAAAAAlgAAAAAAAAAAZAQAAAAKZmluYWxTY29yZQkBAAAACWV2YWxGaW5hbAAAAAEFAAAAB2FkZHJlc3MEAAAACmZpbmFsQm9udXMDCQAAAAAAAAIFAAAACmZpbmFsU2NvcmUAAAAAAAAAAAEAAAAAAAAAAMgAAAAAAAAAAGQEAAAAB2JvbnVzZXMJAARMAAAAAgUAAAAKZ3JvdXBCb251cwkABEwAAAACBQAAAAlvY3RvQm9udXMJAARMAAAAAgUAAAAMcXVhcnRlclNjb3JlCQAETAAAAAIFAAAACXNlbWlCb251cwkABEwAAAACBQAAAApmaW5hbEJvbnVzBQAAAANuaWwEAAAACG1heEJvbnVzCQABlgAAAAEFAAAAB2JvbnVzZXMEAAAABXNjb3JlCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAACmdyb3VwU2NvcmUFAAAACW9jdG9TY29yZQUAAAAMcXVhcnRlclNjb3JlBQAAAAlzZW1pU2NvcmUFAAAACmZpbmFsU2NvcmUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGU2NvcmUgCQABpAAAAAEFAAAABXNjb3JlAgAAAAwsIG1heEJvbnVzOiAJAAGkAAAAAQUAAAAIbWF4Qm9udXMAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQaGWfw=", "height": 2324609, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8swihgt33e3E7pFdprPwhvyxu7mS7JmSDeEp4gmsZeMa Next: BRhBqkEcHgCZvG9Z9v4QkG7Rv4B2AGRw94s53VqkzqcL Diff:
OldNewDifferences
2323
2424 let keysSemi = ["Semi1-winner", "Semi2-winner"]
2525
26-let keysFinal = "Final-winner"
26+let keyFinal = "Final-winner"
2727
2828 func getAssetString (assetId) = match assetId {
2929 case b: ByteVector =>
104104 func groupsAddressKeys (address) = [combo(address, keysGroup[0]), combo(address, keysGroup[1]), combo(address, keysGroup[2]), combo(address, keysGroup[3]), combo(address, keysGroup[4]), combo(address, keysGroup[5]), combo(address, keysGroup[6]), combo(address, keysGroup[7]), combo(address, keysGroup[8]), combo(address, keysGroup[9]), combo(address, keysGroup[10]), combo(address, keysGroup[11]), combo(address, keysGroup[12]), combo(address, keysGroup[13]), combo(address, keysGroup[14]), combo(address, keysGroup[15])]
105105
106106
107+func octoAddressKeys (address) = [combo(address, keysOcto[0]), combo(address, keysOcto[1]), combo(address, keysOcto[2]), combo(address, keysOcto[3]), combo(address, keysOcto[4]), combo(address, keysOcto[5]), combo(address, keysOcto[6]), combo(address, keysOcto[7])]
108+
109+
110+func quarterAddressKeys (address) = [combo(address, keysQuarter[0]), combo(address, keysQuarter[1]), combo(address, keysQuarter[2]), combo(address, keysQuarter[3])]
111+
112+
113+func semiAddressKeys (address) = [combo(address, keysSemi[0]), combo(address, keysSemi[1])]
114+
115+
107116 func evalGroups (address) = {
108- let groupAddrKeys = groupsAddressKeys(address)
109- let $l = groupAddrKeys
117+ let addrKeys = groupsAddressKeys(address)
118+ let $l = addrKeys
110119 let $s = size($l)
111120 let $acc0 = 0
112121 func $f0_1 ($a,$i) = if (($i >= $s))
118127 else throw("List size exceeds 16")
119128
120129 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16)
130+ }
131+
132+
133+func evalOcto (address) = {
134+ let addrKeys = octoAddressKeys(address)
135+ let $l = addrKeys
136+ let $s = size($l)
137+ let $acc0 = 0
138+ func $f0_1 ($a,$i) = if (($i >= $s))
139+ then $a
140+ else checkHandler($a, $l[$i])
141+
142+ func $f0_2 ($a,$i) = if (($i >= $s))
143+ then $a
144+ else throw("List size exceeds 8")
145+
146+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
147+ }
148+
149+
150+func evalQuarter (address) = {
151+ let addrKeys = quarterAddressKeys(address)
152+ let $l = addrKeys
153+ let $s = size($l)
154+ let $acc0 = 0
155+ func $f0_1 ($a,$i) = if (($i >= $s))
156+ then $a
157+ else checkHandler($a, $l[$i])
158+
159+ func $f0_2 ($a,$i) = if (($i >= $s))
160+ then $a
161+ else throw("List size exceeds 4")
162+
163+ $f0_2($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4)
164+ }
165+
166+
167+func evalSemi (address) = {
168+ let addrKeys = semiAddressKeys(address)
169+ let $l = addrKeys
170+ let $s = size($l)
171+ let $acc0 = 0
172+ func $f0_1 ($a,$i) = if (($i >= $s))
173+ then $a
174+ else checkHandler($a, $l[$i])
175+
176+ func $f0_2 ($a,$i) = if (($i >= $s))
177+ then $a
178+ else throw("List size exceeds 2")
179+
180+ $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
181+ }
182+
183+
184+func evalFinal (address) = {
185+ let addrKey = combo(address, keyFinal)
186+ let baseKey = keyFinal
187+ let resultR = tryGetResult(baseKey)
188+ if ((resultR == resultR))
189+ then {
190+ let guessR = tryGetString(addrKey)
191+ if ((guessR == guessR))
192+ then if ((resultR == guessR))
193+ then 1
194+ else 0
195+ else throw("Strict value is not equal to itself.")
196+ }
197+ else throw("Strict value is not equal to itself.")
121198 }
122199
123200
191268 @Callable(i)
192269 func evalScore (address) = {
193270 let groupScore = evalGroups(address)
194- throw(("Score " + toString(groupScore)))
271+ let groupBonus = if ((groupScore == 8))
272+ then 150
273+ else 100
274+ let octoScore = evalOcto(address)
275+ let octoBonus = if ((octoScore == 8))
276+ then 120
277+ else 100
278+ let quarterScore = evalQuarter(address)
279+ let quarterBonus = if ((quarterScore == 4))
280+ then 125
281+ else 100
282+ let semiScore = evalSemi(address)
283+ let semiBonus = if ((semiScore == 2))
284+ then 150
285+ else 100
286+ let finalScore = evalFinal(address)
287+ let finalBonus = if ((finalScore == 1))
288+ then 200
289+ else 100
290+ let bonuses = [groupBonus, octoBonus, quarterScore, semiBonus, finalBonus]
291+ let maxBonus = max(bonuses)
292+ let score = ((((groupScore + octoScore) + quarterScore) + semiScore) + finalScore)
293+ throw(((("Score " + toString(score)) + ", maxBonus: ") + toString(maxBonus)))
195294 }
196295
197296
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let admin = "7Tt74r8R7auTBTd6rJMA4qYr9WDWjc2SUHHSrRMw9Brs"
55
66 let resultContract = "3NCnEUNnJXz57QWAMYnZBu3SqW4txog1XeD"
77
88 let betAmountKey = "global_betAmount"
99
1010 let deadlineKey = "global_deadline_h"
1111
1212 let scale = 100000000
1313
1414 let fee = 250
1515
1616 let feescale = 10000
1717
1818 let keysGroup = ["GroupA-1st", "GroupA-2nd", "GroupB-1st", "GroupB-2nd", "GroupC-1st", "GroupC-2nd", "GroupD-1st", "GroupD-2nd", "GroupE-1st", "GroupE-2nd", "GroupF-1st", "GroupF-2nd", "GroupG-1st", "GroupG-2nd", "GroupH-1st", "GroupH-2nd"]
1919
2020 let keysOcto = ["Octo1-winner", "Octo2-winner", "Octo3-winner", "Octo4-winner", "Octo5-winner", "Octo6-winner", "Octo7-winner", "Octo8-winner"]
2121
2222 let keysQuarter = ["Quarter1-winner", "Quarter2-winner", "Quarter3-winner", "Quarter4-winner"]
2323
2424 let keysSemi = ["Semi1-winner", "Semi2-winner"]
2525
26-let keysFinal = "Final-winner"
26+let keyFinal = "Final-winner"
2727
2828 func getAssetString (assetId) = match assetId {
2929 case b: ByteVector =>
3030 toBase58String(b)
3131 case _ =>
3232 "WAVES"
3333 }
3434
3535
3636 func getAssetBytes (assetId) = if ((assetId == "WAVES"))
3737 then unit
3838 else fromBase58String(assetId)
3939
4040
4141 func tryGetInteger (key) = match getInteger(this, key) {
4242 case i: Int =>
4343 i
4444 case _ =>
4545 0
4646 }
4747
4848
4949 func tryGetBoolean (key) = match getBoolean(this, key) {
5050 case b: Boolean =>
5151 b
5252 case _ =>
5353 false
5454 }
5555
5656
5757 func tryGetString (key) = match getString(this, key) {
5858 case s: String =>
5959 s
6060 case _ =>
6161 ""
6262 }
6363
6464
6565 func tryGetResult (key) = match getString(addressFromStringValue(resultContract), key) {
6666 case s: String =>
6767 s
6868 case _ =>
6969 ""
7070 }
7171
7272
7373 func allow (callerPBK) = (toBase58String(callerPBK) == admin)
7474
7575
7676 func isBet (address) = tryGetBoolean((address + "_betted"))
7777
7878
7979 func getBetAmount () = tryGetInteger(betAmountKey)
8080
8181
8282 func getDeadLine () = tryGetInteger(deadlineKey)
8383
8484
8585 func checkHandler (accum,keyStr) = {
8686 let baseKey = split(keyStr, "_")[1]
8787 let resultR = tryGetResult(baseKey)
8888 if ((resultR == resultR))
8989 then {
9090 let guessR = tryGetString(keyStr)
9191 if ((guessR == guessR))
9292 then (accum + (if ((resultR == guessR))
9393 then 1
9494 else 0))
9595 else throw("Strict value is not equal to itself.")
9696 }
9797 else throw("Strict value is not equal to itself.")
9898 }
9999
100100
101101 func combo (address,key) = ((address + "_") + key)
102102
103103
104104 func groupsAddressKeys (address) = [combo(address, keysGroup[0]), combo(address, keysGroup[1]), combo(address, keysGroup[2]), combo(address, keysGroup[3]), combo(address, keysGroup[4]), combo(address, keysGroup[5]), combo(address, keysGroup[6]), combo(address, keysGroup[7]), combo(address, keysGroup[8]), combo(address, keysGroup[9]), combo(address, keysGroup[10]), combo(address, keysGroup[11]), combo(address, keysGroup[12]), combo(address, keysGroup[13]), combo(address, keysGroup[14]), combo(address, keysGroup[15])]
105105
106106
107+func octoAddressKeys (address) = [combo(address, keysOcto[0]), combo(address, keysOcto[1]), combo(address, keysOcto[2]), combo(address, keysOcto[3]), combo(address, keysOcto[4]), combo(address, keysOcto[5]), combo(address, keysOcto[6]), combo(address, keysOcto[7])]
108+
109+
110+func quarterAddressKeys (address) = [combo(address, keysQuarter[0]), combo(address, keysQuarter[1]), combo(address, keysQuarter[2]), combo(address, keysQuarter[3])]
111+
112+
113+func semiAddressKeys (address) = [combo(address, keysSemi[0]), combo(address, keysSemi[1])]
114+
115+
107116 func evalGroups (address) = {
108- let groupAddrKeys = groupsAddressKeys(address)
109- let $l = groupAddrKeys
117+ let addrKeys = groupsAddressKeys(address)
118+ let $l = addrKeys
110119 let $s = size($l)
111120 let $acc0 = 0
112121 func $f0_1 ($a,$i) = if (($i >= $s))
113122 then $a
114123 else checkHandler($a, $l[$i])
115124
116125 func $f0_2 ($a,$i) = if (($i >= $s))
117126 then $a
118127 else throw("List size exceeds 16")
119128
120129 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16)
130+ }
131+
132+
133+func evalOcto (address) = {
134+ let addrKeys = octoAddressKeys(address)
135+ let $l = addrKeys
136+ let $s = size($l)
137+ let $acc0 = 0
138+ func $f0_1 ($a,$i) = if (($i >= $s))
139+ then $a
140+ else checkHandler($a, $l[$i])
141+
142+ func $f0_2 ($a,$i) = if (($i >= $s))
143+ then $a
144+ else throw("List size exceeds 8")
145+
146+ $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
147+ }
148+
149+
150+func evalQuarter (address) = {
151+ let addrKeys = quarterAddressKeys(address)
152+ let $l = addrKeys
153+ let $s = size($l)
154+ let $acc0 = 0
155+ func $f0_1 ($a,$i) = if (($i >= $s))
156+ then $a
157+ else checkHandler($a, $l[$i])
158+
159+ func $f0_2 ($a,$i) = if (($i >= $s))
160+ then $a
161+ else throw("List size exceeds 4")
162+
163+ $f0_2($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4)
164+ }
165+
166+
167+func evalSemi (address) = {
168+ let addrKeys = semiAddressKeys(address)
169+ let $l = addrKeys
170+ let $s = size($l)
171+ let $acc0 = 0
172+ func $f0_1 ($a,$i) = if (($i >= $s))
173+ then $a
174+ else checkHandler($a, $l[$i])
175+
176+ func $f0_2 ($a,$i) = if (($i >= $s))
177+ then $a
178+ else throw("List size exceeds 2")
179+
180+ $f0_2($f0_1($f0_1($acc0, 0), 1), 2)
181+ }
182+
183+
184+func evalFinal (address) = {
185+ let addrKey = combo(address, keyFinal)
186+ let baseKey = keyFinal
187+ let resultR = tryGetResult(baseKey)
188+ if ((resultR == resultR))
189+ then {
190+ let guessR = tryGetString(addrKey)
191+ if ((guessR == guessR))
192+ then if ((resultR == guessR))
193+ then 1
194+ else 0
195+ else throw("Strict value is not equal to itself.")
196+ }
197+ else throw("Strict value is not equal to itself.")
121198 }
122199
123200
124201 @Callable(i)
125202 func setBetAmount (amount) = if (allow(i.callerPublicKey))
126203 then [IntegerEntry(betAmountKey, amount)]
127204 else throw("Only admin")
128205
129206
130207
131208 @Callable(i)
132209 func setDeadLine (deadlineHeight) = if (allow(i.callerPublicKey))
133210 then [IntegerEntry(deadlineKey, deadlineHeight)]
134211 else throw("Only admin")
135212
136213
137214
138215 @Callable(i)
139216 func makeBet (group_winners,group_second,octo_winners,quarter_winners,semi_winners,winner) = {
140217 let pmt = i.payments[0]
141218 let pmt_asset = pmt.assetId
142219 let pmt_amount = value(pmt.amount)
143220 let callerAddr = toString(i.caller)
144221 let betted = isBet(callerAddr)
145222 let deadline = getDeadLine()
146223 if ((deadline > height))
147224 then if (!(betted))
148225 then if ((getAssetString(pmt_asset) == "WAVES"))
149226 then {
150227 let betAmount = getBetAmount()
151228 if ((betAmount != 0))
152229 then if ((pmt_amount == betAmount))
153230 then {
154231 let groupWinners = split(group_winners, "_")
155232 let groupSecond = split(group_second, "_")
156233 let octoWinners = split(octo_winners, "_")
157234 let quarterWinners = split(quarter_winners, "_")
158235 let semiWinners = split(semi_winners, "_")
159236 if (if (if (if (if ((size(groupWinners) == 8))
160237 then (size(groupSecond) == 8)
161238 else false)
162239 then (size(octoWinners) == 8)
163240 else false)
164241 then (size(quarterWinners) == 4)
165242 else false)
166243 then (size(semiWinners) == 2)
167244 else false)
168245 then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), IntegerEntry((callerAddr + "_betAmount"), pmt_amount), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupSecond[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupSecond[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupSecond[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupSecond[7]), StringEntry((callerAddr + "_Octo1-winner"), octoWinners[0]), StringEntry((callerAddr + "_Octo2-winner"), octoWinners[1]), StringEntry((callerAddr + "_Octo3-winner"), octoWinners[2]), StringEntry((callerAddr + "_Octo4-winner"), octoWinners[3]), StringEntry((callerAddr + "_Octo5-winner"), octoWinners[4]), StringEntry((callerAddr + "_Octo6-winner"), octoWinners[5]), StringEntry((callerAddr + "_Octo7-winner"), octoWinners[6]), StringEntry((callerAddr + "_Octo8-winner"), octoWinners[7]), StringEntry((callerAddr + "_Quarter1-winner"), quarterWinners[0]), StringEntry((callerAddr + "_Quarter2-winner"), quarterWinners[1]), StringEntry((callerAddr + "_Quarter3-winner"), quarterWinners[2]), StringEntry((callerAddr + "_Quarter4-winner"), quarterWinners[3]), StringEntry((callerAddr + "_Semi1-winner"), semiWinners[0]), StringEntry((callerAddr + "_Semi2-winner"), semiWinners[1]), StringEntry((callerAddr + "_Final-winner"), winner)]
169246 else throw("Incorrect data arrived in arguments")
170247 }
171248 else throw((("Attach exactly " + toString(betAmount)) + " /100000000 Waves as payment"))
172249 else throw("Zero betAmount from contract storage")
173250 }
174251 else throw("Only Waves is allowed as payment asset to bet")
175252 else throw("Bet already made")
176253 else throw("Betting closed")
177254 }
178255
179256
180257
181258 @Callable(i)
182259 func deleteAddress (address) = {
183260 let callerAddr = address
184261 if (allow(i.callerPublicKey))
185262 then [DeleteEntry((callerAddr + "_betted")), DeleteEntry((callerAddr + "_height")), DeleteEntry((callerAddr + "_betAmount")), DeleteEntry((callerAddr + "_GroupA-1st")), DeleteEntry((callerAddr + "_GroupA-2nd")), DeleteEntry((callerAddr + "_GroupB-1st")), DeleteEntry((callerAddr + "_GroupB-2nd")), DeleteEntry((callerAddr + "_GroupC-1st")), DeleteEntry((callerAddr + "_GroupC-2nd")), DeleteEntry((callerAddr + "_GroupD-1st")), DeleteEntry((callerAddr + "_GroupD-2nd")), DeleteEntry((callerAddr + "_GroupE-1st")), DeleteEntry((callerAddr + "_GroupE-2nd")), DeleteEntry((callerAddr + "_GroupF-1st")), DeleteEntry((callerAddr + "_GroupF-2nd")), DeleteEntry((callerAddr + "_GroupG-1st")), DeleteEntry((callerAddr + "_GroupG-2nd")), DeleteEntry((callerAddr + "_GroupH-1st")), DeleteEntry((callerAddr + "_GroupH-2nd")), DeleteEntry((callerAddr + "_Octo1-winner")), DeleteEntry((callerAddr + "_Octo2-winner")), DeleteEntry((callerAddr + "_Octo3-winner")), DeleteEntry((callerAddr + "_Octo4-winner")), DeleteEntry((callerAddr + "_Octo5-winner")), DeleteEntry((callerAddr + "_Octo6-winner")), DeleteEntry((callerAddr + "_Octo7-winner")), DeleteEntry((callerAddr + "_Octo8-winner")), DeleteEntry((callerAddr + "_Quarter1-winner")), DeleteEntry((callerAddr + "_Quarter2-winner")), DeleteEntry((callerAddr + "_Quarter3-winner")), DeleteEntry((callerAddr + "_Quarter4-winner")), DeleteEntry((callerAddr + "_Semi1-winner")), DeleteEntry((callerAddr + "_Semi2-winner")), DeleteEntry((callerAddr + "_Final-winner"))]
186263 else throw("Only admin")
187264 }
188265
189266
190267
191268 @Callable(i)
192269 func evalScore (address) = {
193270 let groupScore = evalGroups(address)
194- throw(("Score " + toString(groupScore)))
271+ let groupBonus = if ((groupScore == 8))
272+ then 150
273+ else 100
274+ let octoScore = evalOcto(address)
275+ let octoBonus = if ((octoScore == 8))
276+ then 120
277+ else 100
278+ let quarterScore = evalQuarter(address)
279+ let quarterBonus = if ((quarterScore == 4))
280+ then 125
281+ else 100
282+ let semiScore = evalSemi(address)
283+ let semiBonus = if ((semiScore == 2))
284+ then 150
285+ else 100
286+ let finalScore = evalFinal(address)
287+ let finalBonus = if ((finalScore == 1))
288+ then 200
289+ else 100
290+ let bonuses = [groupBonus, octoBonus, quarterScore, semiBonus, finalBonus]
291+ let maxBonus = max(bonuses)
292+ let score = ((((groupScore + octoScore) + quarterScore) + semiScore) + finalScore)
293+ throw(((("Score " + toString(score)) + ", maxBonus: ") + toString(maxBonus)))
195294 }
196295
197296
198297 @Verifier(tx)
199298 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
200299

github/deemru/w8io/169f3d6 
43.53 ms