@edgefund/core
Version:
EdgeFund Core contracts and tests
910 lines • 519 kB
JSON
{
"contractName": "EdgeFundBettingFunctions",
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": true,
"inputs": [],
"name": "getMultiplier",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getBankRoll",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCasinoDecimalPayoutOdds",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCasinoLiability",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getFStar",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getKellyEdge",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getProbabilityKellyUser",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getProbabilityKellyCasino",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getProbabilityWinUser",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getProbabilityWinCasino",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getProbabilityFairUser",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getProbabilityFairCasino",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEdgeKellyCasino",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEdgeKellyUser",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEdgeTotalCasino",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEdgeTotalUser",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEdgeGameOperatorCasino",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEdgeGameOperatorUser",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEVKellyCasino",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEVKellyUser",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEVTotalCasino",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEVTotalUser",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEVGameOperatorCasino",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getEVGameOperatorUser",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60806040526305f5e10060005534801561001857600080fd5b50600054606481026001908155602482026002556026820260035562989680909102600455600555610ae48061004f6000396000f3006080604052600436106101245763ffffffff60e060020a60003504166310a45e5b8114610129578063202fd5fc146101505780632e07b444146101655780633299c5e31461017a57806340490a901461018f57806348f25753146101a45780635a9920b7146101b95780635b5ed2ed146101ce578063616fb5d0146101e357806376401524146101f85780638c6983bf1461020d5780638d5a1df2146102225780639079f21414610237578063941497151461024c5780639ee142f614610261578063a2edbe1714610276578063a86ed7361461028b578063a8c46c6c146102a0578063a9718e81146102b5578063ae56b152146102ca578063bb16f036146102df578063cab1b810146102f4578063d5f3088714610309578063f4550fa11461031e575b600080fd5b34801561013557600080fd5b5061013e610333565b60408051918252519081900360200190f35b34801561015c57600080fd5b5061013e6103aa565b34801561017157600080fd5b5061013e6103c5565b34801561018657600080fd5b5061013e6103da565b34801561019b57600080fd5b5061013e6104d4565b3480156101b057600080fd5b5061013e6104da565b3480156101c557600080fd5b5061013e61059f565b3480156101da57600080fd5b5061013e6105be565b3480156101ef57600080fd5b5061013e6105d7565b34801561020457600080fd5b5061013e6105dd565b34801561021957600080fd5b5061013e610666565b34801561022e57600080fd5b5061013e61072b565b34801561024357600080fd5b5061013e6107f0565b34801561025857600080fd5b5061013e61080f565b34801561026d57600080fd5b5061013e610824565b34801561028257600080fd5b5061013e61083c565b34801561029757600080fd5b5061013e61085b565b3480156102ac57600080fd5b5061013e610884565b3480156102c157600080fd5b5061013e61089d565b3480156102d657600080fd5b5061013e6108b6565b3480156102eb57600080fd5b5061013e6109c1565b34801561030057600080fd5b5061013e6109e0565b34801561031557600080fd5b5061013e610a21565b34801561032a57600080fd5b5061013e610a36565b60008030600160a060020a0316632e07b4446040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561037457600080fd5b505af1158015610388573d6000803e3d6000fd5b505050506040513d602081101561039e57600080fd5b50516000540392915050565b6000600354600054600054028115156103bf57fe5b05905090565b6000600254600054600054028115156103bf57fe5b600080600030600160a060020a031663bb16f0366040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561041d57600080fd5b505af1158015610431573d6000803e3d6000fd5b505050506040513d602081101561044757600080fd5b5051604080517fd5f308870000000000000000000000000000000000000000000000000000000081529051919350309163d5f30887916004808201926020929091908290030181600087803b15801561049f57600080fd5b505af11580156104b3573d6000803e3d6000fd5b505050506040513d60208110156104c957600080fd5b505190910392915050565b60005490565b600080600030600160a060020a031663a9718e816040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561051d57600080fd5b505af1158015610531573d6000803e3d6000fd5b505050506040513d602081101561054757600080fd5b5051604080517ff4550fa10000000000000000000000000000000000000000000000000000000081529051919350309163f4550fa1916004808201926020929091908290030181600087803b15801561049f57600080fd5b6000600354600254600154028115156105b457fe5b0560015403905090565b600060035460005460035403600054028115156103bf57fe5b60045490565b60008030600160a060020a0316639ee142f66040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561061e57600080fd5b505af1158015610632573d6000803e3d6000fd5b505050506040513d602081101561064857600080fd5b505160045460005491925090820281151561065f57fe5b0591505090565b600080600030600160a060020a031663a2edbe176040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106a957600080fd5b505af11580156106bd573d6000803e3d6000fd5b505050506040513d60208110156106d357600080fd5b5051604080517f76401524000000000000000000000000000000000000000000000000000000008152905191935030916376401524916004808201926020929091908290030181600087803b15801561049f57600080fd5b600080600030600160a060020a0316635a9920b76040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561076e57600080fd5b505af1158015610782573d6000803e3d6000fd5b505050506040513d602081101561079857600080fd5b5051604080517fae56b1520000000000000000000000000000000000000000000000000000000081529051919350309163ae56b152916004808201926020929091908290030181600087803b15801561049f57600080fd5b60006005546004546000546001540281151561080857fe5b0502905090565b6000805460025481810391028115156103bf57fe5b6000805460005460025403600154028115156103bf57fe5b60006003546000546002540281151561085157fe5b0560005403905090565b60006002546004540260045460055460015402016000546002540360005402028115156103bf57fe5b600060045460005460025403600154028115156103bf57fe5b600060035460025460035403600154028115156103bf57fe5b600080600030600160a060020a0316639ee142f66040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156108f957600080fd5b505af115801561090d573d6000803e3d6000fd5b505050506040513d602081101561092357600080fd5b5051604080517fd5f308870000000000000000000000000000000000000000000000000000000081529051919350309163d5f30887916004808201926020929091908290030181600087803b15801561097b57600080fd5b505af115801561098f573d6000803e3d6000fd5b505050506040513d60208110156109a557600080fd5b50516000549091508282028115156109b957fe5b059250505090565b600080546002546003548282038102928002919003028115156103bf57fe5b60008030600160a060020a031663a86ed7366040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561037457600080fd5b6000600454600154600054028115156103bf57fe5b60008030600160a060020a031663764015246040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a7757600080fd5b505af1158015610a8b573d6000803e3d6000fd5b505050506040513d6020811015610aa157600080fd5b505160005460015491925090820281151561065f57fe00a165627a7a72305820e0db5603204014b5afb3c7bf8ca77f6d891b9b26d73badd0424c4a946e3c3d8b0029",
"deployedBytecode": "0x6080604052600436106101245763ffffffff60e060020a60003504166310a45e5b8114610129578063202fd5fc146101505780632e07b444146101655780633299c5e31461017a57806340490a901461018f57806348f25753146101a45780635a9920b7146101b95780635b5ed2ed146101ce578063616fb5d0146101e357806376401524146101f85780638c6983bf1461020d5780638d5a1df2146102225780639079f21414610237578063941497151461024c5780639ee142f614610261578063a2edbe1714610276578063a86ed7361461028b578063a8c46c6c146102a0578063a9718e81146102b5578063ae56b152146102ca578063bb16f036146102df578063cab1b810146102f4578063d5f3088714610309578063f4550fa11461031e575b600080fd5b34801561013557600080fd5b5061013e610333565b60408051918252519081900360200190f35b34801561015c57600080fd5b5061013e6103aa565b34801561017157600080fd5b5061013e6103c5565b34801561018657600080fd5b5061013e6103da565b34801561019b57600080fd5b5061013e6104d4565b3480156101b057600080fd5b5061013e6104da565b3480156101c557600080fd5b5061013e61059f565b3480156101da57600080fd5b5061013e6105be565b3480156101ef57600080fd5b5061013e6105d7565b34801561020457600080fd5b5061013e6105dd565b34801561021957600080fd5b5061013e610666565b34801561022e57600080fd5b5061013e61072b565b34801561024357600080fd5b5061013e6107f0565b34801561025857600080fd5b5061013e61080f565b34801561026d57600080fd5b5061013e610824565b34801561028257600080fd5b5061013e61083c565b34801561029757600080fd5b5061013e61085b565b3480156102ac57600080fd5b5061013e610884565b3480156102c157600080fd5b5061013e61089d565b3480156102d657600080fd5b5061013e6108b6565b3480156102eb57600080fd5b5061013e6109c1565b34801561030057600080fd5b5061013e6109e0565b34801561031557600080fd5b5061013e610a21565b34801561032a57600080fd5b5061013e610a36565b60008030600160a060020a0316632e07b4446040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561037457600080fd5b505af1158015610388573d6000803e3d6000fd5b505050506040513d602081101561039e57600080fd5b50516000540392915050565b6000600354600054600054028115156103bf57fe5b05905090565b6000600254600054600054028115156103bf57fe5b600080600030600160a060020a031663bb16f0366040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561041d57600080fd5b505af1158015610431573d6000803e3d6000fd5b505050506040513d602081101561044757600080fd5b5051604080517fd5f308870000000000000000000000000000000000000000000000000000000081529051919350309163d5f30887916004808201926020929091908290030181600087803b15801561049f57600080fd5b505af11580156104b3573d6000803e3d6000fd5b505050506040513d60208110156104c957600080fd5b505190910392915050565b60005490565b600080600030600160a060020a031663a9718e816040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561051d57600080fd5b505af1158015610531573d6000803e3d6000fd5b505050506040513d602081101561054757600080fd5b5051604080517ff4550fa10000000000000000000000000000000000000000000000000000000081529051919350309163f4550fa1916004808201926020929091908290030181600087803b15801561049f57600080fd5b6000600354600254600154028115156105b457fe5b0560015403905090565b600060035460005460035403600054028115156103bf57fe5b60045490565b60008030600160a060020a0316639ee142f66040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561061e57600080fd5b505af1158015610632573d6000803e3d6000fd5b505050506040513d602081101561064857600080fd5b505160045460005491925090820281151561065f57fe5b0591505090565b600080600030600160a060020a031663a2edbe176040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106a957600080fd5b505af11580156106bd573d6000803e3d6000fd5b505050506040513d60208110156106d357600080fd5b5051604080517f76401524000000000000000000000000000000000000000000000000000000008152905191935030916376401524916004808201926020929091908290030181600087803b15801561049f57600080fd5b600080600030600160a060020a0316635a9920b76040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561076e57600080fd5b505af1158015610782573d6000803e3d6000fd5b505050506040513d602081101561079857600080fd5b5051604080517fae56b1520000000000000000000000000000000000000000000000000000000081529051919350309163ae56b152916004808201926020929091908290030181600087803b15801561049f57600080fd5b60006005546004546000546001540281151561080857fe5b0502905090565b6000805460025481810391028115156103bf57fe5b6000805460005460025403600154028115156103bf57fe5b60006003546000546002540281151561085157fe5b0560005403905090565b60006002546004540260045460055460015402016000546002540360005402028115156103bf57fe5b600060045460005460025403600154028115156103bf57fe5b600060035460025460035403600154028115156103bf57fe5b600080600030600160a060020a0316639ee142f66040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156108f957600080fd5b505af115801561090d573d6000803e3d6000fd5b505050506040513d602081101561092357600080fd5b5051604080517fd5f308870000000000000000000000000000000000000000000000000000000081529051919350309163d5f30887916004808201926020929091908290030181600087803b15801561097b57600080fd5b505af115801561098f573d6000803e3d6000fd5b505050506040513d60208110156109a557600080fd5b50516000549091508282028115156109b957fe5b059250505090565b600080546002546003548282038102928002919003028115156103bf57fe5b60008030600160a060020a031663a86ed7366040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561037457600080fd5b6000600454600154600054028115156103bf57fe5b60008030600160a060020a031663764015246040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a7757600080fd5b505af1158015610a8b573d6000803e3d6000fd5b505050506040513d6020811015610aa157600080fd5b505160005460015491925090820281151561065f57fe00a165627a7a72305820e0db5603204014b5afb3c7bf8ca77f6d891b9b26d73badd0424c4a946e3c3d8b0029",
"sourceMap": "26:4782:3:-;;;84:7;66:25;;219:298;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;334:11:3;;328:3;:17;;313:12;:32;;;376:2;:16;;355:18;:37;420:2;:16;;402:15;:34;458:8;:22;;;446:9;:34;490:16;:20;26:4782;;;;;;",
"deployedSourceMap": "26:4782:3:-;;;;;;;;;-1:-1:-1;;;26:4782:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2245:188:3;;;;;;;;;;;;;;;;;;;;1810:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1810:131:3;;;;2104:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2104:135:3;;;;3143:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3143:238:3;;;;523:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;523:89:3;;;;4596:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4596:210:3;;;;4051:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4051:151:3;;;;1947;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1947:151:3;;;;618:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;618:85:3;;;;2568:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2568:182:3;;;;3387:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3387:224:3;;;;4366;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4366:224:3;;;;1171:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1171:136:3;;;;709:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;709:162:3;;;;877:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;877:146:3;;;;2988:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2988:149:3;;;;1515:289;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1515:289:3;;;;1029:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1029:136:3;;;;4208:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4208:152:3;;;;3617:245;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3617:245:3;;;;2756:226;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2756:226:3;;;;1313:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1313:196:3;;;;2439:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2439:123:3;;;;3868:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3868:177:3;;;;2245:188;2301:3;2320:23;2346:4;-1:-1:-1;;;;;2346:27:3;;:29;;;;;-1:-1:-1;;;2346:29:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2346:29:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2346:29:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2346:29:3;2393:11;;:33;;2245:188;-1:-1:-1;;2245:188:3:o;1810:131::-;1863:3;1919:15;;1904:11;;1890;;:25;1889:45;;;;;;;;1882:52;;1810:131;:::o;2104:135::-;2158:3;2214:18;;2199:11;;2185;;:25;2184:48;;;;;;3143:238;3200:3;3219:19;3276;3241:4;-1:-1:-1;;;;;3241:23:3;;:25;;;;;-1:-1:-1;;;3241:25:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3241:25:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3241:25:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3241:25:3;3298;;;;;;;;3241;;-1:-1:-1;3298:4:3;;:23;;:25;;;;;3241;;3298;;;;;;;;;:4;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;3298:25:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3298:25:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3298:25:3;3341:33;;;;3143:238;-1:-1:-1;;3143:238:3:o;523:89::-;568:3;594:11;523:89;:::o;4596:210::-;4649:3;4668:15;4717;4686:4;-1:-1:-1;;;;;4686:19:3;;:21;;;;;-1:-1:-1;;;4686:21:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4686:21:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4686:21:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4686:21:3;4735;;;;;;;;4686;;-1:-1:-1;4735:4:3;;:19;;:21;;;;;4686;;4735;;;;;;;;;:4;:21;;;5:2:-1;;;;30:1;27;20:12;4051:151:3;4099:3;4179:15;;4157:18;;4142:12;;:33;4141:53;;;;;;;;4125:12;;:70;4118:77;;4051:151;:::o;1947:::-;2002:3;2076:15;;2062:11;;2044:15;;:29;2029:11;;:45;2028:63;;;;;;618:85;687:9;;618:85;:::o;2568:182::-;2616:3;2635:19;2657:4;-1:-1:-1;;;;;2657:23:3;;:25;;;;;-1:-1:-1;;;2657:25:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2657:25:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2657:25:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2657:25:3;2734:9;;2701:11;;2657:25;;-1:-1:-1;2734:9:3;2701:29;;2700:43;;;;;;;;2693:50;;2568:182;;:::o;3387:224::-;3442:3;3461:17;3514;3481:4;-1:-1:-1;;;;;3481:21:3;;:23;;;;;-1:-1:-1;;;3481:23:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3481:23:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3481:23:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3481:23:3;3534;;;;;;;;3481;;-1:-1:-1;3534:4:3;;:21;;:23;;;;;3481;;3534;;;;;;;;;:4;:23;;;5:2:-1;;;;30:1;27;20:12;4366:224:3;4421:3;4440:17;4493;4460:4;-1:-1:-1;;;;;4460:21:3;;:23;;;;;-1:-1:-1;;;4460:23:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4460:23:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4460:23:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4460:23:3;4513;;;;;;;;4460;;-1:-1:-1;4513:4:3;;:21;;:23;;;;;4460;;4513;;;;;;;;;:4;:23;;;5:2:-1;;;;30:1;27;20:12;1171:136:3;1215:3;1284:16;;1271:9;;1257:11;;1242:12;;:26;:38;;;;;;;;1241:59;1234:66;;1171:136;:::o;709:162::-;767:3;851:11;;830:18;;:32;;;;794;:69;;;;;;877:146;927:3;1005:11;;991;;970:18;;:32;954:12;;:49;953:63;;;;;;2988:149;3036:3;3114:15;;3099:11;;3078:18;;:32;3077:52;;;;;;;;3062:11;;:68;3055:75;;2988:149;:::o;1515:289::-;1572:3;1768:18;;1758:9;;:28;1731:9;;1712:16;;1697:12;;:31;:43;1669:11;;1648:18;;:32;1621:11;;:60;:120;1620:167;;;;;;1029:136;1069:3;1149:9;;1133:11;;1112:18;;:32;1096:12;;:49;1095:63;;;;;;4208:152;4254:3;4338:15;;4315:18;;4297:15;;:36;4281:12;;:53;4280:73;;;;;;3617:245;3665:3;3684:19;3741;3706:4;-1:-1:-1;;;;;3706:23:3;;:25;;;;;-1:-1:-1;;;3706:25:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3706:25:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3706:25:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3706:25:3;3763;;;;;;;;3706;;-1:-1:-1;3763:4:3;;:23;;:25;;;;;3706;;3763;;;;;;;;;:4;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;3763:25:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3763:25:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3763:25:3;3844:11;;3763:25;;-1:-1:-1;3807:33:3;;;3806:49;;;;;;;;3799:56;;3617:245;;;:::o;2756:226::-;2806:3;2961:11;;2940:18;;2921:15;;2940:32;;;2921:52;;;2834:25;;2871:36;;;2834:74;2833:141;;;;;;1313:196;1368:3;1387:26;1416:4;-1:-1:-1;;;;;1416:30:3;;:32;;;;;-1:-1:-1;;;1416:32:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;2439:123:3;2489:3;2546:9;;2530:12;;2516:11;;:26;2515:40;;;;;;3868:177;3914:3;3933:17;3953:4;-1:-1:-1;;;;;3953:21:3;;:23;;;;;-1:-1:-1;;;3953:23:3;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3953:23:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3953:23:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3953:23:3;4027:11;;3995:12;;3953:23;;-1:-1:-1;4027:11:3;3995:28;;3994:44;;;;;",
"source": "pragma solidity ^0.4.24;\n\ncontract EdgeFundBettingFunctions{\n\n int _Multiplier = 10 ** 8;\n\n int _UserBetSize;\n int _DecimalPayoutOdds;\n int _DecimalWinOdds;\n int _BankRoll;\n int _FractionalKelly;\n\n constructor() public\n {\n //Force this to be a single American roulette bet.\n _UserBetSize = 100 * _Multiplier;\n _DecimalPayoutOdds = 36 * _Multiplier;\n _DecimalWinOdds = 38 * _Multiplier;\n _BankRoll = 10000000 * _Multiplier;\n _FractionalKelly = 1;\n }\n\n function getMultiplier() public view returns(int)\n {\n return _Multiplier;\n }\n\n function getBankRoll() public view returns(int)\n {\n return _BankRoll;\n }\n\n function getCasinoDecimalPayoutOdds() public view returns(int)\n {\n return (_DecimalPayoutOdds * _Multiplier / (_DecimalPayoutOdds - _Multiplier));\n }\n\n function getCasinoLiability() public view returns(int)\n {\n return (_UserBetSize * (_DecimalPayoutOdds - _Multiplier))/_Multiplier;\n }\n\n function getFStar() public view returns(int)\n {\n return (_UserBetSize * (_DecimalPayoutOdds - _Multiplier)) / _BankRoll;\n }\n\n function getKellyEdge() public view returns(int)\n {\n return (_UserBetSize * _Multiplier / _BankRoll) * _FractionalKelly;\n }\n\n function getProbabilityKellyUser() public view returns(int)\n {\n int ProbabilityKellyCasino = this.getProbabilityKellyCasino();\n\n return _Multiplier - ProbabilityKellyCasino;\n }\n\n function getProbabilityKellyCasino() public view returns(int)\n {\n return\n (\n (_Multiplier *\n (_DecimalPayoutOdds - _Multiplier) *\n (_UserBetSize * _FractionalKelly + _BankRoll)) /\n (_BankRoll*_DecimalPayoutOdds)\n );\n }\n\n function getProbabilityWinUser() public view returns(int)\n {\n return (_Multiplier * _Multiplier) / _DecimalWinOdds;\n }\n\n function getProbabilityWinCasino() public view returns(int)\n {\n return (_Multiplier * (_DecimalWinOdds - _Multiplier))/_DecimalWinOdds;\n }\n\n function getProbabilityFairUser() public view returns(int)\n {\n return (_Multiplier * _Multiplier) / _DecimalPayoutOdds;\n }\n\n function getProbabilityFairCasino() public view returns(int)\n {\n int ProbabilityFairUser = this.getProbabilityFairUser();\n\n return _Multiplier - ProbabilityFairUser;\n }\n\n function getEdgeKellyCasino() public view returns(int)\n {\n return (_Multiplier * _UserBetSize) / _BankRoll;\n }\n\n function getEdgeKellyUser() public view returns(int)\n {\n int CasinoLiability = this.getCasinoLiability();\n\n return (_Multiplier * CasinoLiability) / _BankRoll;\n }\n\n function getEdgeTotalCasino() public view returns(int)\n {\n return ((_Multiplier * _Multiplier *\n (_DecimalWinOdds - _DecimalPayoutOdds)) /\n (_DecimalWinOdds * (_DecimalPayoutOdds - _Multiplier)));\n }\n\n function getEdgeTotalUser() public view returns(int)\n {\n return _Multiplier - ((_DecimalPayoutOdds * _Multiplier) / _DecimalWinOdds);\n }\n\n function getEdgeGameOperatorCasino() public view returns(int)\n {\n int EdgeTotalCasino = this.getEdgeTotalCasino();\n int EdgeKellyCasino = this.getEdgeKellyCasino();\n\n return EdgeTotalCasino - EdgeKellyCasino;\n }\n\n function getEdgeGameOperatorUser() public view returns(int)\n {\n int EdgeTotalUser = this.getEdgeTotalUser();\n int EdgeKellyUser = this.getEdgeKellyUser();\n\n return EdgeTotalUser - EdgeKellyUser;\n }\n\n function getEVKellyCasino() public view returns(int)\n {\n int CasinoLiability = this.getCasinoLiability();\n int EdgeKellyCasino = this.getEdgeKellyCasino();\n\n return (CasinoLiability * EdgeKellyCasino) / _Multiplier;\n }\n\n function getEVKellyUser() public view returns(int)\n {\n int EdgeKellyUser = this.getEdgeKellyUser();\n\n return (_UserBetSize * EdgeKellyUser) / _Multiplier;\n }\n\n function getEVTotalCasino() public view returns(int)\n {\n return _UserBetSize - ((_UserBetSize * _DecimalPayoutOdds) / _DecimalWinOdds);\n }\n\n function getEVTotalUser() public view returns(int)\n {\n return (_UserBetSize * (_DecimalWinOdds - _DecimalPayoutOdds)) / _DecimalWinOdds;\n }\n\n function getEVGameOperatorCasino() public view returns(int)\n {\n int EVTotalCasino = this.getEVTotalCasino();\n int EVKellyCasino = this.getEVKellyCasino();\n\n return EVTotalCasino - EVKellyCasino;\n }\n\n function getEVGameOperatorUser() public view returns(int)\n {\n int EVTotalUser = this.getEVTotalUser();\n int EVKellyUser = this.getEVKellyUser();\n\n return EVTotalUser - EVKellyUser;\n }\n}\n",
"sourcePath": "/Users/garethoates/Developer/Blockchain/EdgeFund/edgefund-core/contracts/EdgeFundBettingFunctions.sol",
"ast": {
"absolutePath": "/Users/garethoates/Developer/Blockchain/EdgeFund/edgefund-core/contracts/EdgeFundBettingFunctions.sol",
"exportedSymbols": {
"EdgeFundBettingFunctions": [
1126
]
},
"id": 1127,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 661,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:3"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 1126,
"linearizedBaseContracts": [
1126
],
"name": "EdgeFundBettingFunctions",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 666,
"name": "_Multiplier",
"nodeType": "VariableDeclaration",
"scope": 1126,
"src": "66:25:3",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 662,
"name": "int",
"nodeType": "ElementaryTypeName",
"src": "66:3:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"value": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_rational_100000000_by_1",
"typeString": "int_const 100000000"
},
"id": 665,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3130",
"id": 663,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "84:2:3",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10_by_1",
"typeString": "int_const 10"
},
"value": "10"
},
"nodeType": "BinaryOperation",
"operator": "**",
"rightExpression": {
"argumentTypes": null,
"hexValue": "38",
"id": 664,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "90:1:3",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_8_by_1",
"typeString": "int_const 8"
},
"value": "8"
},
"src": "84:7:3",
"typeDescriptions": {
"typeIdentifier": "t_rational_100000000_by_1",
"typeString": "int_const 100000000"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 668,
"name": "_UserBetSize",
"nodeType": "VariableDeclaration",
"scope": 1126,
"src": "98:16:3",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 667,
"name": "int",
"nodeType": "ElementaryTypeName",
"src": "98:3:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 670,
"name": "_DecimalPayoutOdds",
"nodeType": "VariableDeclaration",
"scope": 1126,
"src": "120:22:3",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 669,
"name": "int",
"nodeType": "ElementaryTypeName",
"src": "120:3:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 672,
"name": "_DecimalWinOdds",
"nodeType": "VariableDeclaration",
"scope": 1126,
"src": "148:19:3",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 671,
"name": "int",
"nodeType": "ElementaryTypeName",
"src": "148:3:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 674,
"name": "_BankRoll",
"nodeType": "VariableDeclaration",
"scope": 1126,
"src": "173:13:3",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 673,
"name": "int",
"nodeType": "ElementaryTypeName",
"src": "173:3:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 676,
"name": "_FractionalKelly",
"nodeType": "VariableDeclaration",
"scope": 1126,
"src": "192:20:3",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 675,
"name": "int",
"nodeType": "ElementaryTypeName",
"src": "192:3:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 707,
"nodeType": "Block",
"src": "244:273:3",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 683,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 679,
"name": "_UserBetSize",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 668,
"src": "313:12:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 682,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "313030",
"id": 680,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "328:3:3",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100_by_1",
"typeString": "int_const 100"
},
"value": "100"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"id": 681,
"name": "_Multiplier",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 666,
"src": "334:11:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"src": "328:17:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"src": "313:32:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"id": 684,
"nodeType": "ExpressionStatement",
"src": "313:32:3"
},
{
"expression": {
"argumentTypes": null,
"id": 689,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 685,
"name": "_DecimalPayoutOdds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 670,
"src": "355:18:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 688,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3336",
"id": 686,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "376:2:3",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_36_by_1",
"typeString": "int_const 36"
},
"value": "36"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"id": 687,
"name": "_Multiplier",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 666,
"src": "381:11:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"src": "376:16:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"src": "355:37:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"id": 690,
"nodeType": "ExpressionStatement",
"src": "355:37:3"
},
{
"expression": {
"argumentTypes": null,
"id": 695,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 691,
"name": "_DecimalWinOdds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 672,
"src": "402:15:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 694,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3338",
"id": 692,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "420:2:3",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_38_by_1",
"typeString": "int_const 38"
},
"value": "38"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"id": 693,
"name": "_Multiplier",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 666,
"src": "425:11:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"src": "420:16:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"src": "402:34:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"id": 696,
"nodeType": "ExpressionStatement",
"src": "402:34:3"
},
{
"expression": {
"argumentTypes": null,
"id": 701,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 697,
"name": "_BankRoll",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 674,
"src": "446:9:3",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 700,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3130303030303030",
"id": 698,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "458:8:3",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10000000_by_1",
"typeString": "int_const 10000000"
},
"value": "10000000"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"id": 699,
"name": "_Multiplier",
"nodeType"