UNPKG

@cloudbet/market-helper

Version:

SDK to generate localized sport market information

40 lines 1.83 kB
import { BigNumber } from 'bignumber.js'; export var getSingleStakeLimit = function (liability, price) { return new BigNumber(liability).dividedBy(new BigNumber(price).minus(1)).toNumber(); }; export var getNormalizedRelevances = function (probabilities) { var totalRelevance = new BigNumber(probabilities.length); for (var _i = 0, probabilities_1 = probabilities; _i < probabilities_1.length; _i++) { var prob = probabilities_1[_i]; totalRelevance = totalRelevance.minus(prob); } return probabilities.map(function (p) { return new BigNumber(1).minus(p).dividedBy(totalRelevance).toNumber(); }); }; export var getParlayStakeLimit = function (legs) { var minSingleStakeLimit = undefined; var singleStakeLimits = new Array(legs.length); for (var i = 0; i < legs.length; i++) { var _a = legs[i], liability = _a.liability, price = _a.price; var stakeLimit = getSingleStakeLimit(liability, price); singleStakeLimits[i] = stakeLimit; if (minSingleStakeLimit === undefined || stakeLimit < minSingleStakeLimit) { minSingleStakeLimit = stakeLimit; } } var parlayStakeLimit = 0; var normalizedRelevances = getNormalizedRelevances(legs.map(function (l) { return l.probability; })); for (var i = 0; i < legs.length; i++) { var relevance = normalizedRelevances[i]; var singleLimit = singleStakeLimits[i]; var legLimit = new BigNumber(singleLimit) .multipliedBy(relevance) .toNumber(); // we know this wont be undefined at this point anymore // eslint-disable-next-line @typescript-eslint/no-non-null-assertion parlayStakeLimit += Math.min(legLimit, minSingleStakeLimit); } return parlayStakeLimit; }; //# sourceMappingURL=liability.js.map