tx · D4g5vUXkoFKELWAAQTnNjdXiYPazUiaqE6vYRD2HjadK

3N272hFk6FBTgLM5HqpYVcCVmMcSCrEma9T:  -0.01000000 Waves

2023.06.07 16:45 [2612322] smart account 3N272hFk6FBTgLM5HqpYVcCVmMcSCrEma9T > SELF 0.00000000 Waves

{ "type": 13, "id": "D4g5vUXkoFKELWAAQTnNjdXiYPazUiaqE6vYRD2HjadK", "fee": 1000000, "feeAssetId": null, "timestamp": 1686145596863, "version": 2, "chainId": 84, "sender": "3N272hFk6FBTgLM5HqpYVcCVmMcSCrEma9T", "senderPublicKey": "97sWz4UZWijkagGprhucQHR7b7nN6FfojMELnzuFEyY1", "proofs": [ "46LoSgoobwFvXU3hitQfQJXkNbr95xFmVXj6gaMwogwdJv4nrdNxbabNsKwyennn9aTbSCQUY4tNNvbWeDJ3su8E" ], "script": "base64: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JGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAG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rAICAg93b25fTHVja3lXaGVlbF8JAKUIAQgFAWkGY2FsbGVyARVMV19nZXRSYW5kb21OdW1iZXJLZXkBAWkJAKwCAgIYcmFuZG9tTnVtYmVyX0x1Y2t5V2hlZWxfCQClCAEIBQFpBmNhbGxlcgEMTFdfZ2V0TG9nS2V5AQFpCQCsAgIJAKwCAgkArAICAg9sb2dfTHVja3lXaGVlbF8JAKUIAQgFAWkGY2FsbGVyAgFfCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQBDkxXX3doYXRVc2VyV29uAQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQAAAgABBQckbWF0Y2gwCQEKbnVtVG9XYXZlcwEAAgMJAAACAAMFByRtYXRjaDAJAQpudW1Ub1dhdmVzAQABAwkAAAIABwUHJG1hdGNoMAkBCm51bVRvV2F2ZXMBAAYDCQAAAgAJBQckbWF0Y2gwCQEKbnVtVG9XYXZlcwEAAQAAAQ9SX1dpbkNhbGN1bGF0b3IEDHJhbmRvbU51bWJlcgliZXRBbW91bnQSc2VsZWN0ZWROdW1iZXJCZXRzDGJldERpcmVjdGlvbgQLUkVEX1NFQ1RPUlMJAMwIAgAgCQDMCAIAEwkAzAgCABUJAMwIAgAZCQDMCAIAIgkAzAgCABsJAMwIAgAkCQDMCAIAHgkAzAgCABcJAMwIAgAFCQDMCAIAEAkAzAgCAAEJAMwIAgAOCQDMCAIACQkAzAgCABIJAMwIAgAHCQDMCAIADAkAzAgCAAMFA25pbAMDCQAAAgkAkAMBBRJzZWxlY3RlZE51bWJlckJldHMAAQkAAAIFDGJldERpcmVjdGlvbgIDbnVtBwMJAAACCQCRAwIFEnNlbGVjdGVkTnVtYmVyQmV0cwAABQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAJAAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAIDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAEgAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAMDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQADAAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAQDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQACQAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAwDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAAwAAAwkAAAIFDGJldERpcmVjdGlvbgIDcmVkAwkBD2NvbnRhaW5zRWxlbWVudAIFC1JFRF9TRUNUT1JTBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAAgAAAwkAAAIFDGJldERpcmVjdGlvbgIFYmxhY2sDAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgULUkVEX1NFQ1RPUlMFDHJhbmRvbU51bWJlcgkBAiE9AgUMcmFuZG9tTnVtYmVyAAAHCQBoAgUJYmV0QW1vdW50AAIAAAMJAAACBQxiZXREaXJlY3Rpb24CA29kZAMJAQIhPQIJAGoCBQxyYW5kb21OdW1iZXIAAgAACQBoAgUJYmV0QW1vdW50AAIAAAMJAAACBQxiZXREaXJlY3Rpb24CBGV2ZW4DCQAAAgkAagIFDHJhbmRvbU51bWJlcgACAAAJAGgCBQliZXRBbW91bnQAAgAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzABIDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAAgAAAAABC1JfZ2V0QmV0S2V5AQFpCQCsAgICDWJldF9Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyARFSX2dldEJldEFtb3VudEtleQEBaQkArAICAhNiZXRBbW91bnRfUm91bGV0dGVfCQClCAEIBQFpBmNhbGxlcgEXUl9nZXRTZWxlY3RlZE51bWJlcnNLZXkBAWkJAKwCAgIZc2VsZWN0ZWROdW1iZXJzX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXIBEVJfZ2V0RGlyZWN0aW9uS2V5AQFpCQCsAgICE2RpcmVjdGlvbl9Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyAQtSX2dldExvZ0tleQEBaQkArAICCQCsAgIJAKwCAgINbG9nX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXICAV8JANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQBaQEPUm91bGV0dGVfY29tbWl0AwliZXRBbW91bnQSc2VsZWN0ZWROdW1iZXJCZXRzDGJldERpcmVjdGlvbgQBcAkAkQMCCAUBaQhwYXltZW50cwAAAwkBASEBCQELaXNQYXltZW50T2sCBQFpBQliZXRBbW91bnQJAAIBAh5Xcm9uZyBwYXltZW50IGFtb3VudCBvciBhc3NldCEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQtSX2dldEJldEtleQEFAWkJAGQCBQZoZWlnaHQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEVJfZ2V0QmV0QW1vdW50S2V5AQUBaQUJYmV0QW1vdW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJARdSX2dldFNlbGVjdGVkTnVtYmVyc0tleQEFAWkJARdsaXN0SW50Q29tcHJlc3NUb1N0cmluZwEFEnNlbGVjdGVkTnVtYmVyQmV0cwkAzAgCCQELU3RyaW5nRW50cnkCCQERUl9nZXREaXJlY3Rpb25LZXkBBQFpBQxiZXREaXJlY3Rpb24FA25pbAFpAQ9Sb3VsZXR0ZV9yZXZlYWwABAxjb21taXRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBEUBleHRyTmF0aXZlKDEwNTUpAQkBC1JfZ2V0QmV0S2V5AQUBaQINQmV0IG5vdCBmb3VuZAQJYmV0QW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJARFAZXh0ck5hdGl2ZSgxMDU1KQEJARFSX2dldEJldEFtb3VudEtleQEFAWkCFEJldCBhbW91bnQgbm90IGZvdW5kBBJzZWxlY3RlZE51bWJlcnNTdHIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBEUBleHRyTmF0aXZlKDEwNTgpAQkBF1JfZ2V0U2VsZWN0ZWROdW1iZXJzS2V5AQUBaQIaU2VsZWN0ZWQgbnVtYmVycyBub3QgZm91bmQECWRpcmVjdGlvbgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQERQGV4dHJOYXRpdmUoMTA1OCkBCQERUl9nZXREaXJlY3Rpb25LZXkBBQFpAhNEaXJlY3Rpb24gbm90IGZvdW5kBA9zZWxlY3RlZE51bWJlcnMJARlzdHJpbmdEZWNvbXByZXNzVG9MaXN0SW50AQUSc2VsZWN0ZWROdW1iZXJzU3RyAwkAZgIFDGNvbW1pdEhlaWdodAUGaGVpZ2h0CQACAQkArAICCQCsAgICBVdhaXQgCQCkAwEJAGUCBQxjb21taXRIZWlnaHQFBmhlaWdodAIZIGJsb2NrcyB0byByZXZlYWwgdGhpcyBpZAQLcmV2ZWFsQmxvY2sJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7QcBBQxjb21taXRIZWlnaHQCEXVuZXhjcGVjdGVkIGVycm9yBAN2cmYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAggFC3JldmVhbEJsb2NrA3ZyZgIRdW5leGNwZWN0ZWQgZXJyb3IECnJhbmRvbUhhc2gJAPcDAQkBBXZhbHVlAQUDdnJmBAxyYW5kb21OdW1iZXIJAGoCCQCyCQIFCnJhbmRvbUhhc2gAEAAlBA13aW5uaW5nQW1vdW50CQEPUl9XaW5DYWxjdWxhdG9yBAUMcmFuZG9tTnVtYmVyBQliZXRBbW91bnQFD3NlbGVjdGVkTnVtYmVycwUJZGlyZWN0aW9uAwkAZgIFDXdpbm5pbmdBbW91bnQAAAkAzAgCCQELRGVsZXRlRW50cnkBCQELUl9nZXRCZXRLZXkBBQFpCQDMCAIJAQtEZWxldGVFbnRyeQEJARFSX2dldEJldEFtb3VudEtleQEFAWkJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBF1JfZ2V0U2VsZWN0ZWROdW1iZXJzS2V5AQUBaQkAzAgCCQELRGVsZXRlRW50cnkBCQERUl9nZXREaXJlY3Rpb25LZXkBBQFpCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUNd2lubmluZ0Ftb3VudAUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBC1JfZ2V0TG9nS2V5AQUBaQUNd2lubmluZ0Ftb3VudAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtSX2dldEJldEtleQEFAWkJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEVJfZ2V0QmV0QW1vdW50S2V5AQUBaQkAzAgCCQELRGVsZXRlRW50cnkBCQEXUl9nZXRTZWxlY3RlZE51bWJlcnNLZXkBBQFpCQDMCAIJAQtEZWxldGVFbnRyeQEJARFSX2dldERpcmVjdGlvbktleQEFAWkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQtSX2dldExvZ0tleQEFAWkFDXdpbm5pbmdBbW91bnQFA25pbAFpARFMdWNreVdoZWVsX2NvbW1pdAADCQEBIQEJAQtpc1BheW1lbnRPawIFAWkAAQkAAgECHVdyb25nIHBheW1lbnQgYW1vdW50IG9yIGFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEMTFdfZ2V0QmV0S2V5AQUBaQkAZAIFBmhlaWdodAABCQDMCAIJAQtEZWxldGVFbnRyeQEJARVMV19nZXRSYW5kb21OdW1iZXJLZXkBBQFpCQDMCAIJAQtEZWxldGVFbnRyeQEJAQxMV19nZXRXb25LZXkBBQFpBQNuaWwBaQERTHVja3lXaGVlbF9yZXZlYWwABAxjb21taXRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBEUBleHRyTmF0aXZlKDEwNTUpAQkBDExXX2dldEJldEtleQEFAWkCDUJldCBub3QgZm91bmQDCQBmAgUMY29tbWl0SGVpZ2h0BQZoZWlnaHQJAAIBCQCsAgIJAKwCAgIFV2FpdCAJAKQDAQkAZQIFDGNvbW1pdEhlaWdodAUGaGVpZ2h0AhkgYmxvY2tzIHRvIHJldmVhbCB0aGlzIGlkBAtyZXZlYWxCbG9jawkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDtBwEFDGNvbW1pdEhlaWdodAIRdW5leGNwZWN0ZWQgZXJyb3IEA3ZyZgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCAULcmV2ZWFsQmxvY2sDdnJmAhF1bmV4Y3BlY3RlZCBlcnJvcgQKcmFuZG9tSGFzaAkA9wMBCQEFdmFsdWUBBQN2cmYEDHJhbmRvbU51bWJlcgkAagIJALIJAgUKcmFuZG9tSGFzaAAQAAwEDXdpbm5pbmdBbW91bnQJAQ5MV193aGF0VXNlcldvbgEFDHJhbmRvbU51bWJlcgMJAGYCBQ13aW5uaW5nQW1vdW50AAAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDExXX2dldEJldEtleQEFAWkJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQ13aW5uaW5nQW1vdW50BQR1bml0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEMTFdfZ2V0V29uS2V5AQUBaQUNd2lubmluZ0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFUxXX2dldFJhbmRvbU51bWJlcktleQEFAWkFDHJhbmRvbU51bWJlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDExXX2dldExvZ0tleQEFAWkFDXdpbm5pbmdBbW91bnQFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBCQEMTFdfZ2V0QmV0S2V5AQUBaQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDExXX2dldFdvbktleQEFAWkFDXdpbm5pbmdBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJARVMV19nZXRSYW5kb21OdW1iZXJLZXkBBQFpBQxyYW5kb21OdW1iZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQxMV19nZXRMb2dLZXkBBQFpBQ13aW5uaW5nQW1vdW50BQNuaWwAswaYZQ==", "height": 2612322, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3MswvpKqBfLwhoJvagMaE5AvjiL8r9mQggrRUs1DPnDH Next: 82yzNbf6fZJocHAmifu5DoWvH5YoNgRu8HLkKBnZcsKn Diff:
OldNewDifferences
77 func isPaymentOk (i,sum) = {
88 let acceptableAssetId = base58'WAVES'
99 let p = i.payments[0]
10- (p.assetId == acceptableAssetId)
10+ (p.assetId == unit)
1111 }
1212
1313
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]
10- (p.assetId == acceptableAssetId)
10+ (p.assetId == unit)
1111 }
1212
1313
1414 func mapIntToStr (accum,next) = toString(next) :: accum
1515
1616
1717 func mapStrToInt (accum,next) = parseIntValue(next) :: accum
1818
1919
2020 func mapIntToSum (accum,next) = (accum + next)
2121
2222
2323 func listIntToSum (arr) = {
2424 let $l = arr
2525 let $s = size($l)
2626 let $acc0 = 0
2727 func $f0_1 ($a,$i) = if (($i >= $s))
2828 then $a
2929 else mapIntToSum($a, $l[$i])
3030
3131 func $f0_2 ($a,$i) = if (($i >= $s))
3232 then $a
3333 else throw("List size exceeds 100")
3434
3535 $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($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), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
3636 }
3737
3838
3939 func listIntToListString (arr) = {
4040 let $l = arr
4141 let $s = size($l)
4242 let $acc0 = nil
4343 func $f0_1 ($a,$i) = if (($i >= $s))
4444 then $a
4545 else mapIntToStr($a, $l[$i])
4646
4747 func $f0_2 ($a,$i) = if (($i >= $s))
4848 then $a
4949 else throw("List size exceeds 100")
5050
5151 $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($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), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
5252 }
5353
5454
5555 func listStringToListIng (arr) = {
5656 let $l = arr
5757 let $s = size($l)
5858 let $acc0 = nil
5959 func $f0_1 ($a,$i) = if (($i >= $s))
6060 then $a
6161 else mapStrToInt($a, $l[$i])
6262
6363 func $f0_2 ($a,$i) = if (($i >= $s))
6464 then $a
6565 else throw("List size exceeds 100")
6666
6767 $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($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), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
6868 }
6969
7070
7171 func listStringCompressToString (arr) = makeString(arr, "|")
7272
7373
7474 func stringDecompressToListString (str) = split(str, "|")
7575
7676
7777 func listIntCompressToString (arr) = makeString(listIntToListString(arr), "|")
7878
7979
8080 func stringDecompressToListInt (arrStr) = listStringToListIng(split(arrStr, "|"))
8181
8282
8383 func LW_getBetKey (i) = ("bet_LuckyWheel_" + toString(i.caller))
8484
8585
8686 func LW_getWonKey (i) = ("won_LuckyWheel_" + toString(i.caller))
8787
8888
8989 func LW_getRandomNumberKey (i) = ("randomNumber_LuckyWheel_" + toString(i.caller))
9090
9191
9292 func LW_getLogKey (i) = ((("log_LuckyWheel_" + toString(i.caller)) + "_") + toBase58String(i.transactionId))
9393
9494
9595 func LW_whatUserWon (value) = match value {
9696 case _ =>
9797 if ((1 == $match0))
9898 then numToWaves(2)
9999 else if ((3 == $match0))
100100 then numToWaves(1)
101101 else if ((7 == $match0))
102102 then numToWaves(6)
103103 else if ((9 == $match0))
104104 then numToWaves(1)
105105 else 0
106106 }
107107
108108
109109 func R_WinCalculator (randomNumber,betAmount,selectedNumberBets,betDirection) = {
110110 let RED_SECTORS = [32, 19, 21, 25, 34, 27, 36, 30, 23, 5, 16, 1, 14, 9, 18, 7, 12, 3]
111111 if (if ((size(selectedNumberBets) == 1))
112112 then (betDirection == "num")
113113 else false)
114114 then if ((selectedNumberBets[0] == randomNumber))
115115 then (betAmount * 36)
116116 else 0
117117 else if ((size(selectedNumberBets) == 2))
118118 then if (containsElement(selectedNumberBets, randomNumber))
119119 then (betAmount * 18)
120120 else 0
121121 else if ((size(selectedNumberBets) == 3))
122122 then if (containsElement(selectedNumberBets, randomNumber))
123123 then (betAmount * 12)
124124 else 0
125125 else if ((size(selectedNumberBets) == 4))
126126 then if (containsElement(selectedNumberBets, randomNumber))
127127 then (betAmount * 9)
128128 else 0
129129 else if ((size(selectedNumberBets) == 12))
130130 then if (containsElement(selectedNumberBets, randomNumber))
131131 then (betAmount * 3)
132132 else 0
133133 else if ((betDirection == "red"))
134134 then if (containsElement(RED_SECTORS, randomNumber))
135135 then (betAmount * 2)
136136 else 0
137137 else if ((betDirection == "black"))
138138 then if (if (!(containsElement(RED_SECTORS, randomNumber)))
139139 then (randomNumber != 0)
140140 else false)
141141 then (betAmount * 2)
142142 else 0
143143 else if ((betDirection == "odd"))
144144 then if (((randomNumber % 2) != 0))
145145 then (betAmount * 2)
146146 else 0
147147 else if ((betDirection == "even"))
148148 then if (((randomNumber % 2) == 0))
149149 then (betAmount * 2)
150150 else 0
151151 else if ((size(selectedNumberBets) == 18))
152152 then if (containsElement(selectedNumberBets, randomNumber))
153153 then (betAmount * 2)
154154 else 0
155155 else 0
156156 }
157157
158158
159159 func R_getBetKey (i) = ("bet_Roulette_" + toString(i.caller))
160160
161161
162162 func R_getBetAmountKey (i) = ("betAmount_Roulette_" + toString(i.caller))
163163
164164
165165 func R_getSelectedNumbersKey (i) = ("selectedNumbers_Roulette_" + toString(i.caller))
166166
167167
168168 func R_getDirectionKey (i) = ("direction_Roulette_" + toString(i.caller))
169169
170170
171171 func R_getLogKey (i) = ((("log_Roulette_" + toString(i.caller)) + "_") + toBase58String(i.transactionId))
172172
173173
174174 @Callable(i)
175175 func Roulette_commit (betAmount,selectedNumberBets,betDirection) = {
176176 let p = i.payments[0]
177177 if (!(isPaymentOk(i, betAmount)))
178178 then throw("Wrong payment amount or asset!")
179179 else [IntegerEntry(R_getBetKey(i), (height + 1)), IntegerEntry(R_getBetAmountKey(i), betAmount), StringEntry(R_getSelectedNumbersKey(i), listIntCompressToString(selectedNumberBets)), StringEntry(R_getDirectionKey(i), betDirection)]
180180 }
181181
182182
183183
184184 @Callable(i)
185185 func Roulette_reveal () = {
186186 let commitHeight = valueOrErrorMessage(getIntegerValue(R_getBetKey(i)), "Bet not found")
187187 let betAmount = valueOrErrorMessage(getIntegerValue(R_getBetAmountKey(i)), "Bet amount not found")
188188 let selectedNumbersStr = valueOrErrorMessage(getStringValue(R_getSelectedNumbersKey(i)), "Selected numbers not found")
189189 let direction = valueOrErrorMessage(getStringValue(R_getDirectionKey(i)), "Direction not found")
190190 let selectedNumbers = stringDecompressToListInt(selectedNumbersStr)
191191 if ((commitHeight > height))
192192 then throw((("Wait " + toString((commitHeight - height))) + " blocks to reveal this id"))
193193 else {
194194 let revealBlock = valueOrErrorMessage(blockInfoByHeight(commitHeight), "unexcpected error")
195195 let vrf = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
196196 let randomHash = sha256(value(vrf))
197197 let randomNumber = (toInt(randomHash, 16) % 37)
198198 let winningAmount = R_WinCalculator(randomNumber, betAmount, selectedNumbers, direction)
199199 if ((winningAmount > 0))
200200 then [DeleteEntry(R_getBetKey(i)), DeleteEntry(R_getBetAmountKey(i)), DeleteEntry(R_getSelectedNumbersKey(i)), DeleteEntry(R_getDirectionKey(i)), ScriptTransfer(i.caller, winningAmount, unit), IntegerEntry(R_getLogKey(i), winningAmount)]
201201 else [DeleteEntry(R_getBetKey(i)), DeleteEntry(R_getBetAmountKey(i)), DeleteEntry(R_getSelectedNumbersKey(i)), DeleteEntry(R_getDirectionKey(i)), IntegerEntry(R_getLogKey(i), winningAmount)]
202202 }
203203 }
204204
205205
206206
207207 @Callable(i)
208208 func LuckyWheel_commit () = if (!(isPaymentOk(i, 1)))
209209 then throw("Wrong payment amount or asset")
210210 else [IntegerEntry(LW_getBetKey(i), (height + 1)), DeleteEntry(LW_getRandomNumberKey(i)), DeleteEntry(LW_getWonKey(i))]
211211
212212
213213
214214 @Callable(i)
215215 func LuckyWheel_reveal () = {
216216 let commitHeight = valueOrErrorMessage(getIntegerValue(LW_getBetKey(i)), "Bet not found")
217217 if ((commitHeight > height))
218218 then throw((("Wait " + toString((commitHeight - height))) + " blocks to reveal this id"))
219219 else {
220220 let revealBlock = valueOrErrorMessage(blockInfoByHeight(commitHeight), "unexcpected error")
221221 let vrf = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
222222 let randomHash = sha256(value(vrf))
223223 let randomNumber = (toInt(randomHash, 16) % 12)
224224 let winningAmount = LW_whatUserWon(randomNumber)
225225 if ((winningAmount > 0))
226226 then [DeleteEntry(LW_getBetKey(i)), ScriptTransfer(i.caller, winningAmount, unit), IntegerEntry(LW_getWonKey(i), winningAmount), IntegerEntry(LW_getRandomNumberKey(i), randomNumber), IntegerEntry(LW_getLogKey(i), winningAmount)]
227227 else [DeleteEntry(LW_getBetKey(i)), IntegerEntry(LW_getWonKey(i), winningAmount), IntegerEntry(LW_getRandomNumberKey(i), randomNumber), IntegerEntry(LW_getLogKey(i), winningAmount)]
228228 }
229229 }
230230
231231

github/deemru/w8io/169f3d6 
67.64 ms