tx · 4W3qNgn5bR7H1Zq8dm8ny4av63JLdtGGPExx1X9uPuv4

3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX:  -0.01000000 Waves

2023.06.15 11:52 [2623543] smart account 3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX > SELF 0.00000000 Waves

{ "type": 13, "id": "4W3qNgn5bR7H1Zq8dm8ny4av63JLdtGGPExx1X9uPuv4", "fee": 1000000, "feeAssetId": null, "timestamp": 1686819133945, "version": 2, "chainId": 84, "sender": "3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX", "senderPublicKey": "5iiNX4Sz3qZzcerumQLc1y7u9TH2X46jDV4f9Xivtmtv", "proofs": [ "5wPwVC9VLMnVvbXuE1YTD4r4F8hFHs7AuEW6MwDgjUpPNbP2WkgQ7Cpr2Rgzn8XW7tH1bABEB9F7iasWgbKWGu4T" ], "script": "base64:BgIVCAISAwoBARIGCgQBAREIEgQKAgEBGwEKbnVtVG9XYXZlcwEDbnVtCQBoAgUDbnVtAIDC1y8BC2lzUGF5bWVudE9rAgFpA3N1bQQRYWNjZXB0YWJsZUFzc2V0SWQBBBOr2TMEAXAJAJEDAggFAWkIcGF5bWVudHMAAAMJAGcCCAUBcAZhbW91bnQJAQpudW1Ub1dhdmVzAQUDc3VtCQAAAggFAXAHYXNzZXRJZAUEdW5pdAcBC21hcEludFRvU3RyAgVhY2N1bQRuZXh0CQDMCAIJAKQDAQUEbmV4dAUFYWNjdW0BC21hcFN0clRvSW50AgVhY2N1bQRuZXh0CQDMCAIJAQ1wYXJzZUludFZhbHVlAQUEbmV4dAUFYWNjdW0BC21hcEludFRvU3VtAgVhY2N1bQRuZXh0CQBkAgUFYWNjdW0FBG5leHQBDGxpc3RJbnRUb1N1bQEDYXJyCgACJGwFA2FycgoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQELbWFwSW50VG9TdW0CBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDUwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgETbGlzdEludFRvTGlzdFN0cmluZwEDYXJyCgACJGwFA2FycgoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQELbWFwSW50VG9TdHICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDUwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgETbGlzdFN0cmluZ1RvTGlzdEluZwEDYXJyCgACJGwFA2FycgoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQELbWFwU3RyVG9JbnQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDUwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgEabGlzdFN0cmluZ0NvbXByZXNzVG9TdHJpbmcBA2FycgkAuQkCBQNhcnICAXwBHHN0cmluZ0RlY29tcHJlc3NUb0xpc3RTdHJpbmcBA3N0cgkAtQkCBQNzdHICAXwBF2xpc3RJbnRDb21wcmVzc1RvU3RyaW5nAQNhcnIJALkJAgkBE2xpc3RJbnRUb0xpc3RTdHJpbmcBBQNhcnICAXwBGXN0cmluZ0RlY29tcHJlc3NUb0xpc3RJbnQBBmFyclN0cgkBE2xpc3RTdHJpbmdUb0xpc3RJbmcBCQC1CQIFBmFyclN0cgIBfAEJZ2V0UmFuZG9tAQxjb21taXRIZWlnaHQEC3JldmVhbEJsb2NrCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAO0HAQUMY29tbWl0SGVpZ2h0AhF1bmV4Y3BlY3RlZCBlcnJvcgQDdnJmCQETdmFsdWVPckVycm9yTWVzc2FnZQIIBQtyZXZlYWxCbG9jawN2cmYCEXVuZXhjcGVjdGVkIGVycm9yBApyYW5kb21IYXNoCQD3AwEJAQV2YWx1ZQEFA3ZyZgQEaGFzaAkAsgkCBQpyYW5kb21IYXNoABAJAGoCBQRoYXNoACUBD2dldFJhbmRvbVJ1bGxldAEMY29tbWl0SGVpZ2h0BApyYW5kb21IYXNoCQD3AwEJAMsBAgkBBXZhbHVlAQgJAQV2YWx1ZQEJAO0HAQUMY29tbWl0SGVpZ2h0A3ZyZgkAmgMBBQxjb21taXRIZWlnaHQEB2hhc2hJbnQJALIJAgUKcmFuZG9tSGFzaAAYBAtyYW5kb21IYXNoMgkA9wMBCQDLAQIJAQV2YWx1ZQEICQEFdmFsdWUBCQDtBwEFDGNvbW1pdEhlaWdodAN2cmYJAJoDAQkAZQIFDGNvbW1pdEhlaWdodAACBAhoYXNoSW50MgkAsgkCBQtyYW5kb21IYXNoMgAYBAtyYW5kb21IYXNoMwkA9wMBCQDLAQIJAQV2YWx1ZQEICQEFdmFsdWUBCQDtBwEFDGNvbW1pdEhlaWdodAN2cmYJAJoDAQkAZQIFDGNvbW1pdEhlaWdodAAEBAhoYXNoSW50MwkAsgkCBQtyYW5kb21IYXNoMwAYBAxyYW5kb21OdW1iZXIJAGoCBQdoYXNoSW50ACUEDXJhbmRvbU51bWJlcjIJAGoCBQhoYXNoSW50MgAlBA1yYW5kb21OdW1iZXIzCQBqAgUIaGFzaEludDMAJQMJAAACCQBqAgUNcmFuZG9tTnVtYmVyMwACAAAFDHJhbmRvbU51bWJlcgMJAAACCQBqAgUMY29tbWl0SGVpZ2h0AAIAAAUNcmFuZG9tTnVtYmVyMgUNcmFuZG9tTnVtYmVyMwEPUl9XaW5DYWxjdWxhdG9yBAxyYW5kb21OdW1iZXIJYmV0QW1vdW50EnNlbGVjdGVkTnVtYmVyQmV0cwxiZXREaXJlY3Rpb24EC1JFRF9TRUNUT1JTCQDMCAIAIAkAzAgCABMJAMwIAgAVCQDMCAIAGQkAzAgCACIJAMwIAgAbCQDMCAIAJAkAzAgCAB4JAMwIAgAXCQDMCAIABQkAzAgCABAJAMwIAgABCQDMCAIADgkAzAgCAAkJAMwIAgASCQDMCAIABwkAzAgCAAwJAMwIAgADBQNuaWwEDUJMQUNLX1NFQ1RPUlMJAMwIAgACCQDMCAIABAkAzAgCAAYJAMwIAgAICQDMCAIACgkAzAgCAAsJAMwIAgANCQDMCAIADwkAzAgCABEJAMwIAgAUCQDMCAIAFgkAzAgCABgJAMwIAgAaCQDMCAIAHAkAzAgCAB0JAMwIAgAfCQDMCAIAIQkAzAgCACMFA25pbAMJAAACBQxiZXREaXJlY3Rpb24CA3JlZAMJAQ9jb250YWluc0VsZW1lbnQCBQtSRURfU0VDVE9SUwUMcmFuZG9tTnVtYmVyCQBoAgUJYmV0QW1vdW50AAIAAAMJAAACBQxiZXREaXJlY3Rpb24CBWJsYWNrAwkBD2NvbnRhaW5zRWxlbWVudAIFDUJMQUNLX1NFQ1RPUlMFDHJhbmRvbU51bWJlcgkAaAIFCWJldEFtb3VudAACAAADCQAAAgUMYmV0RGlyZWN0aW9uAgNvZGQDAwkBAiE9AgkAagIFDHJhbmRvbU51bWJlcgACAAAJAQIhPQIFDHJhbmRvbU51bWJlcgAABwkAaAIFCWJldEFtb3VudAACAAADCQAAAgUMYmV0RGlyZWN0aW9uAgRldmVuAwMJAAACCQBqAgUMcmFuZG9tTnVtYmVyAAIAAAkBAiE9AgUMcmFuZG9tTnVtYmVyAAAHCQBoAgUJYmV0QW1vdW50AAIAAAMDCQAAAgkAkAMBBRJzZWxlY3RlZE51bWJlckJldHMAAQkAAAIFDGJldERpcmVjdGlvbgIDbnVtBwMJAAACCQCRAwIFEnNlbGVjdGVkTnVtYmVyQmV0cwAABQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAJAAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAIDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAEgAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAMDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQADAAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAQDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQACQAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAwDAwkBD2NvbnRhaW5zRWxlbWVudAIFEnNlbGVjdGVkTnVtYmVyQmV0cwUMcmFuZG9tTnVtYmVyCQECIT0CBQxyYW5kb21OdW1iZXIAAAcJAGgCBQliZXRBbW91bnQAAwAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzABIDAwkBD2NvbnRhaW5zRWxlbWVudAIFEnNlbGVjdGVkTnVtYmVyQmV0cwUMcmFuZG9tTnVtYmVyCQECIT0CBQxyYW5kb21OdW1iZXIAAAcJAGgCBQliZXRBbW91bnQAAgAAAAABC1JfZ2V0QmV0S2V5AQFpCQCsAgICDWJldF9Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyARFSX2dldEJldEFtb3VudEtleQEBaQkArAICAhNiZXRBbW91bnRfUm91bGV0dGVfCQClCAEIBQFpBmNhbGxlcgEXUl9nZXRTZWxlY3RlZE51bWJlcnNLZXkBAWkJAKwCAgIZc2VsZWN0ZWROdW1iZXJzX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXIBEVJfZ2V0RGlyZWN0aW9uS2V5AQFpCQCsAgICE2RpcmVjdGlvbl9Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyAQtSX2dldExvZ0tleQEBaQkArAICCQCsAgIJAKwCAgINbG9nX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXICAV8JANgEAQgFAWkNdHJhbnNhY3Rpb25JZAEOUl9nZXRTdGF0dXNLZXkBAWkJAKwCAgIQc3RhdHVzX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXIBDExXX2dldEJldEtleQEBaQkArAICAg9iZXRfTHVja3lXaGVlbF8JAKUIAQgFAWkGY2FsbGVyAQxMV19nZXRXb25LZXkBAWkJAKwCAgIPd29uX0x1Y2t5V2hlZWxfCQClCAEIBQFpBmNhbGxlcgEVTFdfZ2V0UmFuZG9tTnVtYmVyS2V5AQFpCQCsAgICGHJhbmRvbU51bWJlcl9MdWNreVdoZWVsXwkApQgBCAUBaQZjYWxsZXIBDExXX2dldExvZ0tleQEBaQkArAICCQCsAgIJAKwCAgIPbG9nX0x1Y2t5V2hlZWxfCQClCAEIBQFpBmNhbGxlcgIBXwkA2AQBCAUBaQ10cmFuc2FjdGlvbklkAQ5MV193aGF0VXNlcldvbgEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAAIAAQUHJG1hdGNoMAkBCm51bVRvV2F2ZXMBAAIDCQAAAgADBQckbWF0Y2gwCQEKbnVtVG9XYXZlcwEAAQMJAAACAAcFByRtYXRjaDAJAQpudW1Ub1dhdmVzAQAGAwkAAAIACQUHJG1hdGNoMAkBCm51bVRvV2F2ZXMBAAEAAAEPTFdfZ2V0U3RhdHVzS2V5AQFpCQCsAgICEHN0YXR1c19Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyAwFpAQh0ZXN0X251bQEMY29tbWl0SGVpZ2h0BAxyYW5kb21OdW1iZXIJAQ9nZXRSYW5kb21SdWxsZXQBBQxjb21taXRIZWlnaHQJAAIBCQCkAwEFDHJhbmRvbU51bWJlcgFpARRSb3VsZXR0ZV9yZXZlYWxfdGVzdAQMY29tbWl0SGVpZ2h0CWJldEFtb3VudA9zZWxlY3RlZE51bWJlcnMJZGlyZWN0aW9uBAxyYW5kb21OdW1iZXIJAQ9nZXRSYW5kb21SdWxsZXQBBQxjb21taXRIZWlnaHQEDXdpbm5pbmdBbW91bnQJAQpudW1Ub1dhdmVzAQkBD1JfV2luQ2FsY3VsYXRvcgQFDHJhbmRvbU51bWJlcgUJYmV0QW1vdW50BQ9zZWxlY3RlZE51bWJlcnMFCWRpcmVjdGlvbgkAAgEJAKwCAgkArAICCQCkAwEFDHJhbmRvbU51bWJlcgIBfAkApAMBBQ13aW5uaW5nQW1vdW50AWkBDkFsbFZhcmlhbnRUZXN0Agxjb21taXRIZWlnaHQJYmV0QW1vdW50BAxyYW5kb21OdW1iZXIJAQ9nZXRSYW5kb21SdWxsZXQBBQxjb21taXRIZWlnaHQEEHdpbm5pbmdBbW91bnRSZWQJAQpudW1Ub1dhdmVzAQkBD1JfV2luQ2FsY3VsYXRvcgQFDHJhbmRvbU51bWJlcgUJYmV0QW1vdW50BQNuaWwCA3JlZAQSd2lubmluZ0Ftb3VudEJsYWNrCQEKbnVtVG9XYXZlcwEJAQ9SX1dpbkNhbGN1bGF0b3IEBQxyYW5kb21OdW1iZXIFCWJldEFtb3VudAUDbmlsAgVibGFjawQRd2lubmluZ0Ftb3VudEV2ZW4JAQpudW1Ub1dhdmVzAQkBD1JfV2luQ2FsY3VsYXRvcgQFDHJhbmRvbU51bWJlcgUJYmV0QW1vdW50BQNuaWwCBGV2ZW4EEHdpbm5pbmdBbW91bnRPZGQJAQpudW1Ub1dhdmVzAQkBD1JfV2luQ2FsY3VsYXRvcgQFDHJhbmRvbU51bWJlcgUJYmV0QW1vdW50BQNuaWwCA29kZAQTd2lubmluZ0Ftb3VudDEyeDNfMQkBCm51bVRvV2F2ZXMBCQEPUl9XaW5DYWxjdWxhdG9yBAUMcmFuZG9tTnVtYmVyBQliZXRBbW91bnQJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwFA25pbAIABBN3aW5uaW5nQW1vdW50MTJ4M18yCQEKbnVtVG9XYXZlcwEJAQ9SX1dpbkNhbGN1bGF0b3IEBQxyYW5kb21OdW1iZXIFCWJldEFtb3VudAkAzAgCAA0JAMwIAgAOCQDMCAIADwkAzAgCABAJAMwIAgARCQDMCAIAEgkAzAgCABMJAMwIAgAUCQDMCAIAFQkAzAgCABYJAMwIAgAXCQDMCAIAGAUDbmlsAgAEE3dpbm5pbmdBbW91bnQxMngzXzMJAQpudW1Ub1dhdmVzAQkBD1JfV2luQ2FsY3VsYXRvcgQFDHJhbmRvbU51bWJlcgUJYmV0QW1vdW50CQDMCAIAGQkAzAgCABoJAMwIAgAbCQDMCAIAHAkAzAgCAB0JAMwIAgAeCQDMCAIAHwkAzAgCACAJAMwIAgAhCQDMCAIAIgkAzAgCACMJAMwIAgAkBQNuaWwCAAQTd2lubmluZ0Ftb3VudDE4eDJfMQkBCm51bVRvV2F2ZXMBCQEPUl9XaW5DYWxjdWxhdG9yBAUMcmFuZG9tTnVtYmVyBQliZXRBbW91bnQJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgkAzAgCAA8JAMwIAgAQCQDMCAIAEQkAzAgCABIFA25pbAIABBN3aW5uaW5nQW1vdW50MTh4Ml8yCQEKbnVtVG9XYXZlcwEJAQ9SX1dpbkNhbGN1bGF0b3IEBQxyYW5kb21OdW1iZXIFCWJldEFtb3VudAkAzAgCABMJAMwIAgAUCQDMCAIAFQkAzAgCABYJAMwIAgAXCQDMCAIAGAkAzAgCABkJAMwIAgAaCQDMCAIAGwkAzAgCABwJAMwIAgAdCQDMCAIAHgkAzAgCAB8JAMwIAgAgCQDMCAIAIQkAzAgCACIJAMwIAgAjCQDMCAIAJAUDbmlsAgAJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDnxyYW5kb21OdW1iZXI6CQCkAwEFDHJhbmRvbU51bWJlcgISfHdpbm5pbmdBbW91bnRSZWQ6CQCkAwEFEHdpbm5pbmdBbW91bnRSZWQCFHx3aW5uaW5nQW1vdW50QmxhY2s6CQCkAwEFEndpbm5pbmdBbW91bnRCbGFjawITfHdpbm5pbmdBbW91bnRFdmVuOgkApAMBBRF3aW5uaW5nQW1vdW50RXZlbgISfHdpbm5pbmdBbW91bnRPZGQ6CQCkAwEFEHdpbm5pbmdBbW91bnRPZGQCFXx3aW5uaW5nQW1vdW50MTJ4M18xOgkApAMBBRN3aW5uaW5nQW1vdW50MTJ4M18xAhV8d2lubmluZ0Ftb3VudDEyeDNfMjoJAKQDAQUTd2lubmluZ0Ftb3VudDEyeDNfMgIVfHdpbm5pbmdBbW91bnQxMngzXzM6CQCkAwEFE3dpbm5pbmdBbW91bnQxMngzXzMCFXx3aW5uaW5nQW1vdW50MTh4Ml8xOgkApAMBBRN3aW5uaW5nQW1vdW50MTh4Ml8xAhV8d2lubmluZ0Ftb3VudDE4eDJfMjoJAKQDAQUTd2lubmluZ0Ftb3VudDE4eDJfMgD6p6IY", "height": 2623543, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BBfn64f58MjhuQEcBfx7Kee76Rb387BL6AApxfv3wxV9 Next: 5prUjTme2uLDKhUrsNsESAgbUL5CuB3DDdeW4STa94n6 Diff:
OldNewDifferences
103103 let randomNumber3 = (hashInt3 % 37)
104104 if (((randomNumber3 % 2) == 0))
105105 then randomNumber
106- else randomNumber2
106+ else if (((commitHeight % 2) == 0))
107+ then randomNumber2
108+ else randomNumber3
107109 }
108110
109111
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func numToWaves (num) = (num * 100000000)
55
66
77 func isPaymentOk (i,sum) = {
88 let acceptableAssetId = base58'WAVES'
99 let p = i.payments[0]
1010 if ((p.amount >= numToWaves(sum)))
1111 then (p.assetId == unit)
1212 else false
1313 }
1414
1515
1616 func mapIntToStr (accum,next) = toString(next) :: accum
1717
1818
1919 func mapStrToInt (accum,next) = parseIntValue(next) :: accum
2020
2121
2222 func mapIntToSum (accum,next) = (accum + next)
2323
2424
2525 func listIntToSum (arr) = {
2626 let $l = arr
2727 let $s = size($l)
2828 let $acc0 = 0
2929 func $f0_1 ($a,$i) = if (($i >= $s))
3030 then $a
3131 else mapIntToSum($a, $l[$i])
3232
3333 func $f0_2 ($a,$i) = if (($i >= $s))
3434 then $a
3535 else throw("List size exceeds 50")
3636
3737 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
3838 }
3939
4040
4141 func listIntToListString (arr) = {
4242 let $l = arr
4343 let $s = size($l)
4444 let $acc0 = nil
4545 func $f0_1 ($a,$i) = if (($i >= $s))
4646 then $a
4747 else mapIntToStr($a, $l[$i])
4848
4949 func $f0_2 ($a,$i) = if (($i >= $s))
5050 then $a
5151 else throw("List size exceeds 50")
5252
5353 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
5454 }
5555
5656
5757 func listStringToListIng (arr) = {
5858 let $l = arr
5959 let $s = size($l)
6060 let $acc0 = nil
6161 func $f0_1 ($a,$i) = if (($i >= $s))
6262 then $a
6363 else mapStrToInt($a, $l[$i])
6464
6565 func $f0_2 ($a,$i) = if (($i >= $s))
6666 then $a
6767 else throw("List size exceeds 50")
6868
6969 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
7070 }
7171
7272
7373 func listStringCompressToString (arr) = makeString(arr, "|")
7474
7575
7676 func stringDecompressToListString (str) = split(str, "|")
7777
7878
7979 func listIntCompressToString (arr) = makeString(listIntToListString(arr), "|")
8080
8181
8282 func stringDecompressToListInt (arrStr) = listStringToListIng(split(arrStr, "|"))
8383
8484
8585 func getRandom (commitHeight) = {
8686 let revealBlock = valueOrErrorMessage(blockInfoByHeight(commitHeight), "unexcpected error")
8787 let vrf = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
8888 let randomHash = sha256(value(vrf))
8989 let hash = toInt(randomHash, 16)
9090 (hash % 37)
9191 }
9292
9393
9494 func getRandomRullet (commitHeight) = {
9595 let randomHash = sha256((value(value(blockInfoByHeight(commitHeight)).vrf) + toBytes(commitHeight)))
9696 let hashInt = toInt(randomHash, 24)
9797 let randomHash2 = sha256((value(value(blockInfoByHeight(commitHeight)).vrf) + toBytes((commitHeight - 2))))
9898 let hashInt2 = toInt(randomHash2, 24)
9999 let randomHash3 = sha256((value(value(blockInfoByHeight(commitHeight)).vrf) + toBytes((commitHeight - 4))))
100100 let hashInt3 = toInt(randomHash3, 24)
101101 let randomNumber = (hashInt % 37)
102102 let randomNumber2 = (hashInt2 % 37)
103103 let randomNumber3 = (hashInt3 % 37)
104104 if (((randomNumber3 % 2) == 0))
105105 then randomNumber
106- else randomNumber2
106+ else if (((commitHeight % 2) == 0))
107+ then randomNumber2
108+ else randomNumber3
107109 }
108110
109111
110112 func R_WinCalculator (randomNumber,betAmount,selectedNumberBets,betDirection) = {
111113 let RED_SECTORS = [32, 19, 21, 25, 34, 27, 36, 30, 23, 5, 16, 1, 14, 9, 18, 7, 12, 3]
112114 let BLACK_SECTORS = [2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35]
113115 if ((betDirection == "red"))
114116 then if (containsElement(RED_SECTORS, randomNumber))
115117 then (betAmount * 2)
116118 else 0
117119 else if ((betDirection == "black"))
118120 then if (containsElement(BLACK_SECTORS, randomNumber))
119121 then (betAmount * 2)
120122 else 0
121123 else if ((betDirection == "odd"))
122124 then if (if (((randomNumber % 2) != 0))
123125 then (randomNumber != 0)
124126 else false)
125127 then (betAmount * 2)
126128 else 0
127129 else if ((betDirection == "even"))
128130 then if (if (((randomNumber % 2) == 0))
129131 then (randomNumber != 0)
130132 else false)
131133 then (betAmount * 2)
132134 else 0
133135 else if (if ((size(selectedNumberBets) == 1))
134136 then (betDirection == "num")
135137 else false)
136138 then if ((selectedNumberBets[0] == randomNumber))
137139 then (betAmount * 36)
138140 else 0
139141 else if ((size(selectedNumberBets) == 2))
140142 then if (containsElement(selectedNumberBets, randomNumber))
141143 then (betAmount * 18)
142144 else 0
143145 else if ((size(selectedNumberBets) == 3))
144146 then if (containsElement(selectedNumberBets, randomNumber))
145147 then (betAmount * 12)
146148 else 0
147149 else if ((size(selectedNumberBets) == 4))
148150 then if (containsElement(selectedNumberBets, randomNumber))
149151 then (betAmount * 9)
150152 else 0
151153 else if ((size(selectedNumberBets) == 12))
152154 then if (if (containsElement(selectedNumberBets, randomNumber))
153155 then (randomNumber != 0)
154156 else false)
155157 then (betAmount * 3)
156158 else 0
157159 else if ((size(selectedNumberBets) == 18))
158160 then if (if (containsElement(selectedNumberBets, randomNumber))
159161 then (randomNumber != 0)
160162 else false)
161163 then (betAmount * 2)
162164 else 0
163165 else 0
164166 }
165167
166168
167169 func R_getBetKey (i) = ("bet_Roulette_" + toString(i.caller))
168170
169171
170172 func R_getBetAmountKey (i) = ("betAmount_Roulette_" + toString(i.caller))
171173
172174
173175 func R_getSelectedNumbersKey (i) = ("selectedNumbers_Roulette_" + toString(i.caller))
174176
175177
176178 func R_getDirectionKey (i) = ("direction_Roulette_" + toString(i.caller))
177179
178180
179181 func R_getLogKey (i) = ((("log_Roulette_" + toString(i.caller)) + "_") + toBase58String(i.transactionId))
180182
181183
182184 func R_getStatusKey (i) = ("status_Roulette_" + toString(i.caller))
183185
184186
185187 func LW_getBetKey (i) = ("bet_LuckyWheel_" + toString(i.caller))
186188
187189
188190 func LW_getWonKey (i) = ("won_LuckyWheel_" + toString(i.caller))
189191
190192
191193 func LW_getRandomNumberKey (i) = ("randomNumber_LuckyWheel_" + toString(i.caller))
192194
193195
194196 func LW_getLogKey (i) = ((("log_LuckyWheel_" + toString(i.caller)) + "_") + toBase58String(i.transactionId))
195197
196198
197199 func LW_whatUserWon (value) = match value {
198200 case _ =>
199201 if ((1 == $match0))
200202 then numToWaves(2)
201203 else if ((3 == $match0))
202204 then numToWaves(1)
203205 else if ((7 == $match0))
204206 then numToWaves(6)
205207 else if ((9 == $match0))
206208 then numToWaves(1)
207209 else 0
208210 }
209211
210212
211213 func LW_getStatusKey (i) = ("status_Roulette_" + toString(i.caller))
212214
213215
214216 @Callable(i)
215217 func test_num (commitHeight) = {
216218 let randomNumber = getRandomRullet(commitHeight)
217219 throw(toString(randomNumber))
218220 }
219221
220222
221223
222224 @Callable(i)
223225 func Roulette_reveal_test (commitHeight,betAmount,selectedNumbers,direction) = {
224226 let randomNumber = getRandomRullet(commitHeight)
225227 let winningAmount = numToWaves(R_WinCalculator(randomNumber, betAmount, selectedNumbers, direction))
226228 throw(((toString(randomNumber) + "|") + toString(winningAmount)))
227229 }
228230
229231
230232
231233 @Callable(i)
232234 func AllVariantTest (commitHeight,betAmount) = {
233235 let randomNumber = getRandomRullet(commitHeight)
234236 let winningAmountRed = numToWaves(R_WinCalculator(randomNumber, betAmount, nil, "red"))
235237 let winningAmountBlack = numToWaves(R_WinCalculator(randomNumber, betAmount, nil, "black"))
236238 let winningAmountEven = numToWaves(R_WinCalculator(randomNumber, betAmount, nil, "even"))
237239 let winningAmountOdd = numToWaves(R_WinCalculator(randomNumber, betAmount, nil, "odd"))
238240 let winningAmount12x3_1 = numToWaves(R_WinCalculator(randomNumber, betAmount, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], ""))
239241 let winningAmount12x3_2 = numToWaves(R_WinCalculator(randomNumber, betAmount, [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], ""))
240242 let winningAmount12x3_3 = numToWaves(R_WinCalculator(randomNumber, betAmount, [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], ""))
241243 let winningAmount18x2_1 = numToWaves(R_WinCalculator(randomNumber, betAmount, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], ""))
242244 let winningAmount18x2_2 = numToWaves(R_WinCalculator(randomNumber, betAmount, [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], ""))
243245 throw(((((((((((((((((((("|randomNumber:" + toString(randomNumber)) + "|winningAmountRed:") + toString(winningAmountRed)) + "|winningAmountBlack:") + toString(winningAmountBlack)) + "|winningAmountEven:") + toString(winningAmountEven)) + "|winningAmountOdd:") + toString(winningAmountOdd)) + "|winningAmount12x3_1:") + toString(winningAmount12x3_1)) + "|winningAmount12x3_2:") + toString(winningAmount12x3_2)) + "|winningAmount12x3_3:") + toString(winningAmount12x3_3)) + "|winningAmount18x2_1:") + toString(winningAmount18x2_1)) + "|winningAmount18x2_2:") + toString(winningAmount18x2_2)))
244246 }
245247
246248

github/deemru/w8io/026f985 
43.15 ms