* Parse a string into a number of base monetary units and * return validity. * @note Must return 0 if !valid. */
| 223 | * @note Must return 0 if !valid. |
| 224 | */ |
| 225 | CAmount parse(const QString &text, bool *valid_out=nullptr) const |
| 226 | { |
| 227 | CAmount val = 0; |
| 228 | bool valid = GUIUtil::parseAssetAmount(current_asset, text, currentUnit, &val); |
| 229 | if(valid) |
| 230 | { |
| 231 | // ELEMENTS: issued assets can have values > MAX_MONEY |
| 232 | if (val < 0 || (val > BitcoinUnits::maxMoney() && current_asset == Params().GetConsensus().pegged_asset)) { |
| 233 | valid = false; |
| 234 | } |
| 235 | } |
| 236 | if(valid_out) |
| 237 | *valid_out = valid; |
| 238 | return valid ? val : 0; |
| 239 | } |
| 240 | |
| 241 | protected: |
| 242 | bool event(QEvent *event) override |
no test coverage detected