value method
Implementation
@override
Future<double> value() async {
final pairProvider = config.pairProvider;
if (isValid && pairProvider != null) {
final pipPrecision = state.pipPrecision;
// FIXME: workaround,
// we can't properly set null values on the calculator state.
if (pipPrecision == null || pipPrecision == intMaxValue) {
var pairMetadata = await pairProvider.metadata(
'${state.baseCode}${state.counterCode}',
);
if (pairMetadata != null) {
patchState(
MatexBaseCoreState(pipPrecision: pairMetadata.pip.precision),
);
} else {
patchState(MatexBaseCoreState(
pipPrecision: MatexPairPipMetadata.defaultMetatada().precision,
));
}
}
return pipDelta(defaultState: state).value().toDouble();
}
return 0;
}