tx · FWfSK1QuXN9nyNVTxCg2xRe2MB2uzYhD6ChDA7KnegdW

3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX:  -0.01000000 Waves

2023.06.13 14:07 [2620817] smart account 3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX > SELF 0.00000000 Waves

{ "type": 13, "id": "FWfSK1QuXN9nyNVTxCg2xRe2MB2uzYhD6ChDA7KnegdW", "fee": 1000000, "feeAssetId": null, "timestamp": 1686654490289, "version": 2, "chainId": 84, "sender": "3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX", "senderPublicKey": "5iiNX4Sz3qZzcerumQLc1y7u9TH2X46jDV4f9Xivtmtv", "proofs": [ "5e5t9H5p5YxPnnJgiRh1k15XMEnHKNaUMgJvLon9o6KgaP4BGhsPSKQPUmcQsovBxghUzV1k6todVaYZg5aTsivo" ], "script": "base64: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CQETbGlzdEludFRvTGlzdFN0cmluZwEFA2FycgIBfAEZc3RyaW5nRGVjb21wcmVzc1RvTGlzdEludAEGYXJyU3RyCQETbGlzdFN0cmluZ1RvTGlzdEluZwEJALUJAgUGYXJyU3RyAgF8AQlnZXRSYW5kb20BDGNvbW1pdEhlaWdodAQLcmV2ZWFsQmxvY2sJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7QcBBQxjb21taXRIZWlnaHQCEXVuZXhjcGVjdGVkIGVycm9yBAN2cmYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAggFC3JldmVhbEJsb2NrA3ZyZgIRdW5leGNwZWN0ZWQgZXJyb3IECnJhbmRvbUhhc2gJAPcDAQkBBXZhbHVlAQUDdnJmBARoYXNoCQCyCQIFCnJhbmRvbUhhc2gAEAkAagIFBGhhc2gAJQEPZ2V0UmFuZG9tUnVsbGV0AQxjb21taXRIZWlnaHQECnJhbmRvbUhhc2gJAPcDAQkAywECCQEFdmFsdWUBCAkBBXZhbHVlAQkA7QcBBQxjb21taXRIZWlnaHQDdnJmCQCaAwEFDGNvbW1pdEhlaWdodAQHaGFzaEludAkAsgkCBQpyYW5kb21IYXNoABgEC3JhbmRvbUhhc2gyCQD3AwEJAMsBAgkBBXZhbHVlAQgJAQV2YWx1ZQEJAO0HAQUMY29tbWl0SGVpZ2h0A3ZyZgkAmgMBCQBlAgUMY29tbWl0SGVpZ2h0AAIECGhhc2hJbnQyCQCyCQIFC3JhbmRvbUhhc2gyABgEC3JhbmRvbUhhc2gzCQD3AwEJAMsBAgkBBXZhbHVlAQgJAQV2YWx1ZQEJAO0HAQUMY29tbWl0SGVpZ2h0A3ZyZgkAmgMBCQBlAgUMY29tbWl0SGVpZ2h0AAQECGhhc2hJbnQzCQCyCQIFC3JhbmRvbUhhc2gzABgEDHJhbmRvbU51bWJlcgkAagIFB2hhc2hJbnQAJQQNcmFuZG9tTnVtYmVyMgkAagIFCGhhc2hJbnQyACUEDXJhbmRvbU51bWJlcjMJAGoCBQhoYXNoSW50MwAlAwkAAAIFDHJhbmRvbU51bWJlcgAABQxyYW5kb21OdW1iZXIDAwkAZgIFDHJhbmRvbU51bWJlcgAMCQECIT0CCQBqAgUMY29tbWl0SGVpZ2h0AAIAAAcFDHJhbmRvbU51bWJlcgMDCQBmAgAZBQxyYW5kb21OdW1iZXIJAQIhPQIJAGoCBQxjb21taXRIZWlnaHQAAgAABwUNcmFuZG9tTnVtYmVyMgUNcmFuZG9tTnVtYmVyMwEPUl9XaW5DYWxjdWxhdG9yBAxyYW5kb21OdW1iZXIJYmV0QW1vdW50EnNlbGVjdGVkTnVtYmVyQmV0cwxiZXREaXJlY3Rpb24EC1JFRF9TRUNUT1JTCQDMCAIAIAkAzAgCABMJAMwIAgAVCQDMCAIAGQkAzAgCACIJAMwIAgAbCQDMCAIAJAkAzAgCAB4JAMwIAgAXCQDMCAIABQkAzAgCABAJAMwIAgABCQDMCAIADgkAzAgCAAkJAMwIAgASCQDMCAIABwkAzAgCAAwJAMwIAgADBQNuaWwEDUJMQUNLX1NFQ1RPUlMJAMwIAgACCQDMCAIABAkAzAgCAAYJAMwIAgAICQDMCAIACgkAzAgCAAsJAMwIAgANCQDMCAIADwkAzAgCABEJAMwIAgAUCQDMCAIAFgkAzAgCABgJAMwIAgAaCQDMCAIAHAkAzAgCAB0JAMwIAgAfCQDMCAIAIQkAzAgCACMFA25pbAMJAAACBQxiZXREaXJlY3Rpb24CA3JlZAMJAQ9jb250YWluc0VsZW1lbnQCBQtSRURfU0VDVE9SUwUMcmFuZG9tTnVtYmVyCQBoAgUJYmV0QW1vdW50AAIAAAMJAAACBQxiZXREaXJlY3Rpb24CBWJsYWNrAwkBD2NvbnRhaW5zRWxlbWVudAIFDUJMQUNLX1NFQ1RPUlMFDHJhbmRvbU51bWJlcgkAaAIFCWJldEFtb3VudAACAAADCQAAAgUMYmV0RGlyZWN0aW9uAgNvZGQDAwkAAAIJAGoCBQxyYW5kb21OdW1iZXIAAgAACQECIT0CBQxyYW5kb21OdW1iZXIAAAcJAGgCBQliZXRBbW91bnQAAgAAAwkAAAIFDGJldERpcmVjdGlvbgIEZXZlbgMDCQECIT0CCQBqAgUMcmFuZG9tTnVtYmVyAAIAAAkBAiE9AgUMcmFuZG9tTnVtYmVyAAAHCQBoAgUJYmV0QW1vdW50AAIAAAMDCQAAAgkAkAMBBRJzZWxlY3RlZE51bWJlckJldHMAAQkAAAIFDGJldERpcmVjdGlvbgIDbnVtBwMJAAACCQCRAwIFEnNlbGVjdGVkTnVtYmVyQmV0cwAABQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAJAAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAIDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAEgAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAMDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQADAAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAQDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQACQAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAwDAwkBD2NvbnRhaW5zRWxlbWVudAIFEnNlbGVjdGVkTnVtYmVyQmV0cwUMcmFuZG9tTnVtYmVyCQECIT0CBQxyYW5kb21OdW1iZXIAAAcJAGgCBQliZXRBbW91bnQAAwAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzABIDAwkBD2NvbnRhaW5zRWxlbWVudAIFEnNlbGVjdGVkTnVtYmVyQmV0cwUMcmFuZG9tTnVtYmVyCQECIT0CBQxyYW5kb21OdW1iZXIAAAcJAGgCBQliZXRBbW91bnQAAgAAAAABC1JfZ2V0QmV0S2V5AQFpCQCsAgICDWJldF9Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyARFSX2dldEJldEFtb3VudEtleQEBaQkArAICAhNiZXRBbW91bnRfUm91bGV0dGVfCQClCAEIBQFpBmNhbGxlcgEXUl9nZXRTZWxlY3RlZE51bWJlcnNLZXkBAWkJAKwCAgIZc2VsZWN0ZWROdW1iZXJzX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXIBEVJfZ2V0RGlyZWN0aW9uS2V5AQFpCQCsAgICE2RpcmVjdGlvbl9Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyAQtSX2dldExvZ0tleQEBaQkArAICCQCsAgIJAKwCAgINbG9nX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXICAV8JANgEAQgFAWkNdHJhbnNhY3Rpb25JZAEOUl9nZXRTdGF0dXNLZXkBAWkJAKwCAgIQc3RhdHVzX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXIBDExXX2dldEJldEtleQEBaQkArAICAg9iZXRfTHVja3lXaGVlbF8JAKUIAQgFAWkGY2FsbGVyAQxMV19nZXRXb25LZXkBAWkJAKwCAgIPd29uX0x1Y2t5V2hlZWxfCQClCAEIBQFpBmNhbGxlcgEVTFdfZ2V0UmFuZG9tTnVtYmVyS2V5AQFpCQCsAgICGHJhbmRvbU51bWJlcl9MdWNreVdoZWVsXwkApQgBCAUBaQZjYWxsZXIBDExXX2dldExvZ0tleQEBaQkArAICCQCsAgIJAKwCAgIPbG9nX0x1Y2t5V2hlZWxfCQClCAEIBQFpBmNhbGxlcgIBXwkA2AQBCAUBaQ10cmFuc2FjdGlvbklkAQ5MV193aGF0VXNlcldvbgEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAAIAAQUHJG1hdGNoMAkBCm51bVRvV2F2ZXMBAAIDCQAAAgADBQckbWF0Y2gwCQEKbnVtVG9XYXZlcwEAAQMJAAACAAcFByRtYXRjaDAJAQpudW1Ub1dhdmVzAQAGAwkAAAIACQUHJG1hdGNoMAkBCm51bVRvV2F2ZXMBAAEAAAEPTFdfZ2V0U3RhdHVzS2V5AQFpCQCsAgICEHN0YXR1c19Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyAgFpAQ9Sb3VsZXR0ZV9jb21taXQDCWJldEFtb3VudBJzZWxlY3RlZE51bWJlckJldHMMYmV0RGlyZWN0aW9uBAFwCQCRAwIIBQFpCHBheW1lbnRzAAADCQEBIQEJAQtpc1BheW1lbnRPawIFAWkFCWJldEFtb3VudAkAAgECHldyb25nIHBheW1lbnQgYW1vdW50IG9yIGFzc2V0IQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC1JfZ2V0QmV0S2V5AQUBaQkAZAIFBmhlaWdodAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERUl9nZXRCZXRBbW91bnRLZXkBBQFpBQliZXRBbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBF1JfZ2V0U2VsZWN0ZWROdW1iZXJzS2V5AQUBaQkBF2xpc3RJbnRDb21wcmVzc1RvU3RyaW5nAQUSc2VsZWN0ZWROdW1iZXJCZXRzCQDMCAIJAQtTdHJpbmdFbnRyeQIJARFSX2dldERpcmVjdGlvbktleQEFAWkFDGJldERpcmVjdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQEOUl9nZXRTdGF0dXNLZXkBBQFpCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIgfCBzdGF0dXM6IGNvbW1pdCB8IHJldmVhbEJsb2NrOiAJAKQDAQkAZAIFBmhlaWdodAABAg4gfCBiZXRBbW91bnQ6IAkApAMBBQliZXRBbW91bnQCFCB8IHNlbGVjdGVkTnVtYmVyczogCQEXbGlzdEludENvbXByZXNzVG9TdHJpbmcBBRJzZWxlY3RlZE51bWJlckJldHMFA25pbAFpAQ9Sb3VsZXR0ZV9yZXZlYWwABAxjb21taXRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBEUBleHRyTmF0aXZlKDEwNTUpAQkBC1JfZ2V0QmV0S2V5AQUBaQINQmV0IG5vdCBmb3VuZAQJYmV0QW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJARFAZXh0ck5hdGl2ZSgxMDU1KQEJARFSX2dldEJldEFtb3VudEtleQEFAWkCFEJldCBhbW91bnQgbm90IGZvdW5kBBJzZWxlY3RlZE51bWJlcnNTdHIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBEUBleHRyTmF0aXZlKDEwNTgpAQkBF1JfZ2V0U2VsZWN0ZWROdW1iZXJzS2V5AQUBaQIaU2VsZWN0ZWQgbnVtYmVycyBub3QgZm91bmQECWRpcmVjdGlvbgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQERQGV4dHJOYXRpdmUoMTA1OCkBCQERUl9nZXREaXJlY3Rpb25LZXkBBQFpAhNEaXJlY3Rpb24gbm90IGZvdW5kBA9zZWxlY3RlZE51bWJlcnMJARlzdHJpbmdEZWNvbXByZXNzVG9MaXN0SW50AQUSc2VsZWN0ZWROdW1iZXJzU3RyAwkAZgIFDGNvbW1pdEhlaWdodAUGaGVpZ2h0CQACAQkArAICCQCsAgICBVdhaXQgCQCkAwEJAGUCBQxjb21taXRIZWlnaHQFBmhlaWdodAIZIGJsb2NrcyB0byByZXZlYWwgdGhpcyBpZAQMcmFuZG9tTnVtYmVyCQEPZ2V0UmFuZG9tUnVsbGV0AQUMY29tbWl0SGVpZ2h0BA13aW5uaW5nQW1vdW50CQEKbnVtVG9XYXZlcwEJAQ9SX1dpbkNhbGN1bGF0b3IEBQxyYW5kb21OdW1iZXIFCWJldEFtb3VudAUPc2VsZWN0ZWROdW1iZXJzBQlkaXJlY3Rpb24EBmxvZ1N0cgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIQfCBjb21taXRIZWlnaHQ6IAkApAMBBQxjb21taXRIZWlnaHQCDiB8IGJldEFtb3VudDogCQCkAwEFCWJldEFtb3VudAISIHwgd2lubmluZ0Ftb3VudDogCQCkAwEFDXdpbm5pbmdBbW91bnQCFCB8IHNlbGVjdGVkTnVtYmVyczogCQEXbGlzdEludENvbXByZXNzVG9TdHJpbmcBBQ9zZWxlY3RlZE51bWJlcnMCESB8IHJhbmRvbU51bWJlcjogCQCkAwEFDHJhbmRvbU51bWJlcgQJc3RhdHVzU3RyCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiJ8IHN0YXR1czogcmV2ZWFsIHwgd2lubmluZ0Ftb3VudDogCQCkAwEFDXdpbm5pbmdBbW91bnQCFCB8IHNlbGVjdGVkTnVtYmVyczogCQEXbGlzdEludENvbXByZXNzVG9TdHJpbmcBBQ9zZWxlY3RlZE51bWJlcnMCESB8IHJhbmRvbU51bWJlcjogCQCkAwEFDHJhbmRvbU51bWJlcgIOIHwgYmV0QW1vdW50OiAJAKQDAQUJYmV0QW1vdW50AhQgfCBzZWxlY3RlZE51bWJlcnM6IAkBF2xpc3RJbnRDb21wcmVzc1RvU3RyaW5nAQUPc2VsZWN0ZWROdW1iZXJzAwkAZgIFDXdpbm5pbmdBbW91bnQAAAkAzAgCCQELRGVsZXRlRW50cnkBCQELUl9nZXRCZXRLZXkBBQFpCQDMCAIJAQtEZWxldGVFbnRyeQEJARFSX2dldEJldEFtb3VudEtleQEFAWkJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBF1JfZ2V0U2VsZWN0ZWROdW1iZXJzS2V5AQUBaQkAzAgCCQELRGVsZXRlRW50cnkBCQERUl9nZXREaXJlY3Rpb25LZXkBBQFpCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUNd2lubmluZ0Ftb3VudAUEdW5pdAkAzAgCCQELU3RyaW5nRW50cnkCCQELUl9nZXRMb2dLZXkBBQFpBQZsb2dTdHIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDlJfZ2V0U3RhdHVzS2V5AQUBaQUJc3RhdHVzU3RyBQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC1JfZ2V0QmV0S2V5AQUBaQkAzAgCCQELRGVsZXRlRW50cnkBCQERUl9nZXRCZXRBbW91bnRLZXkBBQFpCQDMCAIJAQtEZWxldGVFbnRyeQEJARdSX2dldFNlbGVjdGVkTnVtYmVyc0tleQEFAWkJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEVJfZ2V0RGlyZWN0aW9uS2V5AQUBaQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC1JfZ2V0TG9nS2V5AQUBaQUNd2lubmluZ0Ftb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQELUl9nZXRMb2dLZXkBBQFpBQZsb2dTdHIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDlJfZ2V0U3RhdHVzS2V5AQUBaQUJc3RhdHVzU3RyBQNuaWwAYhvSFA==", "height": 2620817, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4GxP3YVcn6owHfcTPiNoNcWdCiuei7ATCoFWjzJTaUxw Next: BPEtffxgdJxzb9yCa8ABB5ugFhb2AhR6DLJjxF7ooiCu Diff:
OldNewDifferences
9494 func J (E) = {
9595 let H = sha256((value(value(blockInfoByHeight(E)).vrf) + toBytes(E)))
9696 let K = toInt(H, 24)
97- (K % 37)
97+ let L = sha256((value(value(blockInfoByHeight(E)).vrf) + toBytes((E - 2))))
98+ let M = toInt(L, 24)
99+ let N = sha256((value(value(blockInfoByHeight(E)).vrf) + toBytes((E - 4))))
100+ let O = toInt(N, 24)
101+ let P = (K % 37)
102+ let Q = (M % 37)
103+ let R = (O % 37)
104+ if ((P == 0))
105+ then P
106+ else if (if ((P > 12))
107+ then ((E % 2) != 0)
108+ else false)
109+ then P
110+ else if (if ((25 > P))
111+ then ((E % 2) != 0)
112+ else false)
113+ then Q
114+ else R
98115 }
99116
100117
101-func L (M,N,O,P) = {
102- let Q = [32, 19, 21, 25, 34, 27, 36, 30, 23, 5, 16, 1, 14, 9, 18, 7, 12, 3]
103- let R = [2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35]
104- if ((P == "red"))
105- then if (containsElement(Q, M))
106- then (N * 2)
118+func S (P,T,U,V) = {
119+ let W = [32, 19, 21, 25, 34, 27, 36, 30, 23, 5, 16, 1, 14, 9, 18, 7, 12, 3]
120+ let X = [2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35]
121+ if ((V == "red"))
122+ then if (containsElement(W, P))
123+ then (T * 2)
107124 else 0
108- else if ((P == "black"))
109- then if (containsElement(R, M))
110- then (N * 2)
125+ else if ((V == "black"))
126+ then if (containsElement(X, P))
127+ then (T * 2)
111128 else 0
112- else if ((P == "odd"))
113- then if (((M % 2) != 0))
114- then (N * 2)
129+ else if ((V == "odd"))
130+ then if (if (((P % 2) == 0))
131+ then (P != 0)
132+ else false)
133+ then (T * 2)
115134 else 0
116- else if ((P == "even"))
117- then if (((M % 2) == 0))
118- then (N * 2)
135+ else if ((V == "even"))
136+ then if (if (((P % 2) != 0))
137+ then (P != 0)
138+ else false)
139+ then (T * 2)
119140 else 0
120- else if (if ((size(O) == 1))
121- then (P == "num")
141+ else if (if ((size(U) == 1))
142+ then (V == "num")
122143 else false)
123- then if ((O[0] == M))
124- then (N * 36)
144+ then if ((U[0] == P))
145+ then (T * 36)
125146 else 0
126- else if ((size(O) == 2))
127- then if (containsElement(O, M))
128- then (N * 18)
147+ else if ((size(U) == 2))
148+ then if (containsElement(U, P))
149+ then (T * 18)
129150 else 0
130- else if ((size(O) == 3))
131- then if (containsElement(O, M))
132- then (N * 12)
151+ else if ((size(U) == 3))
152+ then if (containsElement(U, P))
153+ then (T * 12)
133154 else 0
134- else if ((size(O) == 4))
135- then if (containsElement(O, M))
136- then (N * 9)
155+ else if ((size(U) == 4))
156+ then if (containsElement(U, P))
157+ then (T * 9)
137158 else 0
138- else if ((size(O) == 12))
139- then if (containsElement(O, M))
140- then (N * 3)
159+ else if ((size(U) == 12))
160+ then if (if (containsElement(U, P))
161+ then (P != 0)
162+ else false)
163+ then (T * 3)
141164 else 0
142- else if ((size(O) == 18))
143- then if (containsElement(O, M))
144- then (N * 2)
165+ else if ((size(U) == 18))
166+ then if (if (containsElement(U, P))
167+ then (P != 0)
168+ else false)
169+ then (T * 2)
145170 else 0
146171 else 0
147172 }
148173
149174
150-func S (d) = ("bet_Roulette_" + toString(d.caller))
175+func Y (d) = ("bet_Roulette_" + toString(d.caller))
151176
152177
153-func T (d) = ("betAmount_Roulette_" + toString(d.caller))
178+func Z (d) = ("betAmount_Roulette_" + toString(d.caller))
154179
155180
156-func U (d) = ("selectedNumbers_Roulette_" + toString(d.caller))
181+func aa (d) = ("selectedNumbers_Roulette_" + toString(d.caller))
157182
158183
159-func V (d) = ("direction_Roulette_" + toString(d.caller))
184+func ab (d) = ("direction_Roulette_" + toString(d.caller))
160185
161186
162-func W (d) = ((("log_Roulette_" + toString(d.caller)) + "_") + toBase58String(d.transactionId))
187+func ac (d) = ((("log_Roulette_" + toString(d.caller)) + "_") + toBase58String(d.transactionId))
163188
164189
165-func X (d) = ("status_Roulette_" + toString(d.caller))
190+func ad (d) = ("status_Roulette_" + toString(d.caller))
166191
167192
168-func Y (d) = ("bet_LuckyWheel_" + toString(d.caller))
193+func ae (d) = ("bet_LuckyWheel_" + toString(d.caller))
169194
170195
171-func Z (d) = ("won_LuckyWheel_" + toString(d.caller))
196+func af (d) = ("won_LuckyWheel_" + toString(d.caller))
172197
173198
174-func aa (d) = ("randomNumber_LuckyWheel_" + toString(d.caller))
199+func ag (d) = ("randomNumber_LuckyWheel_" + toString(d.caller))
175200
176201
177-func ab (d) = ((("log_LuckyWheel_" + toString(d.caller)) + "_") + toBase58String(d.transactionId))
202+func ah (d) = ((("log_LuckyWheel_" + toString(d.caller)) + "_") + toBase58String(d.transactionId))
178203
179204
180-func ac (ad) = {
181- let ae = ad
182- if ((1 == ae))
205+func ai (aj) = {
206+ let ak = aj
207+ if ((1 == ak))
183208 then a(2)
184- else if ((3 == ae))
209+ else if ((3 == ak))
185210 then a(1)
186- else if ((7 == ae))
211+ else if ((7 == ak))
187212 then a(6)
188- else if ((9 == ae))
213+ else if ((9 == ak))
189214 then a(1)
190215 else 0
191216 }
192217
193218
194-func af (d) = ("status_Roulette_" + toString(d.caller))
219+func al (d) = ("status_Roulette_" + toString(d.caller))
195220
196221
197222 @Callable(d)
198-func Roulette_commit (N,O,P) = {
223+func Roulette_commit (T,U,V) = {
199224 let g = d.payments[0]
200- if (!(c(d, N)))
225+ if (!(c(d, T)))
201226 then throw("Wrong payment amount or asset!")
202- else [IntegerEntry(S(d), (height + 1)), IntegerEntry(T(d), N), StringEntry(U(d), A(O)), StringEntry(V(d), P), StringEntry(X(d), ((((("| status: commit | revealBlock: " + toString((height + 1))) + " | betAmount: ") + toString(N)) + " | selectedNumbers: ") + A(O)))]
227+ else [IntegerEntry(Y(d), (height + 1)), IntegerEntry(Z(d), T), StringEntry(aa(d), A(U)), StringEntry(ab(d), V), StringEntry(ad(d), ((((("| status: commit | revealBlock: " + toString((height + 1))) + " | betAmount: ") + toString(T)) + " | selectedNumbers: ") + A(U)))]
203228 }
204229
205230
206231
207232 @Callable(d)
208233 func Roulette_reveal () = {
209- let E = valueOrErrorMessage(getIntegerValue(S(d)), "Bet not found")
210- let N = valueOrErrorMessage(getIntegerValue(T(d)), "Bet amount not found")
211- let ag = valueOrErrorMessage(getStringValue(U(d)), "Selected numbers not found")
212- let ah = valueOrErrorMessage(getStringValue(V(d)), "Direction not found")
213- let ai = B(ag)
234+ let E = valueOrErrorMessage(getIntegerValue(Y(d)), "Bet not found")
235+ let T = valueOrErrorMessage(getIntegerValue(Z(d)), "Bet amount not found")
236+ let am = valueOrErrorMessage(getStringValue(aa(d)), "Selected numbers not found")
237+ let an = valueOrErrorMessage(getStringValue(ab(d)), "Direction not found")
238+ let ao = B(am)
214239 if ((E > height))
215240 then throw((("Wait " + toString((E - height))) + " blocks to reveal this id"))
216241 else {
217- let M = J(E)
218- let aj = a(L(M, N, ai, ah))
219- let ak = ((((((((("| commitHeight: " + toString(E)) + " | betAmount: ") + toString(N)) + " | winningAmount: ") + toString(aj)) + " | selectedNumbers: ") + A(ai)) + " | randomNumber: ") + toString(M))
220- let al = ((((((((("| status: reveal | winningAmount: " + toString(aj)) + " | selectedNumbers: ") + A(ai)) + " | randomNumber: ") + toString(M)) + " | betAmount: ") + toString(N)) + " | selectedNumbers: ") + A(ai))
221- if ((aj > 0))
222- then [DeleteEntry(S(d)), DeleteEntry(T(d)), DeleteEntry(U(d)), DeleteEntry(V(d)), ScriptTransfer(d.caller, aj, unit), StringEntry(W(d), ak), StringEntry(X(d), al)]
223- else [DeleteEntry(S(d)), DeleteEntry(T(d)), DeleteEntry(U(d)), DeleteEntry(V(d)), IntegerEntry(W(d), aj), StringEntry(W(d), ak), StringEntry(X(d), al)]
224- }
225- }
226-
227-
228-
229-@Callable(d)
230-func LuckyWheel_commit () = if (!(c(d, 1)))
231- then throw("Wrong payment amount or asset")
232- else [IntegerEntry(Y(d), (height + 1)), DeleteEntry(aa(d)), DeleteEntry(Z(d)), StringEntry(af(d), "| status: commit")]
233-
234-
235-
236-@Callable(d)
237-func LuckyWheel_reveal () = {
238- let E = valueOrErrorMessage(getIntegerValue(Y(d)), "Bet not found")
239- if ((E > height))
240- then throw((("Wait " + toString((E - height))) + " blocks to reveal this id"))
241- else {
242- let F = valueOrErrorMessage(blockInfoByHeight(E), "unexcpected error")
243- let G = valueOrErrorMessage(F.vrf, "unexcpected error")
244- let H = sha256(value(G))
245- let am = valueOrErrorMessage(blockInfoByHeight((E - 1)), "unexcpected error")
246- let an = valueOrErrorMessage(F.vrf, "unexcpected error")
247- let ao = sha256(value(G))
248- let ap = (toInt(H, 16) + (toInt(H, 10) / toInt(H, 5)))
249- let M = (ap % 12)
250- let aj = ac(M)
251- let al = (((("| status: reveal | winningAmount: " + toString(aj)) + " | selectedNumbers: ") + " | randomNumber: ") + toString(M))
252- if ((aj > 0))
253- then [DeleteEntry(Y(d)), ScriptTransfer(d.caller, aj, unit), IntegerEntry(Z(d), aj), IntegerEntry(aa(d), M), StringEntry(af(d), al)]
254- else [DeleteEntry(Y(d)), IntegerEntry(Z(d), aj), IntegerEntry(aa(d), M), StringEntry(af(d), al)]
242+ let P = J(E)
243+ let ap = a(S(P, T, ao, an))
244+ let aq = ((((((((("| commitHeight: " + toString(E)) + " | betAmount: ") + toString(T)) + " | winningAmount: ") + toString(ap)) + " | selectedNumbers: ") + A(ao)) + " | randomNumber: ") + toString(P))
245+ let ar = ((((((((("| status: reveal | winningAmount: " + toString(ap)) + " | selectedNumbers: ") + A(ao)) + " | randomNumber: ") + toString(P)) + " | betAmount: ") + toString(T)) + " | selectedNumbers: ") + A(ao))
246+ if ((ap > 0))
247+ then [DeleteEntry(Y(d)), DeleteEntry(Z(d)), DeleteEntry(aa(d)), DeleteEntry(ab(d)), ScriptTransfer(d.caller, ap, unit), StringEntry(ac(d), aq), StringEntry(ad(d), ar)]
248+ else [DeleteEntry(Y(d)), DeleteEntry(Z(d)), DeleteEntry(aa(d)), DeleteEntry(ab(d)), IntegerEntry(ac(d), ap), StringEntry(ac(d), aq), StringEntry(ad(d), ar)]
255249 }
256250 }
257251
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = (b * 100000000)
55
66
77 func c (d,e) = {
88 let f = base58'WAVES'
99 let g = d.payments[0]
1010 if ((g.amount >= a(e)))
1111 then (g.assetId == unit)
1212 else false
1313 }
1414
1515
1616 func h (i,j) = toString(j) :: i
1717
1818
1919 func k (i,j) = parseIntValue(j) :: i
2020
2121
2222 func l (i,j) = (i + j)
2323
2424
2525 func m (n) = {
2626 let o = n
2727 let p = size(o)
2828 let q = 0
2929 func r (s,t) = if ((t >= p))
3030 then s
3131 else l(s, o[t])
3232
3333 func u (s,t) = if ((t >= p))
3434 then s
3535 else throw("List size exceeds 50")
3636
3737 u(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(q, 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 v (n) = {
4242 let o = n
4343 let p = size(o)
4444 let q = nil
4545 func r (s,t) = if ((t >= p))
4646 then s
4747 else h(s, o[t])
4848
4949 func u (s,t) = if ((t >= p))
5050 then s
5151 else throw("List size exceeds 50")
5252
5353 u(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(q, 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 w (n) = {
5858 let o = n
5959 let p = size(o)
6060 let q = nil
6161 func r (s,t) = if ((t >= p))
6262 then s
6363 else k(s, o[t])
6464
6565 func u (s,t) = if ((t >= p))
6666 then s
6767 else throw("List size exceeds 50")
6868
6969 u(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(r(q, 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 x (n) = makeString(n, "|")
7474
7575
7676 func y (z) = split(z, "|")
7777
7878
7979 func A (n) = makeString(v(n), "|")
8080
8181
8282 func B (C) = w(split(C, "|"))
8383
8484
8585 func D (E) = {
8686 let F = valueOrErrorMessage(blockInfoByHeight(E), "unexcpected error")
8787 let G = valueOrErrorMessage(F.vrf, "unexcpected error")
8888 let H = sha256(value(G))
8989 let I = toInt(H, 16)
9090 (I % 37)
9191 }
9292
9393
9494 func J (E) = {
9595 let H = sha256((value(value(blockInfoByHeight(E)).vrf) + toBytes(E)))
9696 let K = toInt(H, 24)
97- (K % 37)
97+ let L = sha256((value(value(blockInfoByHeight(E)).vrf) + toBytes((E - 2))))
98+ let M = toInt(L, 24)
99+ let N = sha256((value(value(blockInfoByHeight(E)).vrf) + toBytes((E - 4))))
100+ let O = toInt(N, 24)
101+ let P = (K % 37)
102+ let Q = (M % 37)
103+ let R = (O % 37)
104+ if ((P == 0))
105+ then P
106+ else if (if ((P > 12))
107+ then ((E % 2) != 0)
108+ else false)
109+ then P
110+ else if (if ((25 > P))
111+ then ((E % 2) != 0)
112+ else false)
113+ then Q
114+ else R
98115 }
99116
100117
101-func L (M,N,O,P) = {
102- let Q = [32, 19, 21, 25, 34, 27, 36, 30, 23, 5, 16, 1, 14, 9, 18, 7, 12, 3]
103- let R = [2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35]
104- if ((P == "red"))
105- then if (containsElement(Q, M))
106- then (N * 2)
118+func S (P,T,U,V) = {
119+ let W = [32, 19, 21, 25, 34, 27, 36, 30, 23, 5, 16, 1, 14, 9, 18, 7, 12, 3]
120+ let X = [2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35]
121+ if ((V == "red"))
122+ then if (containsElement(W, P))
123+ then (T * 2)
107124 else 0
108- else if ((P == "black"))
109- then if (containsElement(R, M))
110- then (N * 2)
125+ else if ((V == "black"))
126+ then if (containsElement(X, P))
127+ then (T * 2)
111128 else 0
112- else if ((P == "odd"))
113- then if (((M % 2) != 0))
114- then (N * 2)
129+ else if ((V == "odd"))
130+ then if (if (((P % 2) == 0))
131+ then (P != 0)
132+ else false)
133+ then (T * 2)
115134 else 0
116- else if ((P == "even"))
117- then if (((M % 2) == 0))
118- then (N * 2)
135+ else if ((V == "even"))
136+ then if (if (((P % 2) != 0))
137+ then (P != 0)
138+ else false)
139+ then (T * 2)
119140 else 0
120- else if (if ((size(O) == 1))
121- then (P == "num")
141+ else if (if ((size(U) == 1))
142+ then (V == "num")
122143 else false)
123- then if ((O[0] == M))
124- then (N * 36)
144+ then if ((U[0] == P))
145+ then (T * 36)
125146 else 0
126- else if ((size(O) == 2))
127- then if (containsElement(O, M))
128- then (N * 18)
147+ else if ((size(U) == 2))
148+ then if (containsElement(U, P))
149+ then (T * 18)
129150 else 0
130- else if ((size(O) == 3))
131- then if (containsElement(O, M))
132- then (N * 12)
151+ else if ((size(U) == 3))
152+ then if (containsElement(U, P))
153+ then (T * 12)
133154 else 0
134- else if ((size(O) == 4))
135- then if (containsElement(O, M))
136- then (N * 9)
155+ else if ((size(U) == 4))
156+ then if (containsElement(U, P))
157+ then (T * 9)
137158 else 0
138- else if ((size(O) == 12))
139- then if (containsElement(O, M))
140- then (N * 3)
159+ else if ((size(U) == 12))
160+ then if (if (containsElement(U, P))
161+ then (P != 0)
162+ else false)
163+ then (T * 3)
141164 else 0
142- else if ((size(O) == 18))
143- then if (containsElement(O, M))
144- then (N * 2)
165+ else if ((size(U) == 18))
166+ then if (if (containsElement(U, P))
167+ then (P != 0)
168+ else false)
169+ then (T * 2)
145170 else 0
146171 else 0
147172 }
148173
149174
150-func S (d) = ("bet_Roulette_" + toString(d.caller))
175+func Y (d) = ("bet_Roulette_" + toString(d.caller))
151176
152177
153-func T (d) = ("betAmount_Roulette_" + toString(d.caller))
178+func Z (d) = ("betAmount_Roulette_" + toString(d.caller))
154179
155180
156-func U (d) = ("selectedNumbers_Roulette_" + toString(d.caller))
181+func aa (d) = ("selectedNumbers_Roulette_" + toString(d.caller))
157182
158183
159-func V (d) = ("direction_Roulette_" + toString(d.caller))
184+func ab (d) = ("direction_Roulette_" + toString(d.caller))
160185
161186
162-func W (d) = ((("log_Roulette_" + toString(d.caller)) + "_") + toBase58String(d.transactionId))
187+func ac (d) = ((("log_Roulette_" + toString(d.caller)) + "_") + toBase58String(d.transactionId))
163188
164189
165-func X (d) = ("status_Roulette_" + toString(d.caller))
190+func ad (d) = ("status_Roulette_" + toString(d.caller))
166191
167192
168-func Y (d) = ("bet_LuckyWheel_" + toString(d.caller))
193+func ae (d) = ("bet_LuckyWheel_" + toString(d.caller))
169194
170195
171-func Z (d) = ("won_LuckyWheel_" + toString(d.caller))
196+func af (d) = ("won_LuckyWheel_" + toString(d.caller))
172197
173198
174-func aa (d) = ("randomNumber_LuckyWheel_" + toString(d.caller))
199+func ag (d) = ("randomNumber_LuckyWheel_" + toString(d.caller))
175200
176201
177-func ab (d) = ((("log_LuckyWheel_" + toString(d.caller)) + "_") + toBase58String(d.transactionId))
202+func ah (d) = ((("log_LuckyWheel_" + toString(d.caller)) + "_") + toBase58String(d.transactionId))
178203
179204
180-func ac (ad) = {
181- let ae = ad
182- if ((1 == ae))
205+func ai (aj) = {
206+ let ak = aj
207+ if ((1 == ak))
183208 then a(2)
184- else if ((3 == ae))
209+ else if ((3 == ak))
185210 then a(1)
186- else if ((7 == ae))
211+ else if ((7 == ak))
187212 then a(6)
188- else if ((9 == ae))
213+ else if ((9 == ak))
189214 then a(1)
190215 else 0
191216 }
192217
193218
194-func af (d) = ("status_Roulette_" + toString(d.caller))
219+func al (d) = ("status_Roulette_" + toString(d.caller))
195220
196221
197222 @Callable(d)
198-func Roulette_commit (N,O,P) = {
223+func Roulette_commit (T,U,V) = {
199224 let g = d.payments[0]
200- if (!(c(d, N)))
225+ if (!(c(d, T)))
201226 then throw("Wrong payment amount or asset!")
202- else [IntegerEntry(S(d), (height + 1)), IntegerEntry(T(d), N), StringEntry(U(d), A(O)), StringEntry(V(d), P), StringEntry(X(d), ((((("| status: commit | revealBlock: " + toString((height + 1))) + " | betAmount: ") + toString(N)) + " | selectedNumbers: ") + A(O)))]
227+ else [IntegerEntry(Y(d), (height + 1)), IntegerEntry(Z(d), T), StringEntry(aa(d), A(U)), StringEntry(ab(d), V), StringEntry(ad(d), ((((("| status: commit | revealBlock: " + toString((height + 1))) + " | betAmount: ") + toString(T)) + " | selectedNumbers: ") + A(U)))]
203228 }
204229
205230
206231
207232 @Callable(d)
208233 func Roulette_reveal () = {
209- let E = valueOrErrorMessage(getIntegerValue(S(d)), "Bet not found")
210- let N = valueOrErrorMessage(getIntegerValue(T(d)), "Bet amount not found")
211- let ag = valueOrErrorMessage(getStringValue(U(d)), "Selected numbers not found")
212- let ah = valueOrErrorMessage(getStringValue(V(d)), "Direction not found")
213- let ai = B(ag)
234+ let E = valueOrErrorMessage(getIntegerValue(Y(d)), "Bet not found")
235+ let T = valueOrErrorMessage(getIntegerValue(Z(d)), "Bet amount not found")
236+ let am = valueOrErrorMessage(getStringValue(aa(d)), "Selected numbers not found")
237+ let an = valueOrErrorMessage(getStringValue(ab(d)), "Direction not found")
238+ let ao = B(am)
214239 if ((E > height))
215240 then throw((("Wait " + toString((E - height))) + " blocks to reveal this id"))
216241 else {
217- let M = J(E)
218- let aj = a(L(M, N, ai, ah))
219- let ak = ((((((((("| commitHeight: " + toString(E)) + " | betAmount: ") + toString(N)) + " | winningAmount: ") + toString(aj)) + " | selectedNumbers: ") + A(ai)) + " | randomNumber: ") + toString(M))
220- let al = ((((((((("| status: reveal | winningAmount: " + toString(aj)) + " | selectedNumbers: ") + A(ai)) + " | randomNumber: ") + toString(M)) + " | betAmount: ") + toString(N)) + " | selectedNumbers: ") + A(ai))
221- if ((aj > 0))
222- then [DeleteEntry(S(d)), DeleteEntry(T(d)), DeleteEntry(U(d)), DeleteEntry(V(d)), ScriptTransfer(d.caller, aj, unit), StringEntry(W(d), ak), StringEntry(X(d), al)]
223- else [DeleteEntry(S(d)), DeleteEntry(T(d)), DeleteEntry(U(d)), DeleteEntry(V(d)), IntegerEntry(W(d), aj), StringEntry(W(d), ak), StringEntry(X(d), al)]
224- }
225- }
226-
227-
228-
229-@Callable(d)
230-func LuckyWheel_commit () = if (!(c(d, 1)))
231- then throw("Wrong payment amount or asset")
232- else [IntegerEntry(Y(d), (height + 1)), DeleteEntry(aa(d)), DeleteEntry(Z(d)), StringEntry(af(d), "| status: commit")]
233-
234-
235-
236-@Callable(d)
237-func LuckyWheel_reveal () = {
238- let E = valueOrErrorMessage(getIntegerValue(Y(d)), "Bet not found")
239- if ((E > height))
240- then throw((("Wait " + toString((E - height))) + " blocks to reveal this id"))
241- else {
242- let F = valueOrErrorMessage(blockInfoByHeight(E), "unexcpected error")
243- let G = valueOrErrorMessage(F.vrf, "unexcpected error")
244- let H = sha256(value(G))
245- let am = valueOrErrorMessage(blockInfoByHeight((E - 1)), "unexcpected error")
246- let an = valueOrErrorMessage(F.vrf, "unexcpected error")
247- let ao = sha256(value(G))
248- let ap = (toInt(H, 16) + (toInt(H, 10) / toInt(H, 5)))
249- let M = (ap % 12)
250- let aj = ac(M)
251- let al = (((("| status: reveal | winningAmount: " + toString(aj)) + " | selectedNumbers: ") + " | randomNumber: ") + toString(M))
252- if ((aj > 0))
253- then [DeleteEntry(Y(d)), ScriptTransfer(d.caller, aj, unit), IntegerEntry(Z(d), aj), IntegerEntry(aa(d), M), StringEntry(af(d), al)]
254- else [DeleteEntry(Y(d)), IntegerEntry(Z(d), aj), IntegerEntry(aa(d), M), StringEntry(af(d), al)]
242+ let P = J(E)
243+ let ap = a(S(P, T, ao, an))
244+ let aq = ((((((((("| commitHeight: " + toString(E)) + " | betAmount: ") + toString(T)) + " | winningAmount: ") + toString(ap)) + " | selectedNumbers: ") + A(ao)) + " | randomNumber: ") + toString(P))
245+ let ar = ((((((((("| status: reveal | winningAmount: " + toString(ap)) + " | selectedNumbers: ") + A(ao)) + " | randomNumber: ") + toString(P)) + " | betAmount: ") + toString(T)) + " | selectedNumbers: ") + A(ao))
246+ if ((ap > 0))
247+ then [DeleteEntry(Y(d)), DeleteEntry(Z(d)), DeleteEntry(aa(d)), DeleteEntry(ab(d)), ScriptTransfer(d.caller, ap, unit), StringEntry(ac(d), aq), StringEntry(ad(d), ar)]
248+ else [DeleteEntry(Y(d)), DeleteEntry(Z(d)), DeleteEntry(aa(d)), DeleteEntry(ab(d)), IntegerEntry(ac(d), ap), StringEntry(ac(d), aq), StringEntry(ad(d), ar)]
255249 }
256250 }
257251
258252

github/deemru/w8io/026f985 
64.82 ms