|
1 | 1 | use crate::primitives::transaction::OutPoint;
|
2 |
| -use crate::utils::{add_btreemap, format_for_display}; |
| 2 | +use crate::utils::{add_btreemap, format_for_display, is_valid_amount}; |
3 | 3 | use serde::{Deserialize, Serialize};
|
4 | 4 | use std::{collections::BTreeMap, fmt, iter, mem::size_of, ops};
|
| 5 | +use tracing::debug; |
5 | 6 |
|
6 | 7 | /// A structure representing the amount of tokens in an instance
|
7 | 8 | #[derive(Deserialize, Serialize, Default, Debug, Copy, Clone, Eq, PartialEq, PartialOrd, Ord)]
|
@@ -243,6 +244,7 @@ impl Asset {
|
243 | 244 | pub fn get_excess(&self, rhs: &Asset) -> Option<Asset> {
|
244 | 245 | match (&self, &rhs) {
|
245 | 246 | (Asset::Token(lhs_tokens), Asset::Token(rhs_tokens)) => {
|
| 247 | + debug!("LHS tokens: {:?}, RHS tokens: {:?}", lhs_tokens, rhs_tokens); |
246 | 248 | if lhs_tokens > rhs_tokens {
|
247 | 249 | Some(Asset::Token(*lhs_tokens - *rhs_tokens))
|
248 | 250 | } else {
|
@@ -370,7 +372,14 @@ impl AssetValues {
|
370 | 372 | /// Add the `rhs` parameter to `self`
|
371 | 373 | pub fn update_add(&mut self, rhs: &Asset) {
|
372 | 374 | match rhs {
|
373 |
| - Asset::Token(tokens) => self.tokens += *tokens, |
| 375 | + Asset::Token(tokens) => { |
| 376 | + let add = self.tokens + *tokens; |
| 377 | + |
| 378 | + match is_valid_amount(&add) { |
| 379 | + true => self.tokens += *tokens, |
| 380 | + false => self.tokens += TokenAmount::default(), |
| 381 | + } |
| 382 | + }, |
374 | 383 | Asset::Item(items) => {
|
375 | 384 | if let Some(genesis_hash) = &items.genesis_hash {
|
376 | 385 | self.items
|
|
0 commit comments