tx · GNATrKYNErMhFtZDF94NqbPNDqT4yh5o6c2FXHSCp7yv

3MubWDh8QZSAZXZrcDTN77FaNqYbu2A27q7:  -0.01000000 Waves

2021.11.12 18:23 [1787965] smart account 3MubWDh8QZSAZXZrcDTN77FaNqYbu2A27q7 > SELF 0.00000000 Waves

{ "type": 13, "id": "GNATrKYNErMhFtZDF94NqbPNDqT4yh5o6c2FXHSCp7yv", "fee": 1000000, "feeAssetId": null, "timestamp": 1636730632568, "version": 2, "chainId": 84, "sender": "3MubWDh8QZSAZXZrcDTN77FaNqYbu2A27q7", "senderPublicKey": "3ZfZgshqbuvUyvrGqGcuWsgVSkHUiZ1jMvhEdrje5sbD", "proofs": [ "4adrSGEqS5ypbCQtxxcVk1TfwBYTA3wf3uonT4NYeifm7b2KYajjSvgbHzGnuNLYMKaZPUNai2sNHCogqm6tNkDi" ], "script": "base64:AAIDAAAAAAAAADAIARIECgIBCBIDCgEBEgQKAggBEgMKAQESAwoBARIAEgASAwoBAhIDCgEBEgMKAQEAAABAAAAAAAljb3B5cmlnaHQCAAAAHkNvcHlyaWdodCAoYykgMjAyMSBNYURhTWEgTGFicwAAAAAHY3JlYXRvcgIAAAAjQGRhaWRhbG9zIC0gdHdpdHRlci5jb20vdHdfZGFpZGFsb3MAAAAABHRlYW0CAAAAKk1hRGFNYSBMYWJzIGh0dHBzOi8vZ2l0bGFiLmNvbS9tYWRhbWFsYWJzLwAAAAAHbGljZW5zZQIAAAALTUlUIExpY2Vuc2UAAAAAC2xpY2Vuc2VMaW5rAgAAAD90bGRybGVnYWwuY29tL2xpY2Vuc2UvbWl0LWxpY2Vuc2UgLCBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQAAAAAD3NlcnZlclB1YmxpY0tleQEAAAAgc3T1lNFOfyWUGtWhPrqW5k+ckdzauaTEGrUWvbzTi1cAAAAACW15QXNzZXRJZAEAAAAgjrd9IrVH54+7N/SHMAwWQQfaMQ1q2CAD0IJt548LQIcAAAAABmZlZXRtcAkABBoAAAACBQAAAAR0aGlzAgAAAAVYX0ZFRQAAAAADZmVlAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAABmZlZXRtcAkBAAAABXZhbHVlAAAAAQUAAAAGZmVldG1wAAAAAAAAB6EgAAAAAAhVTklUWXRtcAkABBoAAAACBQAAAAR0aGlzAgAAAAdYX1VOSVRZAAAAAAVVTklUWQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAhVTklUWXRtcAkBAAAABXZhbHVlAAAAAQUAAAAIVU5JVFl0bXAAAAAAAAX14QAAAAAADnBlcmlvZEdhbWVQbGF5AAAAAAAAAAACAAAAAAV3aGVlbAkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAAjI0CQAETAAAAAICAAAAAjE2CQAETAAAAAICAAAAAjMzCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAACMjAJAARMAAAAAgIAAAACMTQJAARMAAAAAgIAAAACMzEJAARMAAAAAgIAAAABOQkABEwAAAACAgAAAAIyMgkABEwAAAACAgAAAAIxOAkABEwAAAACAgAAAAIyOQkABEwAAAACAgAAAAE3CQAETAAAAAICAAAAAjI4CQAETAAAAAICAAAAAjEyCQAETAAAAAICAAAAAjM1CQAETAAAAAICAAAAATMJAARMAAAAAgIAAAACMjYJAARMAAAAAgIAAAABMAkABEwAAAACAgAAAAIzMgkABEwAAAACAgAAAAIxNQkABEwAAAACAgAAAAIxOQkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAAjIxCQAETAAAAAICAAAAATIJAARMAAAAAgIAAAACMjUJAARMAAAAAgIAAAACMTcJAARMAAAAAgIAAAACMzQJAARMAAAAAgIAAAABNgkABEwAAAACAgAAAAIyNwkABEwAAAACAgAAAAIxMwkABEwAAAACAgAAAAIzNgkABEwAAAACAgAAAAIxMQkABEwAAAACAgAAAAIzMAkABEwAAAACAgAAAAE4CQAETAAAAAICAAAAAjIzCQAETAAAAAICAAAAAjEwBQAAAANuaWwAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAZNiYXNlNjQ6TUlJQkpUQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FSSUFNSUlCRFFLQ0FRRUF0T2JmaXdXeUJGcFNOSlpta3hsd0h5NXZUK0piK1Z2NmY3TGxoS0U5d05jQzBRcDByZHlNd3hMcGR3ZnVMc0tiUmRCRWJEaHBiM2R6MUpQSmlhdGxoS1ZLVXNvUTI1VVF1OWh2Mm9YeXlFekp4ODZDR1FxNUhPcjNZR0dTZEpSMExLcTFQaGJZck5tdVM2alBEWW9ieHNzWHljL3R4c2lwU0d3ek1nVkhjcXQ5T1NpR1F5U1o4LzltdHY0MkVlZnpGRTk1d3V1eTQyS0pLRzdoMERUTWZGU0xUcHFoUy9NYnA4RUtQdVZiMWh1V3NNS1ZMOVF0T1BZRVhhOVFQWmEyV0JQWDVZOUJJMU1jUlEvV2Y4V3dxUXRBUnBCZlNWcGtLUFMxQW1odDJmRU94U1NZUnFHNklVc2ZLOHhPOWh4dCszKy9PcC8rSUZKVEdjR0Y4QnJ6V1FJR0NQdzkvdTI3AAAAABFnYW1lc0xhYmVsQ291bnRlcgIAAAAOWF9HQU1FU0NPVU5URVIAAAAAFWdhbWVzTGFiZWxCZXRzQ291bnRlcgIAAAANWF9CRVRTQ09VTlRFUgAAAAAWZ2FtZXNMYWJlbEJldHNGZWVNb3ZlZAIAAAAOWF9CRVRTRkVFTU9WRUQAAAAAGGdhbWVzTGFiZWxUb3RhbEFtb3VudFdpbgIAAAAQWF9UT1RBTEFNT1VOVFdJTgAAAAAYZ2FtZXNMYWJlbFRvdGFsQW1vdW50QmV0AgAAABBYX1RPVEFMQU1PVU5UQkVUAAAAABlnYW1lc0xhYmVsVG90YWxBZGRyZXNzQmV0AgAAABFYX1RPVEFMQUREUkVTU0JFVAEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAkABBoAAAACBQAAAAR0aGlzBQAAABFnYW1lc0xhYmVsQ291bnRlcgEAAAATZ2FtZXNHZXRCZXRzQ291bnRlcgAAAAAJAAQaAAAAAgUAAAAEdGhpcwUAAAAVZ2FtZXNMYWJlbEJldHNDb3VudGVyAQAAABRnYW1lc0dldEJldHNGZWVNb3ZlZAAAAAAJAAQaAAAAAgUAAAAEdGhpcwUAAAAWZ2FtZXNMYWJlbEJldHNGZWVNb3ZlZAEAAAAWZ2FtZXNHZXRUb3RhbEFtb3VudFdpbgAAAAAJAAQaAAAAAgUAAAAEdGhpcwUAAAAYZ2FtZXNMYWJlbFRvdGFsQW1vdW50V2luAQAAABZnYW1lc0dldFRvdGFsQW1vdW50QmV0AAAAAAkABBoAAAACBQAAAAR0aGlzBQAAABhnYW1lc0xhYmVsVG90YWxBbW91bnRCZXQBAAAAF2dhbWVzR2V0VG90YWxBZGRyZXNzQmV0AAAAAAkABBoAAAACBQAAAAR0aGlzBQAAABlnYW1lc0xhYmVsVG90YWxBZGRyZXNzQmV0AQAAABBudW1iZXJMYWJlbENvdW50AAAAAQAAAAZudW1iZXIJAAEsAAAAAgIAAAACTl8FAAAABm51bWJlcgEAAAAObnVtYmVyR2V0Q291bnQAAAABAAAABm51bWJlcgkABBoAAAACBQAAAAR0aGlzCQEAAAAQbnVtYmVyTGFiZWxDb3VudAAAAAEFAAAABm51bWJlcgEAAAAPZ2FtZUxhYmVsU3RhdHVzAAAAAQAAAAxHQU1FU0NPVU5URVIJAAEsAAAAAgkAASwAAAACAgAAAAJHXwkAAaQAAAABBQAAAAxHQU1FU0NPVU5URVICAAAAB19TVEFUVVMBAAAAD2dhbWVMYWJlbE51bWJlcgAAAAEAAAAMR0FNRVNDT1VOVEVSCQABLAAAAAIJAAEsAAAAAgIAAAACR18JAAGkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAgAAAAdfTlVNQkVSAQAAAAxnYW1lTGFiZWxNYXgAAAABAAAADEdBTUVTQ09VTlRFUgkAASwAAAACCQABLAAAAAICAAAAAkdfCQABpAAAAAEFAAAADEdBTUVTQ09VTlRFUgIAAAAEX01BWAEAAAANZ2FtZUxhYmVsQmV0cwAAAAEAAAAMR0FNRVNDT1VOVEVSCQABLAAAAAIJAAEsAAAAAgIAAAACR18JAAGkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAgAAAAVfQkVUUwEAAAAPZ2FtZUxhYmVsUGFzc2VkAAAAAQAAAAxHQU1FU0NPVU5URVIJAAEsAAAAAgkAASwAAAACAgAAAAJHXwkAAaQAAAABBQAAAAxHQU1FU0NPVU5URVICAAAAB19QQVNTRUQBAAAAD2dhbWVMYWJlbEhlaWdodAAAAAEAAAAMR0FNRVNDT1VOVEVSCQABLAAAAAIJAAEsAAAAAgIAAAACR18JAAGkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAgAAAAdfSEVJR0hUAQAAAA9nYW1lTGFiZWxTdW1TaGEAAAABAAAADEdBTUVTQ09VTlRFUgkAASwAAAACCQABLAAAAAICAAAAAkdfCQABpAAAAAEFAAAADEdBTUVTQ09VTlRFUgIAAAAHX1NVTVNIQQEAAAAPZ2FtZUxhYmVsQ21iTWF4AAAAAgAAAAxHQU1FU0NPVU5URVIAAAADQ01CCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAJHXwkAAaQAAAABBQAAAAxHQU1FU0NPVU5URVICAAAAAl9DBQAAAANDTUIBAAAADWdhbWVHZXRTdGF0dXMAAAABAAAADEdBTUVTQ09VTlRFUgkABB0AAAACBQAAAAR0aGlzCQEAAAAPZ2FtZUxhYmVsU3RhdHVzAAAAAQUAAAAMR0FNRVNDT1VOVEVSAQAAAA1nYW1lR2V0TnVtYmVyAAAAAQAAAAxHQU1FU0NPVU5URVIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAD2dhbWVMYWJlbE51bWJlcgAAAAEFAAAADEdBTUVTQ09VTlRFUgEAAAAKZ2FtZUdldE1heAAAAAEAAAAMR0FNRVNDT1VOVEVSCQAEGgAAAAIFAAAABHRoaXMJAQAAAAxnYW1lTGFiZWxNYXgAAAABBQAAAAxHQU1FU0NPVU5URVIBAAAAC2dhbWVHZXRCZXRzAAAAAQAAAAxHQU1FU0NPVU5URVIJAAQaAAAAAgUAAAAEdGhpcwkBAAAADWdhbWVMYWJlbEJldHMAAAABBQAAAAxHQU1FU0NPVU5URVIBAAAADWdhbWVHZXRQYXNzZWQAAAABAAAADEdBTUVTQ09VTlRFUgkABBoAAAACBQAAAAR0aGlzCQEAAAAPZ2FtZUxhYmVsUGFzc2VkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAQAAAA1nYW1lR2V0SGVpZ2h0AAAAAQAAAAxHQU1FU0NPVU5URVIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAD2dhbWVMYWJlbEhlaWdodAAAAAEFAAAADEdBTUVTQ09VTlRFUgEAAAANZ2FtZUdldFN1bVNoYQAAAAEAAAAMR0FNRVNDT1VOVEVSCQAEHQAAAAIFAAAABHRoaXMJAQAAAA9nYW1lTGFiZWxTdW1TaGEAAAABBQAAAAxHQU1FU0NPVU5URVIBAAAADWdhbWVHZXRDbWJNYXgAAAACAAAADEdBTUVTQ09VTlRFUgAAAANDTUIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAD2dhbWVMYWJlbENtYk1heAAAAAIFAAAADEdBTUVTQ09VTlRFUgUAAAADQ01CAQAAAA5iZXRMYWJlbFN0YXR1cwAAAAEAAAAFaWRCZXQJAAEsAAAAAgkAASwAAAACAgAAAAJCXwUAAAAFaWRCZXQCAAAAB19TVEFUVVMBAAAADGJldExhYmVsSW5mbwAAAAEAAAAFaWRCZXQJAAEsAAAAAgkAASwAAAACAgAAAAJCXwUAAAAFaWRCZXQCAAAABV9JTkZPAQAAAAxiZXRHZXRTdGF0dXMAAAABAAAABWlkQmV0CQAEHQAAAAIFAAAABHRoaXMJAQAAAA5iZXRMYWJlbFN0YXR1cwAAAAEFAAAABWlkQmV0AQAAAApiZXRHZXRJbmZvAAAAAQAAAAVpZEJldAkABB0AAAACBQAAAAR0aGlzCQEAAAAMYmV0TGFiZWxJbmZvAAAAAQUAAAAFaWRCZXQBAAAAD2FkZHJlc3NMYWJlbFdvbgAAAAEAAAAEYWRkcgkAASwA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AAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGGdhbWVzTGFiZWxUb3RhbEFtb3VudEJldAkAAGQAAAACCQEAAAAFdmFsdWUAAAABCQEAAAAWZ2FtZXNHZXRUb3RhbEFtb3VudEJldAAAAAAFAAAABmFtb3VudAUAAAADbmlsBAAAAA9UT1RBTEFERFJFU1NCRVQJAABkAAAAAgkBAAAABXZhbHVlAAAAAQkBAAAAF2dhbWVzR2V0VG90YWxBZGRyZXNzQmV0AAAAAAAAAAAAAAAAAQQAAAAJZGF0YUZpbmFsAwkAAAAAAAACBQAAAA1BRERSRVNTQU1PVU5UAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAATcG9pbnRlckFkZHJlc3NMYWJlbAAAAAEJAAGkAAAAAQUAAAAPVE9UQUxBRERSRVNTQkVUBQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABlnYW1lc0xhYmVsVG90YWxBZGRyZXNzQmV0BQAAAA9UT1RBTEFERFJFU1NCRVQFAAAABGRhdGEFAAAABGRhdGEJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABBQAAAAlkYXRhRmluYWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAPc2VydmVyUHVibGljS2V5BQAAAANmZWUFAAAACW15QXNzZXRJZAUAAAADbmlsCQAAAgAAAAECAAAAFldBVkVTX0ZFRV9OT1RfQUNDRVBURUQJAAACAAAAAQIAAAASV0FWRVNfTk9UX0FDQ0VQVEVECQAAAgAAAAECAAAADkdBTUVfTk9UX0ZPVU5ECQAAAgAAAAECAAAADkdBTUVfTk9UX0ZPVU5ECQAAAgAAAAECAAAADkdBTUVfTk9UX0ZPVU5ECQAAAgAAAAECAAAAC0lOSVRfTkVFREVEAAAAAWkBAAAABmdldFdpbgAAAAEAAAADQkVUAwkBAAAAD2NoZWNrUGVybWlzc2lvbgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAABBnZXRXaW5fRk9SQkJJREVOBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDAEAAAAByRtYXRjaDEJAQAAAA1nYW1lR2V0U3RhdHVzAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkAAAEAAAACBQAAAAckbWF0Y2gxAgAAAAZTdHJpbmcEAAAACkNVUlJTVEFUVVMFAAAAByRtYXRjaDEDCQEAAAACIT0AAAACBQAAAApDVVJSU1RBVFVTAgAAAARTSE9XCQAAAgAAAAECAAAAF0NVUlJfU1RBVFVTX0lTX05PVF9TSE9XBAAAAAckbWF0Y2gyCQEAAAANZ2FtZUdldE51bWJlcgAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAAABAAAAAgUAAAAHJG1hdGNoMgIAAAADSW50BAAAAAZOVU1CRVIFAAAAByRtYXRjaDIEAAAABWlkQmV0CQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAAxHQU1FU0NPVU5URVICAAAAAV8JAAGkAAAAAQUAAAADQkVUBAAAAAxudW1iZXJTdHJpbmcJAAEsAAAAAgkAASwAAAACAgAAAAFfCQABpAAAAAEFAAAABk5VTUJFUgIAAAABXwQAAAADcmVkAgAAADR8XzFfM181XzdfOV8xMl8xNF8xNl8xOF8xOV8yMV8yM18yNV8yN18zMF8zMl8zNF8zNl98BAAAAAVibGFjawIAAAA1fF8yXzRfNl84XzEwXzExXzEzXzE1XzE3XzIwXzIyXzI0XzI2XzI4XzI5XzMxXzMzXzM1X3wEAAAACGluZGV4UmVkBAAAAAckbWF0Y2gzCQAEswAAAAIFAAAAA3JlZAUAAAAMbnVtYmVyU3RyaW5nAwkAAAEAAAACBQAAAAckbWF0Y2gzAgAAAANJbnQEAAAABHRlbXAFAAAAByRtYXRjaDMJAABmAAAAAgUAAAAEdGVtcAAAAAAAAAAAAAcEAAAACmluZGV4QmxhY2sEAAAAByRtYXRjaDMJAASzAAAAAgUAAAAFYmxhY2sFAAAADG51bWJlclN0cmluZwMJAAABAAAAAgUAAAAHJG1hdGNoMwIAAAADSW50BAAAAAR0ZW1wBQAAAAckbWF0Y2gzCQAAZgAAAAIFAAAABHRlbXAAAAAAAAAAAAAHBAAAAAVjbWJSQgkAASwAAAACAgAAAAFfAwUAAAAIaW5kZXhSZWQCAAAAA1JFRAMFAAAACmluZGV4QmxhY2sCAAAABUJMQUNLAgAAAANOREYEAAAABWNtYkVPCQABLAAAAAICAAAAAV8DAwkAAGcAAAACAAAAAAAAAAAABQAAAAZOVU1CRVIGCQAAZgAAAAIFAAAABk5VTUJFUgAAAAAAAAAAJAIAAAADTkRGAwkAAAAAAAACCQAAagAAAAIFAAAABk5VTUJFUgAAAAAAAAAAAgAAAAAAAAAAAAIAAAAERVZFTgIAAAADT0REBAAAAAVjbWJMSAkAASwAAAACAgAAAAFfAwMJAABnAAAAAgUAAAAGTlVNQkVSAAAAAAAAAAABCQAAZwAAAAIAAAAAAAAAABIFAAAABk5VTUJFUgcCAAAAA0xPVwMDCQAAZwAAAAIFAAAABk5VTUJFUgAAAAAAAAAAEwkAAGcAAAACAAAAAAAAAAAkBQAAAAZOVU1CRVIHAgAAAARISUdIAgAAAANOREYEAAAABWNtYkRaCQABLAAAAAICAAAAAV8DAwkAAGcAAAACBQAAAAZOVU1CRVIAAAAAAAAAAAEJAABnAAAAAgAAAAAAAAAADAUAAAAGTlVNQkVSBwIAAAAGRE9aRVIxAwMJAABnAAAAAgUAAAAGTlVNQkVSAAAAAAAAAAANCQAAZwAAAAIAAAAAAAAAABgFAAAABk5VTUJFUgcCAAAABkRPWkVSMgMDCQAAZwAAAAIFAAAABk5VTUJFUgAAAAAAAAAAGQkAAGcAAAACAAAAAAAAAAAkBQAAAAZOVU1CRVIHAgAAAAZET1pFUjMCAAAAA05ERgQAAAAFY21iQ0wJAAEsAAAAAgIAAAABXwMDCQAAZwAAAAIAAAAAAAAAAAAFAAAABk5VTUJFUgYJAABmAAAAAgUAAAAGTlVNQkVSAAAAAAAAAAAkAgAAAANOREYDCQAAAAAAAAIJAABqAAAAAgUAAAAGTlVNQkVSAAAAAAAAAAADAAAAAAAAAAABAgAAAAdDT0xVTU4xAwkAAAAAAAACCQAAagAAAAIFAAAABk5VTUJFUgAAAAAAAAAAAwAAAAAAAAAAAgIAAAAHQ09MVU1OMgIAAAAHQ09MVU1OMwQAAAAGU1RBVFVTBAAAAAckbWF0Y2gzCQEAAAAMYmV0R2V0U3RhdHVzAAAAAQUAAAAFaWRCZXQDCQAAAQAAAAIFAAAAByRtYXRjaDMCAAAABlN0cmluZwQAAAAEdGVtcAUAAAAHJG1hdGNoMwUAAAAEdGVtcAkAAAIAAAABAgAAABRCRVRfU1RBVFVTX05PVF9GT1VORAQAAAAESU5GTwQAAAAHJG1hdGNoMwkBAAAACmJldEdldEluZm8AAAABBQAAAAVpZEJldAMJAAABAAAAAgUAAAAHJG1hdGNoMwIAAAAGU3RyaW5nBAAAAAR0ZW1wBQAAAAckbWF0Y2gzBQAAAAR0ZW1wCQAAAgAAAAECAAAAEkJFVF9JTkZPX05PVF9GT1VORAQAAAAFSU5GT1MJAAS1AAAAAgUAAAAESU5GTwIAAAACfHwEAAAADUFERFJFU1NTVFJJTkcJAAGRAAAAAgUAAAAFSU5GT1MAAAAAAAAAAAAEAAAAB0FERFJFU1MJAQAAAAV2YWx1ZQAAAAEJAQAAABFhZGRyZXNzRnJvbVN0cmluZwAAAAEFAAAADUFERFJFU1NTVFJJTkcEAAAAA0NNQgkAAZEAAAACBQAAAAVJTkZPUwAAAAAAAAAAAQQAAAAGQU1PVU5UCQEAAAAFdmFsdWUAAAABCQAEtgAAAAEJAAGRAAAAAgUAAAAFSU5GT1MAAAAAAAAAAAIEAAAAA1dJTgkBAAAABXZhbHVlAAAAAQkABLYAAAABCQABkQAAAAIFAAAABUlORk9TAAAAAAAAAAADBAAAAApBRERSRVNTV09OBAAAAAckbWF0Y2gzCQEAAAANYWRkcmVzc0dldFdvbgAAAAEFAAAADUFERFJFU1NTVFJJTkcDCQAAAQAAAAIFAAAAByRtYXRjaDMCAAAAA0ludAQAAAAEdGVtcAUAAAAHJG1hdGNoMwUAAAAEdGVtcAAAAAAAAAAAAAQAAAAKQUREUkVTU0hJVAQAAAAHJG1hdGNoMwkBAAAADWFkZHJlc3NHZXRIaXQAAAABBQAAAA1BRERSRVNTU1RSSU5HAwkAAAEAAAACBQAAAAckbWF0Y2gzAgAAAANJbnQEAAAABHRlbXAFAAAAByRtYXRjaDMFAAAABHRlbXAAAAAAAAAAAAAEAAAACkRBVEFQQVNTRUQJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2FtZUxhYmVsUGFzc2VkAAAAAQUAAAAMR0FNRVNDT1VOVEVSCQAAZAAAAAIJAQAAAAV2YWx1ZQAAAAEJAQAAAA1nYW1lR2V0UGFzc2VkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAAAAAAAAAAABAwMDAwMJAAAAAAAAAgUAAAAGU1RBVFVTAgAAAAZBQ0NFUFQJAQAAAAIhPQAAAAIFAAAAA0NNQgIAAAAABwkAAGYAAAACBQAAAANXSU4AAAAAAAAAAAAHCQAAZgAAAAIFAAAABkFNT1VOVAAAAAAAAAAAAAcJAQAAAAlpc0RlZmluZWQAAAABBQAAAAdBRERSRVNTBwQAAAAFY21iSU4EAAAAByRtYXRjaDMJAASzAAAAAgkAASwAAAACCQABLAAAAAICAAAAAXwFAAAAA0NNQgIAAAABfAUAAAAMbnVtYmVyU3RyaW5nAwkAAAEAAAACBQAAAAckbWF0Y2gzAgAAAANJbnQEAAAABHRlbXAFAAAAByRtYXRjaDMJAABmAAAAAgUAAAAEdGVtcAAAAAAAAAAAAAcDAwMDAwMFAAAABWNtYklOBgkAAAAAAAACBQAAAANDTUIFAAAABWNtYlJCBgkAAAAAAAACBQAAAANDTUIFAAAABWNtYkVPBgkAAAAAAAACBQAAAANDTUIFAAAABWNtYkxIBgkAAAAAAAACBQAAAANDTUIFAAAABWNtYkRaBgkAAAAAAAACBQAAAANDTUIFAAAABWNtYkNMCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACBQAAAApEQVRBUEFTU0VECQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAOYmV0TGFiZWxTdGF0dXMAAAABBQAAAAVpZEJldAIAAAADV09OCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPYWRkcmVzc0xhYmVsV29uAAAAAQUAAAANQUREUkVTU1NUUklORwkAAGQAAAACCQAAZAAAAAIFAAAACkFERFJFU1NXT04FAAAAA1dJTgUAAAAGQU1PVU5UCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPYWRkcmVzc0xhYmVsSGl0AAAAAQUAAAANQUREUkVTU1NUUklORwkAAGQAAAACBQAAAApBRERSRVNTSElUAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABhnYW1lc0xhYmVsVG90YWxBbW91bnRXaW4JAABkAAAAAgkAAGQAAAACCQEAAAAFdmFsdWUAAAABCQEAAAAWZ2FtZXNHZXRUb3RhbEFtb3VudFdpbgAAAAAFAAAAA1dJTgUAAAAGQU1PVU5UBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAHQUREUkVTUwkAAGQAAAACBQAAAANXSU4FAAAABkFNT1VOVAUAAAAJbXlBc3NldElkBQAAAANuaWwJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgUAAAAKREFUQVBBU1NFRAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAADmJldExhYmVsU3RhdHVzAAAAAQUAAAAFaWRCZXQCAAAABExPU1QFAAAAA25pbAkAAAIAAAABAgAAABZHRVRfV0lOX0FMUkVBRFlfQ0FMTEVECQAAAgAAAAECAAAADkdBTUVfTk9UX0ZPVU5ECQAAAgAAAAECAAAADkdBTUVfTk9UX0ZPVU5ECQAAAgAAAAECAAAAC0lOSVRfTkVFREVEAAAAAWkBAAAABmFkZENtYgAAAAIAAAADY21iAAAAA3ZhbAMJAQAAAA9jaGVja1Blcm1pc3Npb24AAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAQYWRkQ21iX0ZPUkJCSURFTgQAAAAHJG1hdGNoMAkBAAAAD2dhbWVzR2V0Q291bnRlcgAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAMR0FNRVNDT1VOVEVSBQAAAAckbWF0Y2gwAwkBAAAAAiE9AAAAAgUAAAAMR0FNRVNDT1VOVEVSAAAAAAAAAAAACQAAAgAAAAECAAAAEUlOSVRfQUxSRUFEWV9ET05FAwMDAwMDAwkAAAAAAAACBQAAAAN2YWwAAAAAAAAAAAEGCQAAAAAAAAIFAAAAA3ZhbAAAAAAAAAAAAgYJAAAAAAAAAgUAAAADdmFsAAAAAAAAAAAFBgkAAAAAAAACBQAAAAN2YWwAAAAAAAAAAAgGCQAAAAAAAAIFAAAAA3ZhbAAAAAAAAAAACwYJAAAAAAAAAgUAAAADdmFsAAAAAAAAAAARBgkAAAAAAAACBQAAAAN2YWwAAAAAAAAAACMJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAABQwUAAAADY21iBQAAAAN2YWwFAAAAA25pbAkAAAIAAAABAgAAABBBTU9VTlRfTk9UX0ZPVU5ECQAAAgAAAAECAAAAC0lOSVRfTkVFREVEAAAAAWkBAAAABnNldEZlZQAAAAEAAAADdmFsAwkBAAAAD2NoZWNrUGVybWlzc2lvbgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAABBzZXRGZWVfRk9SQkJJREVOCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAVYX0ZFRQUAAAADdmFsBQAAAANuaWwAAAABaQEAAAAIc2V0VW5pdHkAAAABAAAAA3ZhbAMJAQAAAA9jaGVja1Blcm1pc3Npb24AAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAASc2V0VW5pdHlfRk9SQkJJREVOCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAdYX1VOSVRZBQAAAAN2YWwFAAAAA25pbAAAAAFpAQAAAAhpbml0R2FtZQAAAAADCQEAAAAPY2hlY2tQZXJtaXNzaW9uAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAEmluaXRHYW1lX0ZPUkJCSURFTgQAAAAHJG1hdGNoMAkBAAAAD2dhbWVzR2V0Q291bnRlcgAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAMR0FNRVNDT1VOVEVSBQAAAAckbWF0Y2gwCQAAAgAAAAECAAAAEUlOSVRfQUxSRUFEWV9ET05FCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFnYW1lc0xhYmVsQ291bnRlcgAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAVZ2FtZXNMYWJlbEJldHNDb3VudGVyAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABZnYW1lc0xhYmVsQmV0c0ZlZU1vdmVkAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABhnYW1lc0xhYmVsVG90YWxBbW91bnRXaW4AAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGGdhbWVzTGFiZWxUb3RhbEFtb3VudEJldAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAZZ2FtZXNMYWJlbFRvdGFsQWRkcmVzc0JldAAAAAAAAAAAAAUAAAADbmlsAAAAAWkBAAAAB25ld0dhbWUAAAAAAwkBAAAAD2NoZWNrUGVybWlzc2lvbgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAABFuZXdHYW1lX0ZPUkJCSURFTgQAAAAHJG1hdGNoMAkBAAAAD2dhbWVzR2V0Q291bnRlcgAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAMR0FNRVNDT1VOVEVSBQAAAAckbWF0Y2gwBAAAAA5uZXdHYW1lQ291bnRlcgkAAGQAAAACBQAAAAxHQU1FU0NPVU5URVIAAAAAAAAAAAEEAAAAC0JFVFNDT1VOVEVSCQEAAAAFdmFsdWUAAAABCQEAAAATZ2FtZXNHZXRCZXRzQ291bnRlcgAAAAAEAAAACUJFVFNNT1ZFRAkBAAAABXZhbHVlAAAAAQkBAAAAFGdhbWVzR2V0QmV0c0ZlZU1vdmVkAAAAAAQAAAAHZ2FtZU1heAkAAGUAAAACCQAD6wAAAAIFAAAABHRoaXMFAAAACW15QXNzZXRJZAkAAGgAAAACCQAAZQAAAAIFAAAAC0JFVFNDT1VOVEVSBQAAAAlCRVRTTU9WRUQFAAAAA2ZlZQQAAAALaGFsZkdhbWVNYXgDCQAAAAAAAAIJAABqAAAAAgUAAAAHZ2FtZU1heAAAAAAAAAAAAgAAAAAAAAAAAQkAAGkAAAACCQAAZQAAAAIFAAAAB2dhbWVNYXgAAAAAAAAAAAEAAAAAAAAAAAIJAABpAAAAAgUAAAAHZ2FtZU1heAAAAAAAAAAAAgQAAAAIc2VuZERhdGEJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEWdhbWVzTGFiZWxDb3VudGVyBQAAAA5uZXdHYW1lQ291bnRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dhbWVMYWJlbFN0YXR1cwAAAAEFAAAADm5ld0dhbWVDb3VudGVyAgAAAARQTEFZCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAMZ2FtZUxhYmVsTWF4AAAAAQUAAAAObmV3R2FtZUNvdW50ZXIFAAAAC2hhbGZHYW1lTWF4CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAANZ2FtZUxhYmVsQmV0cwAAAAEFAAAADm5ld0dhbWVDb3VudGVyAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAPZ2FtZUxhYmVsUGFzc2VkAAAAAQUAAAAObmV3R2FtZUNvdW50ZXIAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nYW1lTGFiZWxIZWlnaHQAAAABBQAAAA5uZXdHYW1lQ291bnRlcgAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dhbWVMYWJlbFN1bVNoYQAAAAEFAAAADm5ld0dhbWVDb3VudGVyCQACWAAAAAEJAAH3AAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAADbmlsAwkAAGYAAAACBQAAAAVVTklUWQUAAAALaGFsZkdhbWVNYXgJAAACAAAAAQIAAAAOQkFMQU5DRV9JU19MT1cDCQAAAAAAAAIFAAAADEdBTUVTQ09VTlRFUgAAAAAAAAAAAAUAAAAIc2VuZERhdGEEAAAACkNVUlJTVEFUVVMJAQAAAAV2YWx1ZQAAAAEJAQAAAA1nYW1lR2V0U3RhdHVzAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkBAAAAAiE9AAAAAgUAAAAKQ1VSUlNUQVRVUwIAAAAEU0hPVwkAAAIAAAABAgAAABdDVVJSX1NUQVRVU19JU19OT1RfU0hPVwQAAAAEQkVUUwkBAAAABXZhbHVlAAAAAQkBAAAAC2dhbWVHZXRCZXRzAAAAAQUAAAAMR0FNRVNDT1VOVEVSBAAAAAZQQVNTRUQJAQAAAAV2YWx1ZQAAAAEJAQAAAA1nYW1lR2V0UGFzc2VkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkBAAAAAiE9AAAAAgUAAAAEQkVUUwUAAAAGUEFTU0VECQAAAgAAAAECAAAAD1dBSVRfQUxMX1BBU1NFRAUAAAAIc2VuZERhdGEJAAACAAAAAQIAAAALSU5JVF9ORUVERUQAAAABaQEAAAAIc2hvd0dhbWUAAAABAAAAB3JzYVNpZ24DCQEAAAAPY2hlY2tQZXJtaXNzaW9uAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAEnNob3dHYW1lX0ZPUkJCSURFTgQAAAAHJG1hdGNoMAkBAAAAD2dhbWVzR2V0Q291bnRlcgAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAMR0FNRVNDT1VOVEVSBQAAAAckbWF0Y2gwBAAAAAckbWF0Y2gxCQEAAAANZ2FtZUdldFN1bVNoYQAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAAABAAAAAgUAAAAHJG1hdGNoMQIAAAAGU3RyaW5nBAAAAAZTVU1TSEEFAAAAByRtYXRjaDEEAAAAC3JzYVNpZ1ZhbGlkCQAB+AAAAAQFAAAABlNIQTI1NgkAAlkAAAABBQAAAAZTVU1TSEEFAAAAB3JzYVNpZ24FAAAACVJTQVBVQkxJQwMJAQAAAAEhAAAAAQUAAAALcnNhU2lnVmFsaWQJAAACAAAAAQIAAAAQSU5WQUxJRF9SU0FfU0lHTgQAAAAFaW5kZXgJAABqAAAAAgkABLEAAAABCQAB9wAAAAEFAAAAB3JzYVNpZ24AAAAAAAAAACUEAAAADG51bWJlclN0cmluZwkAAZEAAAACBQAAAAV3aGVlbAUAAAAFaW5kZXgEAAAABm51bWJlcgkBAAAABXZhbHVlAAAAAQkABLYAAAABBQAAAAxudW1iZXJTdHJpbmcEAAAAC251bWJlckNvdW50BAAAAAckbWF0Y2gyCQEAAAAObnVtYmVyR2V0Q291bnQAAAABBQAAAAxudW1iZXJTdHJpbmcDCQAAAQAAAAIFAAAAByRtYXRjaDICAAAAA0ludAQAAAAEdGVtcAUAAAAHJG1hdGNoMgUAAAAEdGVtcAAAAAAAAAAAAAQAAAAKQ1VSUlNUQVRVUwkBAAAABXZhbHVlAAAAAQkBAAAADWdhbWVHZXRTdGF0dXMAAAABBQAAAAxHQU1FU0NPVU5URVIDCQEAAAACIT0AAAACBQAAAApDVVJSU1RBVFVTAgAAAARQTEFZCQAAAgAAAAECAAAAF0NVUlJfU1RBVFVTX0lTX05PVF9QTEFZBAAAAApHQU1FSEVJR0hUCQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldEhlaWdodAAAAAEFAAAADEdBTUVTQ09VTlRFUgMDCQAAAAAAAAIFAAAACkdBTUVIRUlHSFQAAAAAAAAAAAAGCQAAZwAAAAIJAABkAAAAAgUAAAAKR0FNRUhFSUdIVAUAAAAOcGVyaW9kR2FtZVBsYXkFAAAABmhlaWdodAkAAAIAAAABAgAAAA9HQU1FX0lTX05PVF9FTkQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nYW1lTGFiZWxTdGF0dXMAAAABBQAAAAxHQU1FU0NPVU5URVICAAAABFNIT1cJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA9nYW1lTGFiZWxOdW1iZXIAAAABBQAAAAxHQU1FU0NPVU5URVIFAAAABm51bWJlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEG51bWJlckxhYmVsQ291bnQAAAABBQAAAAxudW1iZXJTdHJpbmcJAABkAAAAAgUAAAALbnVtYmVyQ291bnQAAAAAAAAAAAEFAAAAA25pbAkAAAIAAAABAgAAAA5HQU1FX05PVF9GT1VORAkAAAIAAAABAgAAAAtJTklUX05FRURFRAAAAAFpAQAAAA5hbW91bnRUb1NlcnZlcgAAAAEAAAAGYW1vdW50AwkBAAAAD2NoZWNrUGVybWlzc2lvbgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAABhhbW91bnRUb1dhbGxldF9GT1JCQklERU4EAAAAByRtYXRjaDAJAQAAAA9nYW1lc0dldENvdW50ZXIAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAADEdBTUVTQ09VTlRFUgUAAAAHJG1hdGNoMAMJAAAAAAAAAgUAAAAMR0FNRVNDT1VOVEVSAAAAAAAAAAAACQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAD3NlcnZlclB1YmxpY0tleQUAAAAGYW1vdW50BQAAAAlteUFzc2V0SWQFAAAAA25pbAQAAAAKQ1VSUlNUQVRVUwkBAAAABXZhbHVlAAAAAQkBAAAADWdhbWVHZXRTdGF0dXMAAAABBQAAAAxHQU1FU0NPVU5URVIDCQEAAAACIT0AAAACBQAAAApDVVJSU1RBVFVTAgAAAARTSE9XCQAAAgAAAAECAAAAF0NVUlJfU1RBVFVTX0lTX05PVF9TSE9XBAAAAARCRVRTCQEAAAAFdmFsdWUAAAABCQEAAAALZ2FtZUdldEJldHMAAAABBQAAAAxHQU1FU0NPVU5URVIEAAAABlBBU1NFRAkBAAAABXZhbHVlAAAAAQkBAAAADWdhbWVHZXRQYXNzZWQAAAABBQAAAAxHQU1FU0NPVU5URVIDCQEAAAACIT0AAAACBQAAAARCRVRTBQAAAAZQQVNTRUQJAAACAAAAAQIAAAAPV0FJVF9BTExfUEFTU0VECQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAD3NlcnZlclB1YmxpY0tleQUAAAAGYW1vdW50BQAAAAlteUFzc2V0SWQFAAAAA25pbAkAAAIAAAABAgAAAAtJTklUX05FRURFRAAAAAFpAQAAABNhbW91bnRXYXZlc1RvU2VydmVyAAAAAQAAAAZhbW91bnQDCQEAAAAPY2hlY2tQZXJtaXNzaW9uAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAGGFtb3VudFRvV2FsbGV0X0ZPUkJCSURFTgkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA9zZXJ2ZXJQdWJsaWNLZXkFAAAABmFtb3VudAUAAAAEdW5pdAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXntwg4x", "height": 1787965, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3XETVGicwtkxJWDayiQxowokrTy7d22YGP1hcAsD5UqT Next: 6zCuQDMBE3h9N2Pbmg93tXd9B1X8u5MWywWAxz3a6NeG Diff:
OldNewDifferences
1515
1616 let myAssetId = base58'Ac7AwywpLnExZXmp7JnyqLoeyEaSWgrnisch3KKyoEUe'
1717
18-let feetmp = value(getInteger(this, "X_FEE"))
18+let feetmp = getInteger(this, "X_FEE")
1919
2020 let fee = if (isDefined(feetmp))
21- then feetmp
21+ then value(feetmp)
2222 else 500000
2323
24-let UNITYtmp = value(getInteger(this, "X_UNITY"))
24+let UNITYtmp = getInteger(this, "X_UNITY")
2525
2626 let UNITY = if (isDefined(UNITYtmp))
27- then UNITYtmp
27+ then value(UNITYtmp)
2828 else 100000000
2929
3030 let periodGamePlay = 2
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let copyright = "Copyright (c) 2021 MaDaMa Labs"
55
66 let creator = "@daidalos - twitter.com/tw_daidalos"
77
88 let team = "MaDaMa Labs https://gitlab.com/madamalabs/"
99
1010 let license = "MIT License"
1111
1212 let licenseLink = "tldrlegal.com/license/mit-license , opensource.org/licenses/MIT"
1313
1414 let serverPublicKey = base58'8mhKq6anPiMfYiWogTbKgVmFquQQam2H6SLs8XieX2CN'
1515
1616 let myAssetId = base58'Ac7AwywpLnExZXmp7JnyqLoeyEaSWgrnisch3KKyoEUe'
1717
18-let feetmp = value(getInteger(this, "X_FEE"))
18+let feetmp = getInteger(this, "X_FEE")
1919
2020 let fee = if (isDefined(feetmp))
21- then feetmp
21+ then value(feetmp)
2222 else 500000
2323
24-let UNITYtmp = value(getInteger(this, "X_UNITY"))
24+let UNITYtmp = getInteger(this, "X_UNITY")
2525
2626 let UNITY = if (isDefined(UNITYtmp))
27- then UNITYtmp
27+ then value(UNITYtmp)
2828 else 100000000
2929
3030 let periodGamePlay = 2
3131
3232 let wheel = ["5", "24", "16", "33", "1", "20", "14", "31", "9", "22", "18", "29", "7", "28", "12", "35", "3", "26", "0", "32", "15", "19", "4", "21", "2", "25", "17", "34", "6", "27", "13", "36", "11", "30", "8", "23", "10"]
3333
3434 let RSAPUBLIC = fromBase64String("base64:MIIBJTANBgkqhkiG9w0BAQEFAAOCARIAMIIBDQKCAQEAtObfiwWyBFpSNJZmkxlwHy5vT+Jb+Vv6f7LlhKE9wNcC0Qp0rdyMwxLpdwfuLsKbRdBEbDhpb3dz1JPJiatlhKVKUsoQ25UQu9hv2oXyyEzJx86CGQq5HOr3YGGSdJR0LKq1PhbYrNmuS6jPDYobxssXyc/txsipSGwzMgVHcqt9OSiGQySZ8/9mtv42EefzFE95wuuy42KJKG7h0DTMfFSLTpqhS/Mbp8EKPuVb1huWsMKVL9QtOPYEXa9QPZa2WBPX5Y9BI1McRQ/Wf8WwqQtARpBfSVpkKPS1Amht2fEOxSSYRqG6IUsfK8xO9hxt+3+/Op/+IFJTGcGF8BrzWQIGCPw9/u27")
3535
3636 let gamesLabelCounter = "X_GAMESCOUNTER"
3737
3838 let gamesLabelBetsCounter = "X_BETSCOUNTER"
3939
4040 let gamesLabelBetsFeeMoved = "X_BETSFEEMOVED"
4141
4242 let gamesLabelTotalAmountWin = "X_TOTALAMOUNTWIN"
4343
4444 let gamesLabelTotalAmountBet = "X_TOTALAMOUNTBET"
4545
4646 let gamesLabelTotalAddressBet = "X_TOTALADDRESSBET"
4747
4848 func gamesGetCounter () = getInteger(this, gamesLabelCounter)
4949
5050
5151 func gamesGetBetsCounter () = getInteger(this, gamesLabelBetsCounter)
5252
5353
5454 func gamesGetBetsFeeMoved () = getInteger(this, gamesLabelBetsFeeMoved)
5555
5656
5757 func gamesGetTotalAmountWin () = getInteger(this, gamesLabelTotalAmountWin)
5858
5959
6060 func gamesGetTotalAmountBet () = getInteger(this, gamesLabelTotalAmountBet)
6161
6262
6363 func gamesGetTotalAddressBet () = getInteger(this, gamesLabelTotalAddressBet)
6464
6565
6666 func numberLabelCount (number) = ("N_" + number)
6767
6868
6969 func numberGetCount (number) = getInteger(this, numberLabelCount(number))
7070
7171
7272 func gameLabelStatus (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_STATUS")
7373
7474
7575 func gameLabelNumber (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_NUMBER")
7676
7777
7878 func gameLabelMax (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_MAX")
7979
8080
8181 func gameLabelBets (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_BETS")
8282
8383
8484 func gameLabelPassed (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_PASSED")
8585
8686
8787 func gameLabelHeight (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_HEIGHT")
8888
8989
9090 func gameLabelSumSha (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_SUMSHA")
9191
9292
9393 func gameLabelCmbMax (GAMESCOUNTER,CMB) = ((("G_" + toString(GAMESCOUNTER)) + "_C") + CMB)
9494
9595
9696 func gameGetStatus (GAMESCOUNTER) = getString(this, gameLabelStatus(GAMESCOUNTER))
9797
9898
9999 func gameGetNumber (GAMESCOUNTER) = getInteger(this, gameLabelNumber(GAMESCOUNTER))
100100
101101
102102 func gameGetMax (GAMESCOUNTER) = getInteger(this, gameLabelMax(GAMESCOUNTER))
103103
104104
105105 func gameGetBets (GAMESCOUNTER) = getInteger(this, gameLabelBets(GAMESCOUNTER))
106106
107107
108108 func gameGetPassed (GAMESCOUNTER) = getInteger(this, gameLabelPassed(GAMESCOUNTER))
109109
110110
111111 func gameGetHeight (GAMESCOUNTER) = getInteger(this, gameLabelHeight(GAMESCOUNTER))
112112
113113
114114 func gameGetSumSha (GAMESCOUNTER) = getString(this, gameLabelSumSha(GAMESCOUNTER))
115115
116116
117117 func gameGetCmbMax (GAMESCOUNTER,CMB) = getInteger(this, gameLabelCmbMax(GAMESCOUNTER, CMB))
118118
119119
120120 func betLabelStatus (idBet) = (("B_" + idBet) + "_STATUS")
121121
122122
123123 func betLabelInfo (idBet) = (("B_" + idBet) + "_INFO")
124124
125125
126126 func betGetStatus (idBet) = getString(this, betLabelStatus(idBet))
127127
128128
129129 func betGetInfo (idBet) = getString(this, betLabelInfo(idBet))
130130
131131
132132 func addressLabelWon (addr) = (("A_" + addr) + "_WON")
133133
134134
135135 func addressLabelAmount (addr) = (("A_" + addr) + "_AMOUNT")
136136
137137
138138 func addressLabelBets (addr) = (("A_" + addr) + "_BETS")
139139
140140
141141 func addressLabelHit (addr) = (("A_" + addr) + "_HIT")
142142
143143
144144 func addressGetWon (addr) = getInteger(this, addressLabelWon(addr))
145145
146146
147147 func addressGetAmount (addr) = getInteger(this, addressLabelAmount(addr))
148148
149149
150150 func addressGetBets (addr) = getInteger(this, addressLabelBets(addr))
151151
152152
153153 func addressGetHit (addr) = getInteger(this, addressLabelHit(addr))
154154
155155
156156 func pointerAddressLabel (id) = ("P_" + id)
157157
158158
159159 func checkPermission (callerPublicKey) = (callerPublicKey != serverPublicKey)
160160
161161
162162 func gameNewMax (win) = match gamesGetCounter() {
163163 case GAMESCOUNTER: Int =>
164164 match gameGetMax(GAMESCOUNTER) {
165165 case CURRMAX: Int =>
166166 let temp = (CURRMAX - win)
167167 if ((0 > temp))
168168 then throw("BET_IS_BLOCK")
169169 else temp
170170 case _ =>
171171 throw("GAME_NOT_FOUND")
172172 }
173173 case _ =>
174174 throw("INIT_NEEDED")
175175 }
176176
177177
178178 func gameNewSumSha (txId) = match gamesGetCounter() {
179179 case GAMESCOUNTER: Int =>
180180 match gameGetSumSha(GAMESCOUNTER) {
181181 case SUMSHA: String =>
182182 toBase58String(sha256((fromBase58String(SUMSHA) + txId)))
183183 case _ =>
184184 throw("GAME_NOT_FOUND")
185185 }
186186 case _ =>
187187 throw("INIT_NEEDED")
188188 }
189189
190190
191191 func checkIdBet (idBet) = match betGetInfo(idBet) {
192192 case temp: String =>
193193 throw("PLAYER_ALREADY_DEFINED")
194194 case _ =>
195195 1
196196 }
197197
198198
199199 func checkBet (bet) = if (if (if (if (if (if ((bet == (UNITY / 10)))
200200 then true
201201 else (bet == (UNITY / 5)))
202202 then true
203203 else (bet == (UNITY / 2)))
204204 then true
205205 else (bet == (UNITY * 1)))
206206 then true
207207 else (bet == (UNITY * 2)))
208208 then true
209209 else (bet == (UNITY * 1)))
210210 then 1
211211 else throw("BET_NOT_FOUND")
212212
213213
214214 func getCmb (cmb) = match getInteger(this, ("C" + cmb)) {
215215 case temp: Int =>
216216 temp
217217 case _ =>
218218 throw("CMB_NOT_FOUND")
219219 }
220220
221221
222222 func allowCmbMax (gamecounter,cmb,win) = match gameGetCmbMax(gamecounter, cmb) {
223223 case temp: Int =>
224224 if (((temp + win) > (200 * UNITY)))
225225 then throw("CMB_MAX_WIN")
226226 else 1
227227 case _ =>
228228 1
229229 }
230230
231231
232232 @Callable(i)
233233 func bet (id,cmb) = match gamesGetCounter() {
234234 case GAMESCOUNTER: Int =>
235235 if ((id != GAMESCOUNTER))
236236 then throw("GAME_ID_WRONG")
237237 else match gameGetStatus(GAMESCOUNTER) {
238238 case CURRSTATUS: String =>
239239 if ((CURRSTATUS != "PLAY"))
240240 then throw("CURR_STATUS_IS_NOT_PLAY")
241241 else match gameGetHeight(GAMESCOUNTER) {
242242 case GAMEHEIGHT: Int =>
243243 if (if ((GAMEHEIGHT != 0))
244244 then (height > (GAMEHEIGHT + periodGamePlay))
245245 else false)
246246 then throw("GAME_IS_END")
247247 else match gameGetBets(GAMESCOUNTER) {
248248 case BETS: Int =>
249249 let idBet = ((toString(GAMESCOUNTER) + "_") + toString((BETS + 1)))
250250 let payment = value(i.payment)
251251 match payment.assetId {
252252 case assetId: ByteVector =>
253253 if ((assetId != myAssetId))
254254 then throw("ONLY_TOKEN_ACCEPTED")
255255 else match i.feeAssetId {
256256 case feeAssetId: ByteVector =>
257257 if ((feeAssetId != myAssetId))
258258 then throw("ONLY_TOKEN_FEE_ACCEPTED")
259259 else {
260260 let amount = (payment.amount - fee)
261261 let win = (((checkIdBet(idBet) * checkBet(amount)) * getCmb(cmb)) * amount)
262262 let winmax = (win * allowCmbMax(GAMESCOUNTER, cmb, win))
263263 let address = toBase58String(i.caller.bytes)
264264 let info = ((((((address + "||") + cmb) + "||") + toString(amount)) + "||") + toString(winmax))
265265 let ADDRESSAMOUNT = match addressGetAmount(address) {
266266 case temp: Int =>
267267 temp
268268 case _ =>
269269 0
270270 }
271271 let ADDRESSBETS = match addressGetBets(address) {
272272 case temp: Int =>
273273 temp
274274 case _ =>
275275 0
276276 }
277277 let CMBMAX = match gameGetCmbMax(GAMESCOUNTER, cmb) {
278278 case temp: Int =>
279279 temp
280280 case _ =>
281281 0
282282 }
283283 let data = [DataEntry(betLabelInfo(idBet), info), DataEntry(betLabelStatus(idBet), "ACCEPT"), DataEntry(gameLabelBets(GAMESCOUNTER), (BETS + 1)), DataEntry(gameLabelHeight(GAMESCOUNTER), if ((GAMEHEIGHT == 0))
284284 then height
285285 else GAMEHEIGHT), DataEntry(gameLabelMax(GAMESCOUNTER), gameNewMax(winmax)), DataEntry(gameLabelSumSha(GAMESCOUNTER), gameNewSumSha(i.transactionId)), DataEntry(gameLabelCmbMax(GAMESCOUNTER, cmb), (CMBMAX + winmax)), DataEntry(addressLabelAmount(address), (ADDRESSAMOUNT + amount)), DataEntry(addressLabelBets(address), (ADDRESSBETS + 1)), DataEntry(gamesLabelBetsCounter, (value(gamesGetBetsCounter()) + 1)), DataEntry(gamesLabelTotalAmountBet, (value(gamesGetTotalAmountBet()) + amount))]
286286 let TOTALADDRESSBET = (value(gamesGetTotalAddressBet()) + 1)
287287 let dataFinal = if ((ADDRESSAMOUNT == 0))
288288 then [DataEntry(pointerAddressLabel(toString(TOTALADDRESSBET)), address), DataEntry(gamesLabelTotalAddressBet, TOTALADDRESSBET)] :: data
289289 else data
290290 ScriptResult(WriteSet(dataFinal), TransferSet([ScriptTransfer(addressFromPublicKey(serverPublicKey), fee, myAssetId)]))
291291 }
292292 case _ =>
293293 throw("WAVES_FEE_NOT_ACCEPTED")
294294 }
295295 case _ =>
296296 throw("WAVES_NOT_ACCEPTED")
297297 }
298298 case _ =>
299299 throw("GAME_NOT_FOUND")
300300 }
301301 case _ =>
302302 throw("GAME_NOT_FOUND")
303303 }
304304 case _ =>
305305 throw("GAME_NOT_FOUND")
306306 }
307307 case _ =>
308308 throw("INIT_NEEDED")
309309 }
310310
311311
312312
313313 @Callable(i)
314314 func getWin (BET) = if (checkPermission(i.callerPublicKey))
315315 then throw("getWin_FORBBIDEN")
316316 else match gamesGetCounter() {
317317 case GAMESCOUNTER: Int =>
318318 match gameGetStatus(GAMESCOUNTER) {
319319 case CURRSTATUS: String =>
320320 if ((CURRSTATUS != "SHOW"))
321321 then throw("CURR_STATUS_IS_NOT_SHOW")
322322 else match gameGetNumber(GAMESCOUNTER) {
323323 case NUMBER: Int =>
324324 let idBet = ((toString(GAMESCOUNTER) + "_") + toString(BET))
325325 let numberString = (("_" + toString(NUMBER)) + "_")
326326 let red = "|_1_3_5_7_9_12_14_16_18_19_21_23_25_27_30_32_34_36_|"
327327 let black = "|_2_4_6_8_10_11_13_15_17_20_22_24_26_28_29_31_33_35_|"
328328 let indexRed = match indexOf(red, numberString) {
329329 case temp: Int =>
330330 (temp > 0)
331331 case _ =>
332332 false
333333 }
334334 let indexBlack = match indexOf(black, numberString) {
335335 case temp: Int =>
336336 (temp > 0)
337337 case _ =>
338338 false
339339 }
340340 let cmbRB = ("_" + (if (indexRed)
341341 then "RED"
342342 else if (indexBlack)
343343 then "BLACK"
344344 else "NDF"))
345345 let cmbEO = ("_" + (if (if ((0 >= NUMBER))
346346 then true
347347 else (NUMBER > 36))
348348 then "NDF"
349349 else if (((NUMBER % 2) == 0))
350350 then "EVEN"
351351 else "ODD"))
352352 let cmbLH = ("_" + (if (if ((NUMBER >= 1))
353353 then (18 >= NUMBER)
354354 else false)
355355 then "LOW"
356356 else if (if ((NUMBER >= 19))
357357 then (36 >= NUMBER)
358358 else false)
359359 then "HIGH"
360360 else "NDF"))
361361 let cmbDZ = ("_" + (if (if ((NUMBER >= 1))
362362 then (12 >= NUMBER)
363363 else false)
364364 then "DOZER1"
365365 else if (if ((NUMBER >= 13))
366366 then (24 >= NUMBER)
367367 else false)
368368 then "DOZER2"
369369 else if (if ((NUMBER >= 25))
370370 then (36 >= NUMBER)
371371 else false)
372372 then "DOZER3"
373373 else "NDF"))
374374 let cmbCL = ("_" + (if (if ((0 >= NUMBER))
375375 then true
376376 else (NUMBER > 36))
377377 then "NDF"
378378 else if (((NUMBER % 3) == 1))
379379 then "COLUMN1"
380380 else if (((NUMBER % 3) == 2))
381381 then "COLUMN2"
382382 else "COLUMN3"))
383383 let STATUS = match betGetStatus(idBet) {
384384 case temp: String =>
385385 temp
386386 case _ =>
387387 throw("BET_STATUS_NOT_FOUND")
388388 }
389389 let INFO = match betGetInfo(idBet) {
390390 case temp: String =>
391391 temp
392392 case _ =>
393393 throw("BET_INFO_NOT_FOUND")
394394 }
395395 let INFOS = split(INFO, "||")
396396 let ADDRESSSTRING = INFOS[0]
397397 let ADDRESS = value(addressFromString(ADDRESSSTRING))
398398 let CMB = INFOS[1]
399399 let AMOUNT = value(parseInt(INFOS[2]))
400400 let WIN = value(parseInt(INFOS[3]))
401401 let ADDRESSWON = match addressGetWon(ADDRESSSTRING) {
402402 case temp: Int =>
403403 temp
404404 case _ =>
405405 0
406406 }
407407 let ADDRESSHIT = match addressGetHit(ADDRESSSTRING) {
408408 case temp: Int =>
409409 temp
410410 case _ =>
411411 0
412412 }
413413 let DATAPASSED = DataEntry(gameLabelPassed(GAMESCOUNTER), (value(gameGetPassed(GAMESCOUNTER)) + 1))
414414 if (if (if (if (if ((STATUS == "ACCEPT"))
415415 then (CMB != "")
416416 else false)
417417 then (WIN > 0)
418418 else false)
419419 then (AMOUNT > 0)
420420 else false)
421421 then isDefined(ADDRESS)
422422 else false)
423423 then {
424424 let cmbIN = match indexOf((("|" + CMB) + "|"), numberString) {
425425 case temp: Int =>
426426 (temp > 0)
427427 case _ =>
428428 false
429429 }
430430 if (if (if (if (if (if (cmbIN)
431431 then true
432432 else (CMB == cmbRB))
433433 then true
434434 else (CMB == cmbEO))
435435 then true
436436 else (CMB == cmbLH))
437437 then true
438438 else (CMB == cmbDZ))
439439 then true
440440 else (CMB == cmbCL))
441441 then ScriptResult(WriteSet([DATAPASSED, DataEntry(betLabelStatus(idBet), "WON"), DataEntry(addressLabelWon(ADDRESSSTRING), ((ADDRESSWON + WIN) + AMOUNT)), DataEntry(addressLabelHit(ADDRESSSTRING), (ADDRESSHIT + 1)), DataEntry(gamesLabelTotalAmountWin, ((value(gamesGetTotalAmountWin()) + WIN) + AMOUNT))]), TransferSet([ScriptTransfer(ADDRESS, (WIN + AMOUNT), myAssetId)]))
442442 else WriteSet([DATAPASSED, DataEntry(betLabelStatus(idBet), "LOST")])
443443 }
444444 else throw("GET_WIN_ALREADY_CALLED")
445445 case _ =>
446446 throw("GAME_NOT_FOUND")
447447 }
448448 case _ =>
449449 throw("GAME_NOT_FOUND")
450450 }
451451 case _ =>
452452 throw("INIT_NEEDED")
453453 }
454454
455455
456456
457457 @Callable(i)
458458 func addCmb (cmb,val) = if (checkPermission(i.callerPublicKey))
459459 then throw("addCmb_FORBBIDEN")
460460 else match gamesGetCounter() {
461461 case GAMESCOUNTER: Int =>
462462 if ((GAMESCOUNTER != 0))
463463 then throw("INIT_ALREADY_DONE")
464464 else if (if (if (if (if (if (if ((val == 1))
465465 then true
466466 else (val == 2))
467467 then true
468468 else (val == 5))
469469 then true
470470 else (val == 8))
471471 then true
472472 else (val == 11))
473473 then true
474474 else (val == 17))
475475 then true
476476 else (val == 35))
477477 then WriteSet([DataEntry(("C" + cmb), val)])
478478 else throw("AMOUNT_NOT_FOUND")
479479 case _ =>
480480 throw("INIT_NEEDED")
481481 }
482482
483483
484484
485485 @Callable(i)
486486 func setFee (val) = if (checkPermission(i.callerPublicKey))
487487 then throw("setFee_FORBBIDEN")
488488 else WriteSet([DataEntry("X_FEE", val)])
489489
490490
491491
492492 @Callable(i)
493493 func setUnity (val) = if (checkPermission(i.callerPublicKey))
494494 then throw("setUnity_FORBBIDEN")
495495 else WriteSet([DataEntry("X_UNITY", val)])
496496
497497
498498
499499 @Callable(i)
500500 func initGame () = if (checkPermission(i.callerPublicKey))
501501 then throw("initGame_FORBBIDEN")
502502 else match gamesGetCounter() {
503503 case GAMESCOUNTER: Int =>
504504 throw("INIT_ALREADY_DONE")
505505 case _ =>
506506 WriteSet([DataEntry(gamesLabelCounter, 0), DataEntry(gamesLabelBetsCounter, 0), DataEntry(gamesLabelBetsFeeMoved, 0), DataEntry(gamesLabelTotalAmountWin, 0), DataEntry(gamesLabelTotalAmountBet, 0), DataEntry(gamesLabelTotalAddressBet, 0)])
507507 }
508508
509509
510510
511511 @Callable(i)
512512 func newGame () = if (checkPermission(i.callerPublicKey))
513513 then throw("newGame_FORBBIDEN")
514514 else match gamesGetCounter() {
515515 case GAMESCOUNTER: Int =>
516516 let newGameCounter = (GAMESCOUNTER + 1)
517517 let BETSCOUNTER = value(gamesGetBetsCounter())
518518 let BETSMOVED = value(gamesGetBetsFeeMoved())
519519 let gameMax = (assetBalance(this, myAssetId) - ((BETSCOUNTER - BETSMOVED) * fee))
520520 let halfGameMax = if (((gameMax % 2) == 1))
521521 then ((gameMax - 1) / 2)
522522 else (gameMax / 2)
523523 let sendData = WriteSet([DataEntry(gamesLabelCounter, newGameCounter), DataEntry(gameLabelStatus(newGameCounter), "PLAY"), DataEntry(gameLabelMax(newGameCounter), halfGameMax), DataEntry(gameLabelBets(newGameCounter), 0), DataEntry(gameLabelPassed(newGameCounter), 0), DataEntry(gameLabelHeight(newGameCounter), 0), DataEntry(gameLabelSumSha(newGameCounter), toBase58String(sha256(i.transactionId)))])
524524 if ((UNITY > halfGameMax))
525525 then throw("BALANCE_IS_LOW")
526526 else if ((GAMESCOUNTER == 0))
527527 then sendData
528528 else {
529529 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
530530 if ((CURRSTATUS != "SHOW"))
531531 then throw("CURR_STATUS_IS_NOT_SHOW")
532532 else {
533533 let BETS = value(gameGetBets(GAMESCOUNTER))
534534 let PASSED = value(gameGetPassed(GAMESCOUNTER))
535535 if ((BETS != PASSED))
536536 then throw("WAIT_ALL_PASSED")
537537 else sendData
538538 }
539539 }
540540 case _ =>
541541 throw("INIT_NEEDED")
542542 }
543543
544544
545545
546546 @Callable(i)
547547 func showGame (rsaSign) = if (checkPermission(i.callerPublicKey))
548548 then throw("showGame_FORBBIDEN")
549549 else match gamesGetCounter() {
550550 case GAMESCOUNTER: Int =>
551551 match gameGetSumSha(GAMESCOUNTER) {
552552 case SUMSHA: String =>
553553 let rsaSigValid = rsaVerify(SHA256, fromBase58String(SUMSHA), rsaSign, RSAPUBLIC)
554554 if (!(rsaSigValid))
555555 then throw("INVALID_RSA_SIGN")
556556 else {
557557 let index = (toInt(sha256(rsaSign)) % 37)
558558 let numberString = wheel[index]
559559 let number = value(parseInt(numberString))
560560 let numberCount = match numberGetCount(numberString) {
561561 case temp: Int =>
562562 temp
563563 case _ =>
564564 0
565565 }
566566 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
567567 if ((CURRSTATUS != "PLAY"))
568568 then throw("CURR_STATUS_IS_NOT_PLAY")
569569 else {
570570 let GAMEHEIGHT = value(gameGetHeight(GAMESCOUNTER))
571571 if (if ((GAMEHEIGHT == 0))
572572 then true
573573 else ((GAMEHEIGHT + periodGamePlay) >= height))
574574 then throw("GAME_IS_NOT_END")
575575 else WriteSet([DataEntry(gameLabelStatus(GAMESCOUNTER), "SHOW"), DataEntry(gameLabelNumber(GAMESCOUNTER), number), DataEntry(numberLabelCount(numberString), (numberCount + 1))])
576576 }
577577 }
578578 case _ =>
579579 throw("GAME_NOT_FOUND")
580580 }
581581 case _ =>
582582 throw("INIT_NEEDED")
583583 }
584584
585585
586586
587587 @Callable(i)
588588 func amountToServer (amount) = if (checkPermission(i.callerPublicKey))
589589 then throw("amountToWallet_FORBBIDEN")
590590 else match gamesGetCounter() {
591591 case GAMESCOUNTER: Int =>
592592 if ((GAMESCOUNTER == 0))
593593 then TransferSet([ScriptTransfer(addressFromPublicKey(serverPublicKey), amount, myAssetId)])
594594 else {
595595 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
596596 if ((CURRSTATUS != "SHOW"))
597597 then throw("CURR_STATUS_IS_NOT_SHOW")
598598 else {
599599 let BETS = value(gameGetBets(GAMESCOUNTER))
600600 let PASSED = value(gameGetPassed(GAMESCOUNTER))
601601 if ((BETS != PASSED))
602602 then throw("WAIT_ALL_PASSED")
603603 else TransferSet([ScriptTransfer(addressFromPublicKey(serverPublicKey), amount, myAssetId)])
604604 }
605605 }
606606 case _ =>
607607 throw("INIT_NEEDED")
608608 }
609609
610610
611611
612612 @Callable(i)
613613 func amountWavesToServer (amount) = if (checkPermission(i.callerPublicKey))
614614 then throw("amountToWallet_FORBBIDEN")
615615 else TransferSet([ScriptTransfer(addressFromPublicKey(serverPublicKey), amount, unit)])
616616
617617
618618 @Verifier(tx)
619619 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
620620

github/deemru/w8io/c3f4982 
57.65 ms