src/modules/reports/actions/submit-initial-report.js
import { REPORTING_REPORT_MARKETS } from "modules/routes/constants/views";
import makePath from "modules/routes/helpers/make-path";
import logError from "utils/log-error";
import { getPayoutNumerators } from "modules/reports/selectors/get-payout-numerators";
import { augur } from "services/augurjs";
export const submitInitialReport = ({
estimateGas,
marketId,
selectedOutcome,
invalid,
history,
returnPath = REPORTING_REPORT_MARKETS,
callback = logError
}) => (dispatch, getState) => {
const { loginAccount, marketsData } = getState();
const outcome = parseFloat(selectedOutcome);
if (!marketId || (isNaN(outcome) && !invalid)) return callback(null);
const market = marketsData[marketId];
if (!market) return callback("Market not found");
const payoutNumerators = getPayoutNumerators(
market,
selectedOutcome,
invalid
);
augur.api.Market.doInitialReport({
meta: loginAccount.meta,
tx: { to: marketId, estimateGas },
_invalid: invalid,
_payoutNumerators: payoutNumerators,
onSent: res => {
if (!estimateGas) {
history.push(makePath(returnPath));
}
},
onSuccess: gasCost => {
if (estimateGas) {
callback(null, gasCost);
} else {
callback(null);
}
},
onFailed: err => callback(err)
});
};