tx · Cnnmx5wEX3BT9TY6nMG7ChN6Fbp45tbwsSs72HvxxHYd

3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa:  -0.05000000 Waves

2019.10.25 16:15 [735687] smart account 3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa > SELF 0.00000000 Waves

{ "type": 13, "id": "Cnnmx5wEX3BT9TY6nMG7ChN6Fbp45tbwsSs72HvxxHYd", "fee": 5000000, "feeAssetId": null, "timestamp": 1572009349357, "version": 1, "sender": "3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa", "senderPublicKey": "DdkgRd7YzZtSU3hXJc7sHsU7sM8nUSEwkzqZCaCTXKRe", "proofs": [ "BrfLqa67j51c1s1kdFtviCa4s1DosKdhkUhGCBc72zJh6uoXDxTbAA5HMfpg4MVPTprntni8QQKWbyLFaqy92BW" ], "script": "base64:AAIDAAAAAAAAAA4IARIECgIIARIECgIICAAAACgAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAmRMUzB0TFMxQ1JVZEpUaUJRVlVKTVNVTWdTMFZaTFMwdExTMWNiazFKU1VKSmFrRk9RbWRyY1docmFVYzVkekJDUVZGRlJrRkJUME5CVVRoQlRVbEpRa05uUzBOQlVVVkJiVTlzVWtKVVdVVlBNMGczV1RseVFtMXZSbEZjYmtadU5ETTVNbEI0TUZGM01UTkVjMlJGYUc1NlRVZ3lZMm8yV1RWNWJWQjFRMDlNVFU1bE5YRnlWWHBSYkRodlVreDZTVUo2UmxaTldteDNWVmxzTW1KY2JtOXpjazlKZUZGaVdVWTNWMVpSVjNadlZuaEZWREZaU1dkRWJUTk9lbnBQVEVFMWRVZzNRMHRQTUhOdWMyaHRUVVpEUkU5YVJXVjNOREZIYWt0b00xQmNibWQ0SzI1aVFXZDFVRGxhVVZCbWNWTmhaa1Z0UXpORFRpODBlVVJ6U25KTGNtbFNibWxhU204NWFsTXZORXhNYzFKTGQwSTNTRUZhU0hwdlJqbE1URGRjYm5SVFdrZ3phSFJoVGtkMFltUlVhM2hhTVZSNlUxUXpUV0l5VmxCVGVuTmFkbEZFYjJOWVZWWlBiVXBQZFRCdk1qbGhUMWtyUjJ0SEwwYzBVa05MTUVaY2JrSlhVVWhGVlhaRE5URlVVa1JUTldzNGFtRmtNRTh4VFc5aWFsRmpObUl4T0dRclpuVnZWa1prVG1aYWQwZElLM1ZHZFdSMFVFY3pWVXBVWmpKdGEzcGNibHBSU1VSQlVVRkNYRzR0TFMwdExVVk9SQ0JRVlVKTVNVTWdTMFZaTFMwdExTMD0AAAAAD0dBTUVTQ09VTlRFUktFWQIAAAAJJEdBTUVfTlVNAAAAAA5SRVNFUlZBVElPTktFWQIAAAAQJFJFU0VSVkVEX0FNT1VOVAAAAAAEV0JFVAEAAAAgD5uLrFpvaCc5H1Jt+IyA7GJAqs11k4f4jn5gjTii4MkAAAAADldBTExFVFdBVkVTQkVUCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUjmD063sxkBCLSiisiwOufXcqpucc4Di4AAAAAAxXQUxMRVRNQ0FGRkUJAQAAAAdBZGRyZXNzAAAAAQEAAAAAAAAAAAdXQVZFTEVUCQAAaAAAAAIJAABoAAAAAgAAAAAAAAAAZAAAAAAAAAAD6AAAAAAAAAAD6AAAAAALRkVFV0FWRVNCRVQAAAAAAAAAAAQAAAAACUZFRU1DQUZFRQAAAAAAAAAAAgAAAAAOU1RBVEVTVUJNSVRURUQCAAAACVNVQk1JVFRFRAAAAAAIU1RBVEVXT04CAAAAA1dPTgAAAAAJU1RBVEVMT1NUAgAAAARMT1NUAAAAAAlST0xMVU5ERVICAAAABVVOREVSAAAAAAhST0xMT1ZFUgIAAAAET1ZFUgAAAAAGQkVUTUlOCQAAaAAAAAIAAAAAAAAAAGQFAAAAB1dBVkVMRVQAAAAABkJFVE1BWAkAAGgAAAACCQAAaAAAAAIAAAAAAAAAA+gAAAAAAAAAAGQFAAAAB1dBVkVMRVQAAAAADVBSRURJQ1RJT05NSU4AAAAAAAAAAAQAAAAADVBSRURJQ1RJT05NQVgAAAAAAAAAAGQAAAAADElkeEdhbWVTdGF0ZQAAAAAAAAAAAAAAAAANSWR4UHJlZGljdGlvbgAAAAAAAAAAAQAAAAALSWR4Um9sbFR5cGUAAAAAAAAAAAIAAAAAEUlkeFBsYXllclB1YktleTU4AAAAAAAAAAADAAAAAAlJZHhXaW5BbXQAAAAAAAAAAAQAAAAAB0lkeFJhbmQAAAAAAAAAAAUBAAAAEEluY3JlbWVudEdhbWVOdW0AAAAABAAAAAdnYW1lTnVtBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAD0dBTUVTQ09VTlRFUktFWQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANudW0FAAAAByRtYXRjaDAFAAAAA251bQAAAAAAAAAAAAkAAGQAAAACBQAAAAdnYW1lTnVtAAAAAAAAAAABAQAAABJFeHRyYWN0UmVzZXJ2ZWRBbXQAAAAABAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAADlJFU0VSVkFUSU9OS0VZAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAABAAAAHlZhbGlkYXRlQW5kSW5jcmVhc2VSZXNlcnZlZEFtdAAAAAEAAAAGd2luQW10BAAAABFuZXdSZXNlcnZlZEFtb3VudAkAAGQAAAACCQEAAAASRXh0cmFjdFJlc2VydmVkQW10AAAAAAUAAAAGd2luQW10BAAAAAdiYWxhbmNlCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwMJAABmAAAAAgUAAAARbmV3UmVzZXJ2ZWRBbW91bnQFAAAAB2JhbGFuY2UJAAACAAAAAQIAAABRSW5zdWZmaWNpZW50IGZ1bmRzIG9uIFdhdmVzYmV0IGFjY291bnQuIFRyYW5zYWN0aW9uIHdhcyByZWplY3RlZCBmb3IgeW91ciBzYWZldHkuBQAAABFuZXdSZXNlcnZlZEFtb3VudAEAAAATRm9ybWF0R2FtZURhdGFQYXJhbQAAAAEAAAABcAQAAAABcwkAATEAAAABBQAAAAFwAwkAAAAAAAACBQAAAAFzAAAAAAAAAAAACQAAAgAAAAECAAAAJVBhcmFtZXRlciBzaXplIG11c3QgYmUgZ3JlYXRlciB0aGVuIDADCQAAZgAAAAIFAAAAAXMAAAAAAAAAAGMJAAACAAAAAQIAAAAkUGFyYW1ldGVyIHNpemUgbXVzdCBiZSBsZXNzIHRoZW4gMTAwAwkAAGYAAAACAAAAAAAAAAAKBQAAAAFzCQABLAAAAAIJAAEsAAAAAgIAAAABMAkAAaQAAAABBQAAAAFzBQAAAAFwCQABLAAAAAIJAAGkAAAAAQUAAAABcwUAAAABcAEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGAAAACWdhbWVTdGF0ZQAAAApwcmVkaWN0aW9uAAAACHJvbGxUeXBlAAAADnBsYXllclB1YktleTU4AAAABndpbkFtdAAAAARyYW5kBAAAAAxmdWxsU3RhdGVTdHIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQEAAAATRm9ybWF0R2FtZURhdGFQYXJhbQAAAAEFAAAACWdhbWVTdGF0ZQIAAAABXwkBAAAAE0Zvcm1hdEdhbWVEYXRhUGFyYW0AAAABCQABpAAAAAEFAAAACnByZWRpY3Rpb24CAAAAAV8JAQAAABNGb3JtYXRHYW1lRGF0YVBhcmFtAAAAAQUAAAAIcm9sbFR5cGUCAAAAAV8JAQAAABNGb3JtYXRHYW1lRGF0YVBhcmFtAAAAAQUAAAAOcGxheWVyUHViS2V5NTgCAAAAAV8JAQAAABNGb3JtYXRHYW1lRGF0YVBhcmFtAAAAAQkAAaQAAAABBQAAAAZ3aW5BbXQDCQAAAAAAAAIFAAAABHJhbmQCAAAAAAUAAAAMZnVsbFN0YXRlU3RyCQABLAAAAAIJAAEsAAAAAgUAAAAMZnVsbFN0YXRlU3RyAgAAAAFfCQEAAAATRm9ybWF0R2FtZURhdGFQYXJhbQAAAAEFAAAABHJhbmQBAAAAGVJlbW92ZVVuZGVyc2NvcmVJZlByZXNlbnQAAAABAAAACXJlbWFpbmluZwMJAABmAAAAAgkAATEAAAABBQAAAAlyZW1haW5pbmcAAAAAAAAAAAAJAAEwAAAAAgUAAAAJcmVtYWluaW5nAAAAAAAAAAABBQAAAAlyZW1haW5pbmcBAAAAElBhcnNlTmV4dEF0dHJpYnV0ZQAAAAEAAAAJcmVtYWluaW5nBAAAAAFzCQABMQAAAAEFAAAACXJlbWFpbmluZwMJAABmAAAAAgUAAAABcwAAAAAAAAAAAAQAAAACbm4JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAS8AAAACBQAAAAlyZW1haW5pbmcAAAAAAAAAAAIEAAAAAXYJAAEvAAAAAgkAATAAAAACBQAAAAlyZW1haW5pbmcAAAAAAAAAAAIFAAAAAm5uBAAAAAx0bXBSZW1haW5pbmcJAAEwAAAAAgUAAAAJcmVtYWluaW5nCQAAZAAAAAIFAAAAAm5uAAAAAAAAAAACBAAAAA5yZW1haW5pbmdTdGF0ZQkBAAAAGVJlbW92ZVVuZGVyc2NvcmVJZlByZXNlbnQAAAABBQAAAAx0bXBSZW1haW5pbmcJAARMAAAAAgUAAAABdgkABEwAAAACBQAAAA5yZW1haW5pbmdTdGF0ZQUAAAADbmlsCQAAAgAAAAECAAAANEVtcHR5IHN0cmluZyB3YXMgcGFzc2VkIGludG8gcGFyc2VOZXh0QXR0cmlidXRlIGZ1bmMBAAAAE1BhcnNlR2FtZVJhd0RhdGFTdHIAAAABAAAAC3Jhd1N0YXRlU3RyBAAAAAlnYW1lU3RhdGUJAQAAABJQYXJzZU5leHRBdHRyaWJ1dGUAAAABBQAAAAtyYXdTdGF0ZVN0cgQAAAAKcHJlZGljdGlvbgkBAAAAElBhcnNlTmV4dEF0dHJpYnV0ZQAAAAEJAAGRAAAAAgUAAAAJZ2FtZVN0YXRlAAAAAAAAAAABBAAAAAhyb2xsVHlwZQkBAAAAElBhcnNlTmV4dEF0dHJpYnV0ZQAAAAEJAAGRAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAAQQAAAAOcGxheWVyUHViS2V5NTgJAQAAABJQYXJzZU5leHRBdHRyaWJ1dGUAAAABCQABkQAAAAIFAAAACHJvbGxUeXBlAAAAAAAAAAABBAAAAAZ3aW5BbXQJAQAAABJQYXJzZU5leHRBdHRyaWJ1dGUAAAABCQABkQAAAAIFAAAADnBsYXllclB1YktleTU4AAAAAAAAAAABCQAETAAAAAIJAAGRAAAAAgUAAAAJZ2FtZVN0YXRlAAAAAAAAAAAACQAETAAAAAIJAAGRAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAAAkABEwAAAACCQABkQAAAAIFAAAACHJvbGxUeXBlAAAAAAAAAAAACQAETAAAAAIJAAGRAAAAAgUAAAAOcGxheWVyUHViS2V5NTgAAAAAAAAAAAAJAARMAAAAAgkAAZEAAAACBQAAAAZ3aW5BbXQAAAAAAAAAAAAFAAAAA25pbAEAAAATRXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEAAAAGZ2FtZUlkBAAAAApyYXdEYXRhU3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAABmdhbWVJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAANzdHIFAAAAByRtYXRjaDAFAAAAA3N0cgkAAAIAAAABCQABLAAAAAICAAAAFkNvdWxkbid0IGZpbmQgZ2FtZSBieSAFAAAABmdhbWVJZAkBAAAAE1BhcnNlR2FtZVJhd0RhdGFTdHIAAAABBQAAAApyYXdEYXRhU3RyAQAAABNEZWNyZWFzZVJlc2VydmVkQW10AAAAAgAAAAZnYW1lSWQAAAAGd2luQW10BAAAABFuZXdSZXNlcnZlZEFtb3VudAkAAGUAAAACCQEAAAASRXh0cmFjdFJlc2VydmVkQW10AAAAAAUAAAAGd2luQW10AwkAAGYAAAACAAAAAAAAAAAABQAAABFuZXdSZXNlcnZlZEFtb3VudAkAAAIAAAABAgAAAEJJbnZhbGlkIERpY2UgUm9sbGVyIGFjY291bnQgc3RhdGUgLSByZXNlcnZlZCBhbW91bnQgaXMgbGVzcyB0aGFuIDAJAQAAAAlEYXRhRW50cnkAAAACBQAAAA5SRVNFUlZBVElPTktFWQUAAAARbmV3UmVzZXJ2ZWRBbW91bnQBAAAAD0dlbmVyYXRlUmFuZEludAAAAAIAAAAGZ2FtZUlkAAAAB3JzYVNpZ24EAAAAC3JzYVNpZ1ZhbGlkCQAB+AAAAAQFAAAABlNIQTI1NgkAAZsAAAABBQAAAAZnYW1lSWQJAAGbAAAAAQUAAAAHcnNhU2lnbgUAAAAJUlNBUFVCTElDAwUAAAALcnNhU2lnVmFsaWQEAAAABHJhbmQJAABqAAAAAgkABLEAAAABCQAB9wAAAAEJAAGbAAAAAQUAAAAHcnNhU2lnbgAAAAAAAAAAZAMJAABmAAAAAgAAAAAAAAAAAAUAAAAEcmFuZAkAAGQAAAACCQAAaAAAAAIA//////////8FAAAABHJhbmQAAAAAAAAAAAEJAABkAAAAAgUAAAAEcmFuZAAAAAAAAAAAAQkAAAIAAAABAgAAABVJbnZhbGlkIFJTQSBzaWduYXR1cmUBAAAACVJhbmRUb1N0cgAAAAEAAAABcgMDCQAAZwAAAAIFAAAAAXIAAAAAAAAAAAEJAABnAAAAAgAAAAAAAAAAZAUAAAABcgcJAAGkAAAAAQUAAAABcgkAAAIAAAABCQABLAAAAAICAAAAPFVuc3VwcG9ydGVkIHIgcGFyYW1ldGVyIHBhc3NlZDogZXhwZWN0ZWQ9WzEsLi4uLDEwMF0gYWN0dWFsPQkAAaQAAAABBQAAAAFyAQAAAAxXaW5TY3JpcHRTZXQAAAAEAAAABmdhbWVJZAAAAA1wbGF5ZXJBZGRyZXNzAAAABndpbkFtdAAAAA5uZXdHYW1lRGF0YVN0cgQAAAAOdFNldENvbW1vbkRhdGEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAANcGxheWVyQWRkcmVzcwUAAAAGd2luQW10BQAAAARXQkVUBQAAAANuaWwEAAAADXdyaXRlRGljZVBsYXkJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAAB0dhbWUgSWQFAAAABmdhbWVJZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAOUGxheWVyIEFkZHJlc3MJAAQlAAAAAQUAAAANcGxheWVyQWRkcmVzcwUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgUAAAANd3JpdGVEaWNlUGxheQkBAAAAC1RyYW5zZmVyU2V0AAAAAQUAAAAOdFNldENvbW1vbkRhdGEBAAAACk11bHRpcGxpZXIAAAACAAAACnByZWRpY3Rpb24AAAAIcm9sbFR5cGUDCQAAAAAAAAIFAAAACHJvbGxUeXBlBQAAAAlST0xMVU5ERVIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAEAAAAAAACWTJADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAIAAAAAAABLJkgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAMAAAAAAAAyGYIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAQAAAAAAAAlkyQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAUAAAAAAAAeD1ADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAYAAAAAAAAZDLwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAcAAAAAAAAVeKQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAgAAAAAAAASyZIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAkAAAAAAAAQsygDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAoAAAAAAAAPB6gDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAsAAAAAAAANqdoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAAwAAAAAAAAMhl4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAA0AAAAAAAALj7oDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAA4AAAAAAAAKvFIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAA8AAAAAAAAKBRQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABAAAAAAAAAJZMQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABEAAAAAAAAI11IDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABIAAAAAAAAIWZQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABMAAAAAAAAH6RQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABQAAAAAAAAHg9QDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABUAAAAAAAAHKDADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABYAAAAAAAAG1OgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABcAAAAAAAAGiOQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABgAAAAAAAAGQyoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABkAAAAAAAAGAxADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABoAAAAAAAAFx9gDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABsAAAAAAAAFkQoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAABwAAAAAAAAFXiQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAB0AAAAAAAAFLsIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAB4AAAAAAAAFAooDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAB8AAAAAAAAE2SwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACAAAAAAAAAEsmIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACEAAAAAAAAEjfADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACIAAAAAAAAEa6QDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACMAAAAAAAAES0wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACQAAAAAAAAELMoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACUAAAAAAAAD9IoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACYAAAAAAAAD9IoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACcAAAAAAAAD2pADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACgAAAAAAAADweoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACkAAAAAAAADqnADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACoAAAAAAAADlBgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACsAAAAAAAADfsQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAACwAAAAAAAADanQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAC0AAAAAAAADVwADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAC4AAAAAAAADRHIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAC8AAAAAAAADMqIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADAAAAAAAAADIZADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADEAAAAAAAADETwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADIAAAAAAAADAYgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADMAAAAAAAAC8moDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADQAAAAAAAAC4+wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADUAAAAAAAAC1fADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADYAAAAAAAACyIADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADcAAAAAAAACu5IDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADgAAAAAAAACrxIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADkAAAAAAAACowADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADoAAAAAAAACl1wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADsAAAAAAAACjBwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAADwAAAAAAAACgUADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAD0AAAAAAAACdr4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAD4AAAAAAAACbJYDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAD8AAAAAAAACYrQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEAAAAAAAAACWSwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEEAAAAAAAACT+oDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEIAAAAAAAACRvgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEMAAAAAAAACPkIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEQAAAAAAAACNdIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEUAAAAAAAACLZ4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEYAAAAAAAACJaYDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEcAAAAAAAACHeoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEgAAAAAAAACFmADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEkAAAAAAAACDxIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEoAAAAAAAACB+wDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEsAAAAAAAACAQIDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAEwAAAAAAAAB+kADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAE0AAAAAAAAB87ADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAE4AAAAAAAAB7UgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAE8AAAAAAAAB5wgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFAAAAAAAAAB4PADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFEAAAAAAAAB2wADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFIAAAAAAAAB1TgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFMAAAAAAAABz44DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFQAAAAAAAABygwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFUAAAAAAAABxKgDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFYAAAAAAAABv2IDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFcAAAAAAAABujoDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFgAAAAAAAABtToDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFkAAAAAAAABsE4DCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFoAAAAAAAABq4ADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFsAAAAAAAABptADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAFwAAAAAAAABojQDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAF0AAAAAAAABnbYDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAF4AAAAAAAABmUwDCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAF8AAAAAAAABlQADCQAAAAAAAAIFAAAACnByZWRpY3Rpb24AAAAAAAAAAGAAAAAAAAABlQAAAAAAAAABhqADCQAAAAAAAAIFAAAACHJvbGxUeXBlBQAAAAhST0xMT1ZFUgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAABAAAAAAAAAGVAAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAABQAAAAAAAAGVAAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAABgAAAAAAAAGZTAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAABwAAAAAAAAGdtgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAACAAAAAAAAAGiNAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAACQAAAAAAAAGm0AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAACgAAAAAAAAGrgAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAACwAAAAAAAAGwTgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAADAAAAAAAAAG1OgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAADQAAAAAAAAG6OgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAADgAAAAAAAAG/YgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAADwAAAAAAAAHEqAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAEAAAAAAAAAHKDAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAEQAAAAAAAAHPjgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAEgAAAAAAAAHVOAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAEwAAAAAAAAHbAAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAFAAAAAAAAAHg8AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAFQAAAAAAAAHnCAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAFgAAAAAAAAHtSAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAFwAAAAAAAAHzsAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAGAAAAAAAAAH6QAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAGQAAAAAAAAIBAgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAGgAAAAAAAAIH7AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAGwAAAAAAAAIPEgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAHAAAAAAAAAIWYAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAHQAAAAAAAAId6gMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAHgAAAAAAAAIlpgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAHwAAAAAAAAItngMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAIAAAAAAAAAI10gMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAIQAAAAAAAAI+QgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAIgAAAAAAAAJG+AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAIwAAAAAAAAJP6gMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAJAAAAAAAAAJZLAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAJQAAAAAAAAJitAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAJgAAAAAAAAJslgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAJwAAAAAAAAJ2vgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKAAAAAAAAAKBQAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKQAAAAAAAAKMHAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKgAAAAAAAAKXXAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKwAAAAAAAAKjAAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALAAAAAAAAAKvEgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALQAAAAAAAAK7kgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALgAAAAAAAALV8AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALwAAAAAAAALV8AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAMAAAAAAAAALj7AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAMQAAAAAAAALyagMJAAAAAAAAAgUAAAAKcHJlZGlj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YXJlIG5vdCBlbm91Z2ggd2F2ZXMsIGl0IHRha2VzIDAuMDEgV2F2ZXMgdG8gYmV0LiBHYW1lIGFib3J0ZWQuAwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAUAAAAEV0JFVAkAAAIAAAABAgAAAClCZXQgYW1vdW50IG11c3QgYmUgaW4gV2JldC4gR2FtZSBhYm9ydGVkLgMFAAAACmZlZUFzc2V0SWQJAAACAAAAAQIAAAAxVHJhbnNhY3Rpb24ncyBmZWUgbXVzdCBiZSBpbiBXYXZlcy4gR2FtZSBhYm9ydGVkLgMFAAAACmdhbWVJZFVzZWQJAAACAAAAAQIAAAAxUGFzc2VkIGdhbWVJZCBoYWQgYmVlbiB1c2VkIGJlZm9yZS4gR2FtZSBhYm9ydGVkLgQAAAAKbmV3R2FtZU51bQkBAAAAEEluY3JlbWVudEdhbWVOdW0AAAAABAAAAA5wbGF5ZXJQdWJLZXk1OAkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAC2dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGBQAAAA5TVEFURVNVQk1JVFRFRAUAAAAKcHJlZGljdGlvbgUAAAAIcm9sbFR5cGUFAAAADnBsYXllclB1YktleTU4BQAAAAZ3aW5BbXQCAAAAAAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD0dBTUVTQ09VTlRFUktFWQUAAAAKbmV3R2FtZU51bQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAAtnYW1lRGF0YVN0cgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADldBTExFVFdBVkVTQkVUCQAAaQAAAAIJAABoAAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAtGRUVXQVZFU0JFVAAAAAAAAAAAZAUAAAAEV0JFVAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAR0aGlzAAAAAAAAB6EgBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAId2l0aGRyYXcAAAACAAAABmdhbWVJZAAAAAdyc2FTaWduBAAAAAxnYW1lRGF0YUxpc3QJAQAAABNFeHRyYWN0R2FtZURhdGFMaXN0AAAAAQUAAAAGZ2FtZUlkBAAAAAlnYW1lU3RhdGUJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAxJZHhHYW1lU3RhdGUJAAACAAAAAQUAAAAJZ2FtZVN0YXRlAAAAAEGKs+k=", "chainId": 84, "height": 735687, "spentComplexity": 0 } View: original | compacted Prev: 2ihyiLaTGR8DZfPRgSFcft4VMQ6ptk5R4pkYYuef8hA4 Next: Hiz7sGXdT1BZnHCoPeksdpWQznuV5AoxQmRS4XraJt9n Diff:
OldNewDifferences
127127
128128
129129 func ExtractGameDataList (gameId) = {
130- let rawDataStr = gameId
130+ let rawDataStr = match getString(this, gameId) {
131+ case str: String =>
132+ str
133+ case _ =>
134+ throw(("Couldn't find game by " + gameId))
135+ }
131136 ParseGameRawDataStr(rawDataStr)
132137 }
133138
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RSAPUBLIC = fromBase64String("LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbU9sUkJUWUVPM0g3WTlyQm1vRlFcbkZuNDM5MlB4MFF3MTNEc2RFaG56TUgyY2o2WTV5bVB1Q09MTU5lNXFyVXpRbDhvUkx6SUJ6RlZNWmx3VVlsMmJcbm9zck9JeFFiWUY3V1ZRV3ZvVnhFVDFZSWdEbTNOenpPTEE1dUg3Q0tPMHNuc2htTUZDRE9aRWV3NDFHaktoM1Bcbmd4K25iQWd1UDlaUVBmcVNhZkVtQzNDTi80eURzSnJLcmlSbmlaSm85alMvNExMc1JLd0I3SEFaSHpvRjlMTDdcbnRTWkgzaHRhTkd0YmRUa3haMVR6U1QzTWIyVlBTenNadlFEb2NYVVZPbUpPdTBvMjlhT1krR2tHL0c0UkNLMEZcbkJXUUhFVXZDNTFUUkRTNWs4amFkME8xTW9ialFjNmIxOGQrZnVvVkZkTmZad0dIK3VGdWR0UEczVUpUZjJta3pcblpRSURBUUFCXG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0=")
55
66 let GAMESCOUNTERKEY = "$GAME_NUM"
77
88 let RESERVATIONKEY = "$RESERVED_AMOUNT"
99
1010 let WBET = base58'23vgV9p9pD83A7CFbsDEc4zjanep7UeFo4ZRS6oGorhv'
1111
1212 let WALLETWAVESBET = Address(base58'3N2tusqAtDctK8iSTXS6F9rimmftmSuwLUX')
1313
1414 let WALLETMCAFFE = Address(base58'')
1515
1616 let WAVELET = ((100 * 1000) * 1000)
1717
1818 let FEEWAVESBET = 4
1919
2020 let FEEMCAFEE = 2
2121
2222 let STATESUBMITTED = "SUBMITTED"
2323
2424 let STATEWON = "WON"
2525
2626 let STATELOST = "LOST"
2727
2828 let ROLLUNDER = "UNDER"
2929
3030 let ROLLOVER = "OVER"
3131
3232 let BETMIN = (100 * WAVELET)
3333
3434 let BETMAX = ((1000 * 100) * WAVELET)
3535
3636 let PREDICTIONMIN = 4
3737
3838 let PREDICTIONMAX = 100
3939
4040 let IdxGameState = 0
4141
4242 let IdxPrediction = 1
4343
4444 let IdxRollType = 2
4545
4646 let IdxPlayerPubKey58 = 3
4747
4848 let IdxWinAmt = 4
4949
5050 let IdxRand = 5
5151
5252 func IncrementGameNum () = {
5353 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
5454 case num: Int =>
5555 num
5656 case _ =>
5757 0
5858 }
5959 (gameNum + 1)
6060 }
6161
6262
6363 func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
6464 case a: Int =>
6565 a
6666 case _ =>
6767 0
6868 }
6969
7070
7171 func ValidateAndIncreaseReservedAmt (winAmt) = {
7272 let newReservedAmount = (ExtractReservedAmt() + winAmt)
7373 let balance = wavesBalance(this)
7474 if ((newReservedAmount > balance))
7575 then throw("Insufficient funds on Wavesbet account. Transaction was rejected for your safety.")
7676 else newReservedAmount
7777 }
7878
7979
8080 func FormatGameDataParam (p) = {
8181 let s = size(p)
8282 if ((s == 0))
8383 then throw("Parameter size must be greater then 0")
8484 else if ((s > 99))
8585 then throw("Parameter size must be less then 100")
8686 else if ((10 > s))
8787 then (("0" + toString(s)) + p)
8888 else (toString(s) + p)
8989 }
9090
9191
9292 func FormatGameDataStr (gameState,prediction,rollType,playerPubKey58,winAmt,rand) = {
9393 let fullStateStr = ((((((((FormatGameDataParam(gameState) + "_") + FormatGameDataParam(toString(prediction))) + "_") + FormatGameDataParam(rollType)) + "_") + FormatGameDataParam(playerPubKey58)) + "_") + FormatGameDataParam(toString(winAmt)))
9494 if ((rand == ""))
9595 then fullStateStr
9696 else ((fullStateStr + "_") + FormatGameDataParam(rand))
9797 }
9898
9999
100100 func RemoveUnderscoreIfPresent (remaining) = if ((size(remaining) > 0))
101101 then drop(remaining, 1)
102102 else remaining
103103
104104
105105 func ParseNextAttribute (remaining) = {
106106 let s = size(remaining)
107107 if ((s > 0))
108108 then {
109109 let nn = parseIntValue(take(remaining, 2))
110110 let v = take(drop(remaining, 2), nn)
111111 let tmpRemaining = drop(remaining, (nn + 2))
112112 let remainingState = RemoveUnderscoreIfPresent(tmpRemaining)
113113 [v, remainingState]
114114 }
115115 else throw("Empty string was passed into parseNextAttribute func")
116116 }
117117
118118
119119 func ParseGameRawDataStr (rawStateStr) = {
120120 let gameState = ParseNextAttribute(rawStateStr)
121121 let prediction = ParseNextAttribute(gameState[1])
122122 let rollType = ParseNextAttribute(prediction[1])
123123 let playerPubKey58 = ParseNextAttribute(rollType[1])
124124 let winAmt = ParseNextAttribute(playerPubKey58[1])
125125 [gameState[0], prediction[0], rollType[0], playerPubKey58[0], winAmt[0]]
126126 }
127127
128128
129129 func ExtractGameDataList (gameId) = {
130- let rawDataStr = gameId
130+ let rawDataStr = match getString(this, gameId) {
131+ case str: String =>
132+ str
133+ case _ =>
134+ throw(("Couldn't find game by " + gameId))
135+ }
131136 ParseGameRawDataStr(rawDataStr)
132137 }
133138
134139
135140 func DecreaseReservedAmt (gameId,winAmt) = {
136141 let newReservedAmount = (ExtractReservedAmt() - winAmt)
137142 if ((0 > newReservedAmount))
138143 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
139144 else DataEntry(RESERVATIONKEY, newReservedAmount)
140145 }
141146
142147
143148 func GenerateRandInt (gameId,rsaSign) = {
144149 let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), toBytes(rsaSign), RSAPUBLIC)
145150 if (rsaSigValid)
146151 then {
147152 let rand = (toInt(sha256(toBytes(rsaSign))) % 100)
148153 if ((0 > rand))
149154 then ((-1 * rand) + 1)
150155 else (rand + 1)
151156 }
152157 else throw("Invalid RSA signature")
153158 }
154159
155160
156161 func RandToStr (r) = if (if ((r >= 1))
157162 then (100 >= r)
158163 else false)
159164 then toString(r)
160165 else throw(("Unsupported r parameter passed: expected=[1,...,100] actual=" + toString(r)))
161166
162167
163168 func WinScriptSet (gameId,playerAddress,winAmt,newGameDataStr) = {
164169 let tSetCommonData = [ScriptTransfer(playerAddress, winAmt, WBET)]
165170 let writeDicePlay = WriteSet([DataEntry("Game Id", gameId), DataEntry("Player Address", toString(playerAddress))])
166171 ScriptResult(writeDicePlay, TransferSet(tSetCommonData))
167172 }
168173
169174
170175 func Multiplier (prediction,rollType) = if ((rollType == ROLLUNDER))
171176 then if ((prediction == 1))
172177 then 9850000
173178 else if ((prediction == 2))
174179 then 4925000
175180 else if ((prediction == 3))
176181 then 3283330
177182 else if ((prediction == 4))
178183 then 2462500
179184 else if ((prediction == 5))
180185 then 1970000
181186 else if ((prediction == 6))
182187 then 1641660
183188 else if ((prediction == 7))
184189 then 1407140
185190 else if ((prediction == 8))
186191 then 1231250
187192 else if ((prediction == 9))
188193 then 1094440
189194 else if ((prediction == 10))
190195 then 985000
191196 else if ((prediction == 11))
192197 then 895450
193198 else if ((prediction == 12))
194199 then 820830
195200 else if ((prediction == 13))
196201 then 757690
197202 else if ((prediction == 14))
198203 then 703570
199204 else if ((prediction == 15))
200205 then 656660
201206 else if ((prediction == 16))
202207 then 615620
203208 else if ((prediction == 17))
204209 then 579410
205210 else if ((prediction == 18))
206211 then 547220
207212 else if ((prediction == 19))
208213 then 518420
209214 else if ((prediction == 20))
210215 then 492500
211216 else if ((prediction == 21))
212217 then 469040
213218 else if ((prediction == 22))
214219 then 447720
215220 else if ((prediction == 23))
216221 then 428260
217222 else if ((prediction == 24))
218223 then 410410
219224 else if ((prediction == 25))
220225 then 394000
221226 else if ((prediction == 26))
222227 then 378840
223228 else if ((prediction == 27))
224229 then 364810
225230 else if ((prediction == 28))
226231 then 351780
227232 else if ((prediction == 29))
228233 then 339650
229234 else if ((prediction == 30))
230235 then 328330
231236 else if ((prediction == 31))
232237 then 317740
233238 else if ((prediction == 32))
234239 then 307810
235240 else if ((prediction == 33))
236241 then 298480
237242 else if ((prediction == 34))
238243 then 289700
239244 else if ((prediction == 35))
240245 then 281420
241246 else if ((prediction == 36))
242247 then 273610
243248 else if ((prediction == 37))
244249 then 259210
245250 else if ((prediction == 38))
246251 then 259210
247252 else if ((prediction == 39))
248253 then 252560
249254 else if ((prediction == 40))
250255 then 246250
251256 else if ((prediction == 41))
252257 then 240240
253258 else if ((prediction == 42))
254259 then 234520
255260 else if ((prediction == 43))
256261 then 229060
257262 else if ((prediction == 44))
258263 then 223860
259264 else if ((prediction == 45))
260265 then 218880
261266 else if ((prediction == 46))
262267 then 214130
263268 else if ((prediction == 47))
264269 then 209570
265270 else if ((prediction == 48))
266271 then 205200
267272 else if ((prediction == 49))
268273 then 201020
269274 else if ((prediction == 50))
270275 then 197000
271276 else if ((prediction == 51))
272277 then 193130
273278 else if ((prediction == 52))
274279 then 189420
275280 else if ((prediction == 53))
276281 then 185840
277282 else if ((prediction == 54))
278283 then 182400
279284 else if ((prediction == 55))
280285 then 179090
281286 else if ((prediction == 56))
282287 then 175890
283288 else if ((prediction == 57))
284289 then 172800
285290 else if ((prediction == 58))
286291 then 169820
287292 else if ((prediction == 59))
288293 then 166940
289294 else if ((prediction == 60))
290295 then 164160
291296 else if ((prediction == 61))
292297 then 161470
293298 else if ((prediction == 62))
294299 then 158870
295300 else if ((prediction == 63))
296301 then 156340
297302 else if ((prediction == 64))
298303 then 153900
299304 else if ((prediction == 65))
300305 then 151530
301306 else if ((prediction == 66))
302307 then 149240
303308 else if ((prediction == 67))
304309 then 147010
305310 else if ((prediction == 68))
306311 then 144850
307312 else if ((prediction == 69))
308313 then 142750
309314 else if ((prediction == 70))
310315 then 140710
311316 else if ((prediction == 71))
312317 then 138730
313318 else if ((prediction == 72))
314319 then 136800
315320 else if ((prediction == 73))
316321 then 134930
317322 else if ((prediction == 74))
318323 then 133100
319324 else if ((prediction == 75))
320325 then 131330
321326 else if ((prediction == 76))
322327 then 129600
323328 else if ((prediction == 77))
324329 then 127920
325330 else if ((prediction == 78))
326331 then 126280
327332 else if ((prediction == 79))
328333 then 124680
329334 else if ((prediction == 80))
330335 then 123120
331336 else if ((prediction == 81))
332337 then 121600
333338 else if ((prediction == 82))
334339 then 120120
335340 else if ((prediction == 83))
336341 then 118670
337342 else if ((prediction == 84))
338343 then 117260
339344 else if ((prediction == 85))
340345 then 115880
341346 else if ((prediction == 86))
342347 then 114530
343348 else if ((prediction == 87))
344349 then 113210
345350 else if ((prediction == 88))
346351 then 111930
347352 else if ((prediction == 89))
348353 then 110670
349354 else if ((prediction == 90))
350355 then 109440
351356 else if ((prediction == 91))
352357 then 108240
353358 else if ((prediction == 92))
354359 then 107060
355360 else if ((prediction == 93))
356361 then 105910
357362 else if ((prediction == 94))
358363 then 104780
359364 else if ((prediction == 95))
360365 then 103680
361366 else if ((prediction == 96))
362367 then 103680
363368 else 100000
364369 else if ((rollType == ROLLOVER))
365370 then if ((prediction == 4))
366371 then 103680
367372 else if ((prediction == 5))
368373 then 103680
369374 else if ((prediction == 6))
370375 then 104780
371376 else if ((prediction == 7))
372377 then 105910
373378 else if ((prediction == 8))
374379 then 107060
375380 else if ((prediction == 9))
376381 then 108240
377382 else if ((prediction == 10))
378383 then 109440
379384 else if ((prediction == 11))
380385 then 110670
381386 else if ((prediction == 12))
382387 then 111930
383388 else if ((prediction == 13))
384389 then 113210
385390 else if ((prediction == 14))
386391 then 114530
387392 else if ((prediction == 15))
388393 then 115880
389394 else if ((prediction == 16))
390395 then 117260
391396 else if ((prediction == 17))
392397 then 118670
393398 else if ((prediction == 18))
394399 then 120120
395400 else if ((prediction == 19))
396401 then 121600
397402 else if ((prediction == 20))
398403 then 123120
399404 else if ((prediction == 21))
400405 then 124680
401406 else if ((prediction == 22))
402407 then 126280
403408 else if ((prediction == 23))
404409 then 127920
405410 else if ((prediction == 24))
406411 then 129600
407412 else if ((prediction == 25))
408413 then 131330
409414 else if ((prediction == 26))
410415 then 133100
411416 else if ((prediction == 27))
412417 then 134930
413418 else if ((prediction == 28))
414419 then 136800
415420 else if ((prediction == 29))
416421 then 138730
417422 else if ((prediction == 30))
418423 then 140710
419424 else if ((prediction == 31))
420425 then 142750
421426 else if ((prediction == 32))
422427 then 144850
423428 else if ((prediction == 33))
424429 then 147010
425430 else if ((prediction == 34))
426431 then 149240
427432 else if ((prediction == 35))
428433 then 151530
429434 else if ((prediction == 36))
430435 then 153900
431436 else if ((prediction == 37))
432437 then 156340
433438 else if ((prediction == 38))
434439 then 158870
435440 else if ((prediction == 39))
436441 then 161470
437442 else if ((prediction == 40))
438443 then 164160
439444 else if ((prediction == 41))
440445 then 166940
441446 else if ((prediction == 42))
442447 then 169820
443448 else if ((prediction == 43))
444449 then 172800
445450 else if ((prediction == 44))
446451 then 175890
447452 else if ((prediction == 45))
448453 then 179090
449454 else if ((prediction == 46))
450455 then 185840
451456 else if ((prediction == 47))
452457 then 185840
453458 else if ((prediction == 48))
454459 then 189420
455460 else if ((prediction == 49))
456461 then 193130
457462 else if ((prediction == 50))
458463 then 197000
459464 else if ((prediction == 51))
460465 then 201020
461466 else if ((prediction == 52))
462467 then 205200
463468 else if ((prediction == 53))
464469 then 209570
465470 else if ((prediction == 54))
466471 then 214130
467472 else if ((prediction == 55))
468473 then 218880
469474 else if ((prediction == 56))
470475 then 223860
471476 else if ((prediction == 57))
472477 then 229060
473478 else if ((prediction == 58))
474479 then 234520
475480 else if ((prediction == 59))
476481 then 240240
477482 else if ((prediction == 60))
478483 then 246250
479484 else if ((prediction == 61))
480485 then 252560
481486 else if ((prediction == 62))
482487 then 259210
483488 else if ((prediction == 63))
484489 then 259210
485490 else if ((prediction == 64))
486491 then 273610
487492 else if ((prediction == 65))
488493 then 281420
489494 else if ((prediction == 66))
490495 then 289700
491496 else if ((prediction == 67))
492497 then 298480
493498 else if ((prediction == 68))
494499 then 307810
495500 else if ((prediction == 69))
496501 then 317740
497502 else if ((prediction == 70))
498503 then 328330
499504 else if ((prediction == 71))
500505 then 339650
501506 else if ((prediction == 72))
502507 then 351780
503508 else if ((prediction == 73))
504509 then 364810
505510 else if ((prediction == 74))
506511 then 378840
507512 else if ((prediction == 75))
508513 then 394000
509514 else if ((prediction == 76))
510515 then 410410
511516 else if ((prediction == 77))
512517 then 428260
513518 else if ((prediction == 78))
514519 then 447720
515520 else if ((prediction == 79))
516521 then 469040
517522 else if ((prediction == 80))
518523 then 492500
519524 else if ((prediction == 81))
520525 then 518420
521526 else if ((prediction == 82))
522527 then 547220
523528 else if ((prediction == 83))
524529 then 579410
525530 else if ((prediction == 84))
526531 then 615620
527532 else if ((prediction == 85))
528533 then 656660
529534 else if ((prediction == 86))
530535 then 703570
531536 else if ((prediction == 87))
532537 then 757690
533538 else if ((prediction == 88))
534539 then 820830
535540 else if ((prediction == 89))
536541 then 895450
537542 else if ((prediction == 90))
538543 then 985000
539544 else if ((prediction == 91))
540545 then 1094440
541546 else if ((prediction == 92))
542547 then 1231250
543548 else if ((prediction == 93))
544549 then 1407140
545550 else if ((prediction == 94))
546551 then 1641660
547552 else if ((prediction == 95))
548553 then 1970000
549554 else if ((prediction == 96))
550555 then 2462500
551556 else if ((prediction == 97))
552557 then 3283330
553558 else if ((prediction == 98))
554559 then 4925000
555560 else if ((prediction == 99))
556561 then 9850000
557562 else 100000
558563 else 100000
559564
560565
561566 func diceWin (rollType,prediction,rand) = if ((rollType == ROLLUNDER))
562567 then if ((prediction >= rand))
563568 then true
564569 else false
565570 else if ((rollType == ROLLOVER))
566571 then if ((rand >= prediction))
567572 then true
568573 else false
569574 else false
570575
571576
572577 func ValidateBetAndDefineWinAmt (amount,prediction,rollType) = if (if ((BETMIN > amount))
573578 then true
574579 else (amount > BETMAX))
575580 then throw(((("Bet amount is not in range: minBet=" + toString((BETMIN / 100000000))) + " maxBet=") + toString((BETMAX / 100000000))))
576581 else if (if ((rollType != ROLLUNDER))
577582 then (rollType != ROLLOVER)
578583 else false)
579584 then throw("Invalid Roll type, try with OVER or UNDER")
580585 else if (if ((PREDICTIONMIN > prediction))
581586 then true
582587 else (prediction > PREDICTIONMAX))
583588 then throw(((("Prediction is out of the condition: " + toString(PREDICTIONMIN)) + " <= predction <= ") + toString(PREDICTIONMAX)))
584589 else {
585590 let multi = Multiplier(prediction, rollType)
586591 ((((amount * multi) / 100000) * (100 - (FEEWAVESBET + FEEMCAFEE))) / 100)
587592 }
588593
589594
590595 @Callable(i)
591596 func playDice (rollType,prediction) = {
592597 let gameId = toBase58String(i.transactionId)
593598 let gameIdUsed = isDefined(getString(this, gameId))
594599 let payment = extract(i.payment)
595600 let feeAssetId = isDefined(i.feeAssetId)
596601 let winAmt = ValidateBetAndDefineWinAmt(payment.amount, prediction, rollType)
597602 let playerBalance = wavesBalance(i.caller)
598603 if ((100000 > playerBalance))
599604 then throw("There are not enough waves, it takes 0.01 Waves to bet. Game aborted.")
600605 else if ((payment.assetId != WBET))
601606 then throw("Bet amount must be in Wbet. Game aborted.")
602607 else if (feeAssetId)
603608 then throw("Transaction's fee must be in Waves. Game aborted.")
604609 else if (gameIdUsed)
605610 then throw("Passed gameId had been used before. Game aborted.")
606611 else {
607612 let newGameNum = IncrementGameNum()
608613 let playerPubKey58 = toBase58String(i.callerPublicKey)
609614 let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, rollType, playerPubKey58, winAmt, "")
610615 ScriptResult(WriteSet([DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet([ScriptTransfer(WALLETWAVESBET, ((payment.amount * FEEWAVESBET) / 100), WBET), ScriptTransfer(this, 500000, unit)]))
611616 }
612617 }
613618
614619
615620
616621 @Callable(i)
617622 func withdraw (gameId,rsaSign) = {
618623 let gameDataList = ExtractGameDataList(gameId)
619624 let gameState = gameDataList[IdxGameState]
620625 throw(gameState)
621626 }
622627
623628

github/deemru/w8io/873ac7e 
132.04 ms