Skip to content

Commit d0bbabf

Browse files
committed
added total amount of txs to transfer history
1 parent a91bfc3 commit d0bbabf

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

src/contract.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,9 @@ pub fn query_transactions<S: Storage, A: Api, Q: Querier>(
261261
page_size: u32,
262262
) -> StdResult<Binary> {
263263
let address = deps.api.canonical_address(account).unwrap();
264-
let txs = get_transfers(&deps.api, &deps.storage, &address, page, page_size)?;
264+
let (txs, total) = get_transfers(&deps.api, &deps.storage, &address, page, page_size)?;
265265

266-
let result = QueryAnswer::TransferHistory { txs };
266+
let result = QueryAnswer::TransferHistory { txs, total };
267267
to_binary(&result)
268268
}
269269

@@ -2707,7 +2707,7 @@ mod tests {
27072707
// let a: QueryAnswer = from_binary(&query_result.unwrap()).unwrap();
27082708
// println!("{:?}", a);
27092709
let transfers = match from_binary(&query_result.unwrap()).unwrap() {
2710-
QueryAnswer::TransferHistory { txs } => txs,
2710+
QueryAnswer::TransferHistory { txs, total } => txs,
27112711
_ => panic!("Unexpected"),
27122712
};
27132713
assert!(transfers.is_empty());
@@ -2720,7 +2720,7 @@ mod tests {
27202720
};
27212721
let query_result = query(&deps, query_msg);
27222722
let transfers = match from_binary(&query_result.unwrap()).unwrap() {
2723-
QueryAnswer::TransferHistory { txs } => txs,
2723+
QueryAnswer::TransferHistory { txs, total } => txs,
27242724
_ => panic!("Unexpected"),
27252725
};
27262726
assert_eq!(transfers.len(), 3);
@@ -2733,7 +2733,7 @@ mod tests {
27332733
};
27342734
let query_result = query(&deps, query_msg);
27352735
let transfers = match from_binary(&query_result.unwrap()).unwrap() {
2736-
QueryAnswer::TransferHistory { txs } => txs,
2736+
QueryAnswer::TransferHistory { txs, total } => txs,
27372737
_ => panic!("Unexpected"),
27382738
};
27392739
assert_eq!(transfers.len(), 2);

src/msg.rs

+1
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@ pub enum QueryAnswer {
288288
},
289289
TransferHistory {
290290
txs: Vec<Tx>,
291+
total: u64,
291292
},
292293

293294
ViewingKeyError {

src/state.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -130,15 +130,15 @@ pub fn get_transfers<A: Api, S: ReadonlyStorage>(
130130
for_address: &CanonicalAddr,
131131
page: u32,
132132
page_size: u32,
133-
) -> StdResult<Vec<Tx>> {
133+
) -> StdResult<(Vec<Tx>, u64)> {
134134
let store = ReadonlyPrefixedStorage::multilevel(&[PREFIX_TXS, for_address.as_slice()], storage);
135135

136136
// Try to access the storage of txs for the account.
137137
// If it doesn't exist yet, return an empty list of transfers.
138138
let store = if let Some(result) = AppendStore::<StoredTx, _>::attach(&store) {
139139
result?
140140
} else {
141-
return Ok(vec![]);
141+
return Ok((vec![], 0));
142142
};
143143

144144
// Take `page_size` txs starting from the latest tx, potentially skipping `page * page_size`
@@ -152,7 +152,7 @@ pub fn get_transfers<A: Api, S: ReadonlyStorage>(
152152
let txs: StdResult<Vec<Tx>> = tx_iter
153153
.map(|tx| tx.map(|tx| tx.into_humanized(api)).and_then(|x| x))
154154
.collect();
155-
txs
155+
txs.map(|txs| (txs, store.len() as u64))
156156
}
157157

158158
// Config

0 commit comments

Comments
 (0)