tx · 6ZedKy5ddrUPpyUNZKcwHhMciEU7yRo6HpiMxDB3TyKJ 3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL: -0.01400000 Waves 2022.11.14 14:28 [2316743] smart account 3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL > SELF 0.00000000 Waves
{ "type": 13, "id": "6ZedKy5ddrUPpyUNZKcwHhMciEU7yRo6HpiMxDB3TyKJ", "fee": 1400000, "feeAssetId": null, "timestamp": 1668425310507, "version": 2, "chainId": 84, "sender": "3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL", "senderPublicKey": "BefhVEanzhrtdYfeWquaoSsMZw3BEaEZZB86Kosqw7Qb", "proofs": [ "5MybYjMR3hqT6ijWuK5wS7r9CYvzASmVdRcHhenLxDm5YNWxxpQjW1eXJuFiqkP8zAwhmy7ktVLXZc79FuPDNstc" ], "script": "base64:AAIFAAAAAAAAABsIAhIDCgEBEgMKAQESCAoGCAgICAgIEgMKAQgAAAANAAAAAAVhZG1pbgIAAAAsQmVmaFZFYW56aHJ0ZFlmZVdxdWFvU3NNWnczQkVhRVpaQjg2S29zcXc3UWIAAAAADnJlc3VsdENvbnRyYWN0AgAAAAAAAAAADGJldEFtb3VudEtleQIAAAAQZ2xvYmFsX2JldEFtb3VudAAAAAALZGVhZGxpbmVLZXkCAAAAEWdsb2JhbF9kZWFkbGluZV9oAAAAAAVzY2FsZQAAAAAABfXhAAEAAAAOZ2V0QXNzZXRTdHJpbmcAAAABAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAWIFAAAAByRtYXRjaDAJAAJYAAAAAQUAAAABYgIAAAAFV0FWRVMBAAAADWdldEFzc2V0Qnl0ZXMAAAABAAAAB2Fzc2V0SWQDCQAAAAAAAAIFAAAAB2Fzc2V0SWQCAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAAB2Fzc2V0SWQBAAAADXRyeUdldEludGVnZXIAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABaQUAAAAHJG1hdGNoMAUAAAABaQAAAAAAAAAAAAEAAAANdHJ5R2V0Qm9vbGVhbgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgcBAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwBQAAAAFzAgAAAAABAAAABWFsbG93AAAAAQAAAAljYWxsZXJQQksJAAAAAAAAAgkAAlgAAAABBQAAAAljYWxsZXJQQksFAAAABWFkbWluAQAAAAVpc0JldAAAAAEAAAAHYWRkcmVzcwkBAAAADXRyeUdldEJvb2xlYW4AAAABCQABLAAAAAIFAAAAB2FkZHJlc3MCAAAAB19iZXR0ZWQBAAAADGdldEJldEFtb3VudAAAAAAJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAMYmV0QW1vdW50S2V5AAAABAAAAAFpAQAAAAxzZXRCZXRBbW91bnQAAAABAAAABmFtb3VudAMJAQAAAAVhbGxvdwAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMYmV0QW1vdW50S2V5BQAAAAZhbW91bnQFAAAAA25pbAkAAAIAAAABAgAAAApPbmx5IGFkbWluAAAAAWkBAAAAC3NldERlYWRMaW5lAAAAAQAAAA5kZWFkbGluZUhlaWdodAMJAQAAAAVhbGxvdwAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALZGVhZGxpbmVLZXkFAAAADmRlYWRsaW5lSGVpZ2h0BQAAAANuaWwJAAACAAAAAQIAAAAKT25seSBhZG1pbgAAAAFpAQAAAAdtYWtlQmV0AAAABgAAAA1ncm91cF93aW5uZXJzAAAADGdyb3VwX3NlY29uZAAAAAxvY3RvX3dpbm5lcnMAAAAPcXVhcnRlcl93aW5uZXJzAAAADHNlbWlfd2lubmVycwAAAAZ3aW5uZXIEAAAAA3BtdAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAJcG10X2Fzc2V0CQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAACnBtdF9hbW91bnQJAQAAAAV2YWx1ZQAAAAEIBQAAAANwbXQAAAAGYW1vdW50BAAAAApjYWxsZXJBZGRyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAGYmV0dGVkCQEAAAAFaXNCZXQAAAABBQAAAApjYWxsZXJBZGRyAwkBAAAAASEAAAABBQAAAAZiZXR0ZWQDCQAAAAAAAAIJAQAAAA5nZXRBc3NldFN0cmluZwAAAAEFAAAACXBtdF9hc3NldAIAAAAFV0FWRVMEAAAACWJldEFtb3VudAkBAAAADGdldEJldEFtb3VudAAAAAADCQEAAAACIT0AAAACBQAAAAliZXRBbW91bnQAAAAAAAAAAAADCQAAAAAAAAIFAAAACnBtdF9hbW91bnQFAAAACWJldEFtb3VudAQAAAAMZ3JvdXBXaW5uZXJzCQAEtQAAAAIFAAAADWdyb3VwX3dpbm5lcnMCAAAAAV8EAAAAC2dyb3VwU2Vjb25kCQAEtQAAAAIFAAAADGdyb3VwX3NlY29uZAIAAAABXwQAAAALb2N0b1dpbm5lcnMJAAS1AAAAAgUAAAAMb2N0b193aW5uZXJzAgAAAAFfBAAAAA5xdWFydGVyV2lubmVycwkABLUAAAACBQAAAA9xdWFydGVyX3dpbm5lcnMCAAAAAV8EAAAAC3NlbWlXaW5uZXJzCQAEtQAAAAIFAAAADHNlbWlfd2lubmVycwIAAAABXwMDAwMDCQAAAAAAAAIJAAGQAAAAAQUAAAAMZ3JvdXBXaW5uZXJzAAAAAAAAAAAICQAAAAAAAAIJAAGQAAAAAQUAAAALZ3JvdXBTZWNvbmQAAAAAAAAAAAgHCQAAAAAAAAIJAAGQAAAAAQUAAAALb2N0b1dpbm5lcnMAAAAAAAAAAAgHCQAAAAAAAAIJAAGQAAAAAQUAAAAOcXVhcnRlcldpbm5lcnMAAAAAAAAAAAQHCQAAAAAAAAIJAAGQAAAAAQUAAAALc2VtaVdpbm5lcnMAAAAAAAAAAAIHCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAB19iZXR0ZWQGCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAB19oZWlnaHQFAAAABmhlaWdodAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEEtMXN0CQABkQAAAAIFAAAADGdyb3VwV2lubmVycwAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEEtMm5kCQABkQAAAAIFAAAAC2dyb3VwU2Vjb25kAAAAAAAAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwQi0xc3QJAAGRAAAAAgUAAAAMZ3JvdXBXaW5uZXJzAAAAAAAAAAABCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwQi0ybmQJAAGRAAAAAgUAAAAMZ3JvdXBXaW5uZXJzAAAAAAAAAAABCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwQy0xc3QJAAGRAAAAAgUAAAAMZ3JvdXBXaW5uZXJzAAAAAAAAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwQy0ybmQJAAGRAAAAAgUAAAALZ3JvdXBTZWNvbmQAAAAAAAAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBELTFzdAkAAZEAAAACBQAAAAxncm91cFdpbm5lcnMAAAAAAAAAAAMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBELTJuZAkAAZEAAAACBQAAAAxncm91cFdpbm5lcnMAAAAAAAAAAAMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBFLTFzdAkAAZEAAAACBQAAAAxncm91cFdpbm5lcnMAAAAAAAAAAAQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBFLTJuZAkAAZEAAAACBQAAAAtncm91cFNlY29uZAAAAAAAAAAABAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEYtMXN0CQABkQAAAAIFAAAADGdyb3VwV2lubmVycwAAAAAAAAAABQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEYtMm5kCQABkQAAAAIFAAAADGdyb3VwV2lubmVycwAAAAAAAAAABQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEctMXN0CQABkQAAAAIFAAAADGdyb3VwV2lubmVycwAAAAAAAAAABgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEctMm5kCQABkQAAAAIFAAAAC2dyb3VwU2Vjb25kAAAAAAAAAAAGCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwSC0xc3QJAAGRAAAAAgUAAAAMZ3JvdXBXaW5uZXJzAAAAAAAAAAAHCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwSC0ybmQJAAGRAAAAAgUAAAAMZ3JvdXBXaW5uZXJzAAAAAAAAAAAHCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG8xLXdpbm5lcgkAAZEAAAACBQAAAAtvY3RvV2lubmVycwAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvMi13aW5uZXIJAAGRAAAAAgUAAAALb2N0b1dpbm5lcnMAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fT2N0bzMtd2lubmVyCQABkQAAAAIFAAAAC29jdG9XaW5uZXJzAAAAAAAAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG80LXdpbm5lcgkAAZEAAAACBQAAAAtvY3RvV2lubmVycwAAAAAAAAAAAwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvNS13aW5uZXIJAAGRAAAAAgUAAAALb2N0b1dpbm5lcnMAAAAAAAAAAAQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fT2N0bzYtd2lubmVyCQABkQAAAAIFAAAAC29jdG9XaW5uZXJzAAAAAAAAAAAFCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG83LXdpbm5lcgkAAZEAAAACBQAAAAtvY3RvV2lubmVycwAAAAAAAAAABgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvOC13aW5uZXIJAAGRAAAAAgUAAAALb2N0b1dpbm5lcnMAAAAAAAAAAAcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAABBfUXVhcnRlcjEtd2lubmVyCQABkQAAAAIFAAAADnF1YXJ0ZXJXaW5uZXJzAAAAAAAAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAAQX1F1YXJ0ZXIyLXdpbm5lcgkAAZEAAAACBQAAAA5xdWFydGVyV2lubmVycwAAAAAAAAAAAQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAEF9RdWFydGVyMy13aW5uZXIJAAGRAAAAAgUAAAAOcXVhcnRlcldpbm5lcnMAAAAAAAAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAABBfUXVhcnRlcjQtd2lubmVyCQABkQAAAAIFAAAADnF1YXJ0ZXJXaW5uZXJzAAAAAAAAAAADCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX1NlbWkxLXdpbm5lcgkAAZEAAAACBQAAAAtzZW1pV2lubmVycwAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9TZW1pMi13aW5uZXIJAAGRAAAAAgUAAAALc2VtaVdpbm5lcnMAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAxGaW5hbC13aW5uZXIFAAAABndpbm5lcgUAAAADbmlsCQAAAgAAAAECAAAAI0luY29ycmVjdCBkYXRhIGFycml2ZWQgaW4gYXJndW1lbnRzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAA9BdHRhY2ggZXhhY3RseSAJAAGkAAAAAQUAAAAJYmV0QW1vdW50AgAAABwgLzEwMDAwMDAwMCBXYXZlcyBhcyBwYXltZW50CQAAAgAAAAECAAAAJFplcm8gYmV0QW1vdW50IGZyb20gY29udHJhY3Qgc3RvcmFnZQkAAAIAAAABAgAAAC1Pbmx5IFdhdmVzIGlzIGFsbG93ZWQgYXMgcGF5bWVudCBhc3NldCB0byBiZXQJAAACAAAAAQIAAAAQQmV0IGFscmVhZHkgbWFkZQAAAAFpAQAAAA1kZWxldGVBZGRyZXNzAAAAAQAAAAdhZGRyZXNzBAAAAApjYWxsZXJBZGRyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgMJAQAAAAVhbGxvdwAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAB19iZXR0ZWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAdfaGVpZ2h0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwQS0xc3QJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBBLTJuZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEItMXN0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwQi0ybmQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBDLTFzdAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEMtMm5kCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwRC0xc3QJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBELTJuZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEUtMXN0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwRS0ybmQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBGLTFzdAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEYtMm5kCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwRy0xc3QJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAAtfR3JvdXBHLTJuZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAC19Hcm91cEgtMXN0CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAALX0dyb3VwSC0ybmQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fT2N0bzEtd2lubmVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG8yLXdpbm5lcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvMy13aW5uZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fT2N0bzQtd2lubmVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG81LXdpbm5lcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADV9PY3RvNi13aW5uZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fT2N0bzctd2lubmVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX09jdG84LXdpbm5lcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAEF9RdWFydGVyMS13aW5uZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAABBfUXVhcnRlcjItd2lubmVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAAQX1F1YXJ0ZXIzLXdpbm5lcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAAEF9RdWFydGVyNC13aW5uZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAApjYWxsZXJBZGRyAgAAAA1fU2VtaTEtd2lubmVyCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgUAAAAKY2FsbGVyQWRkcgIAAAANX1NlbWkyLXdpbm5lcgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAIFAAAACmNhbGxlckFkZHICAAAADEZpbmFsLXdpbm5lcgUAAAADbmlsCQAAAgAAAAECAAAACk9ubHkgYWRtaW4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleahrYS8=", "height": 2316743, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C2uUEFgyxQazoPp1iwJYPiqPsCdwLQNDF27Wc6WJ4Yro Next: 8NiydrX6aUyhUYzBANfeJ2Eb5VT8BwGKe7KNA2MiKbaK Diff:
Old | New | Differences | |
---|---|---|---|
83 | 83 | then { | |
84 | 84 | let betAmount = getBetAmount() | |
85 | 85 | if ((betAmount != 0)) | |
86 | - | then if ((pmt_amount == | |
86 | + | then if ((pmt_amount == betAmount)) | |
87 | 87 | then { | |
88 | 88 | let groupWinners = split(group_winners, "_") | |
89 | 89 | let groupSecond = split(group_second, "_") | |
102 | 102 | then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupWinners[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupWinners[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupWinners[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupWinners[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)] | |
103 | 103 | else throw("Incorrect data arrived in arguments") | |
104 | 104 | } | |
105 | - | else throw((("Attach exactly " + toString(betAmount)) + " Waves as payment")) | |
105 | + | else throw((("Attach exactly " + toString(betAmount)) + " /100000000 Waves as payment")) | |
106 | 106 | else throw("Zero betAmount from contract storage") | |
107 | 107 | } | |
108 | 108 | else throw("Only Waves is allowed as payment asset to bet") | |
109 | 109 | else throw("Bet already made") | |
110 | + | } | |
111 | + | ||
112 | + | ||
113 | + | ||
114 | + | @Callable(i) | |
115 | + | func deleteAddress (address) = { | |
116 | + | let callerAddr = toString(i.caller) | |
117 | + | if (allow(i.callerPublicKey)) | |
118 | + | then [DeleteEntry((callerAddr + "_betted")), DeleteEntry((callerAddr + "_height")), 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"))] | |
119 | + | else throw("Only admin") | |
110 | 120 | } | |
111 | 121 | ||
112 | 122 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let admin = "BefhVEanzhrtdYfeWquaoSsMZw3BEaEZZB86Kosqw7Qb" | |
5 | 5 | ||
6 | 6 | let resultContract = "" | |
7 | 7 | ||
8 | 8 | let betAmountKey = "global_betAmount" | |
9 | 9 | ||
10 | 10 | let deadlineKey = "global_deadline_h" | |
11 | 11 | ||
12 | 12 | let scale = 100000000 | |
13 | 13 | ||
14 | 14 | func getAssetString (assetId) = match assetId { | |
15 | 15 | case b: ByteVector => | |
16 | 16 | toBase58String(b) | |
17 | 17 | case _ => | |
18 | 18 | "WAVES" | |
19 | 19 | } | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func getAssetBytes (assetId) = if ((assetId == "WAVES")) | |
23 | 23 | then unit | |
24 | 24 | else fromBase58String(assetId) | |
25 | 25 | ||
26 | 26 | ||
27 | 27 | func tryGetInteger (key) = match getInteger(this, key) { | |
28 | 28 | case i: Int => | |
29 | 29 | i | |
30 | 30 | case _ => | |
31 | 31 | 0 | |
32 | 32 | } | |
33 | 33 | ||
34 | 34 | ||
35 | 35 | func tryGetBoolean (key) = match getBoolean(this, key) { | |
36 | 36 | case b: Boolean => | |
37 | 37 | b | |
38 | 38 | case _ => | |
39 | 39 | false | |
40 | 40 | } | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func tryGetString (key) = match getString(this, key) { | |
44 | 44 | case s: String => | |
45 | 45 | s | |
46 | 46 | case _ => | |
47 | 47 | "" | |
48 | 48 | } | |
49 | 49 | ||
50 | 50 | ||
51 | 51 | func allow (callerPBK) = (toBase58String(callerPBK) == admin) | |
52 | 52 | ||
53 | 53 | ||
54 | 54 | func isBet (address) = tryGetBoolean((address + "_betted")) | |
55 | 55 | ||
56 | 56 | ||
57 | 57 | func getBetAmount () = tryGetInteger(betAmountKey) | |
58 | 58 | ||
59 | 59 | ||
60 | 60 | @Callable(i) | |
61 | 61 | func setBetAmount (amount) = if (allow(i.callerPublicKey)) | |
62 | 62 | then [IntegerEntry(betAmountKey, amount)] | |
63 | 63 | else throw("Only admin") | |
64 | 64 | ||
65 | 65 | ||
66 | 66 | ||
67 | 67 | @Callable(i) | |
68 | 68 | func setDeadLine (deadlineHeight) = if (allow(i.callerPublicKey)) | |
69 | 69 | then [IntegerEntry(deadlineKey, deadlineHeight)] | |
70 | 70 | else throw("Only admin") | |
71 | 71 | ||
72 | 72 | ||
73 | 73 | ||
74 | 74 | @Callable(i) | |
75 | 75 | func makeBet (group_winners,group_second,octo_winners,quarter_winners,semi_winners,winner) = { | |
76 | 76 | let pmt = i.payments[0] | |
77 | 77 | let pmt_asset = value(pmt.assetId) | |
78 | 78 | let pmt_amount = value(pmt.amount) | |
79 | 79 | let callerAddr = toString(i.caller) | |
80 | 80 | let betted = isBet(callerAddr) | |
81 | 81 | if (!(betted)) | |
82 | 82 | then if ((getAssetString(pmt_asset) == "WAVES")) | |
83 | 83 | then { | |
84 | 84 | let betAmount = getBetAmount() | |
85 | 85 | if ((betAmount != 0)) | |
86 | - | then if ((pmt_amount == | |
86 | + | then if ((pmt_amount == betAmount)) | |
87 | 87 | then { | |
88 | 88 | let groupWinners = split(group_winners, "_") | |
89 | 89 | let groupSecond = split(group_second, "_") | |
90 | 90 | let octoWinners = split(octo_winners, "_") | |
91 | 91 | let quarterWinners = split(quarter_winners, "_") | |
92 | 92 | let semiWinners = split(semi_winners, "_") | |
93 | 93 | if (if (if (if (if ((size(groupWinners) == 8)) | |
94 | 94 | then (size(groupSecond) == 8) | |
95 | 95 | else false) | |
96 | 96 | then (size(octoWinners) == 8) | |
97 | 97 | else false) | |
98 | 98 | then (size(quarterWinners) == 4) | |
99 | 99 | else false) | |
100 | 100 | then (size(semiWinners) == 2) | |
101 | 101 | else false) | |
102 | 102 | then [BooleanEntry((callerAddr + "_betted"), true), IntegerEntry((callerAddr + "_height"), height), StringEntry((callerAddr + "_GroupA-1st"), groupWinners[0]), StringEntry((callerAddr + "_GroupA-2nd"), groupSecond[0]), StringEntry((callerAddr + "_GroupB-1st"), groupWinners[1]), StringEntry((callerAddr + "_GroupB-2nd"), groupWinners[1]), StringEntry((callerAddr + "_GroupC-1st"), groupWinners[2]), StringEntry((callerAddr + "_GroupC-2nd"), groupSecond[2]), StringEntry((callerAddr + "_GroupD-1st"), groupWinners[3]), StringEntry((callerAddr + "_GroupD-2nd"), groupWinners[3]), StringEntry((callerAddr + "_GroupE-1st"), groupWinners[4]), StringEntry((callerAddr + "_GroupE-2nd"), groupSecond[4]), StringEntry((callerAddr + "_GroupF-1st"), groupWinners[5]), StringEntry((callerAddr + "_GroupF-2nd"), groupWinners[5]), StringEntry((callerAddr + "_GroupG-1st"), groupWinners[6]), StringEntry((callerAddr + "_GroupG-2nd"), groupSecond[6]), StringEntry((callerAddr + "_GroupH-1st"), groupWinners[7]), StringEntry((callerAddr + "_GroupH-2nd"), groupWinners[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)] | |
103 | 103 | else throw("Incorrect data arrived in arguments") | |
104 | 104 | } | |
105 | - | else throw((("Attach exactly " + toString(betAmount)) + " Waves as payment")) | |
105 | + | else throw((("Attach exactly " + toString(betAmount)) + " /100000000 Waves as payment")) | |
106 | 106 | else throw("Zero betAmount from contract storage") | |
107 | 107 | } | |
108 | 108 | else throw("Only Waves is allowed as payment asset to bet") | |
109 | 109 | else throw("Bet already made") | |
110 | + | } | |
111 | + | ||
112 | + | ||
113 | + | ||
114 | + | @Callable(i) | |
115 | + | func deleteAddress (address) = { | |
116 | + | let callerAddr = toString(i.caller) | |
117 | + | if (allow(i.callerPublicKey)) | |
118 | + | then [DeleteEntry((callerAddr + "_betted")), DeleteEntry((callerAddr + "_height")), 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"))] | |
119 | + | else throw("Only admin") | |
110 | 120 | } | |
111 | 121 | ||
112 | 122 | ||
113 | 123 | @Verifier(tx) | |
114 | 124 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
115 | 125 |
github/deemru/w8io/026f985 31.15 ms ◑