8 releases (stable)

new 2.6.0 Nov 7, 2024
2.5.0 Oct 31, 2024
2.4.2 Jul 22, 2024
2.3.0 Oct 18, 2023
0.1.0 Jul 3, 2023

#570 in Magic Beans

Download history 1420/week @ 2024-07-18 408/week @ 2024-07-25 661/week @ 2024-08-01 742/week @ 2024-08-08 419/week @ 2024-08-15 66/week @ 2024-08-22 80/week @ 2024-08-29 197/week @ 2024-09-05 299/week @ 2024-09-12 197/week @ 2024-09-19 126/week @ 2024-09-26 81/week @ 2024-10-03 283/week @ 2024-10-10 393/week @ 2024-10-17 118/week @ 2024-10-24 719/week @ 2024-10-31

1,525 downloads per month
Used in 13 crates (5 directly)

BSD-3-Clause

21KB
437 lines

CosmWasm Map Pagination

This package provides generic convienence methods for paginating keys and values in a CosmWasm Map or SnapshotMap. If you use these methods to paginate the maps in your contract you may make larry0x happy.

Example

Given a map like:

use cw_storage_plus::Map;

pub const ITEMS: Map<String, String> = Map::new("items");

You can use this package to write a query to list it's contents like:

use cosmwasm_std::{Deps, Binary, to_json_binary, StdResult};
use cw_storage_plus::Map;
use cw_paginate_storage::paginate_map;                         

pub const ITEMS: Map<String, String> = Map::new("items");

pub fn query_list_items(
    deps: Deps,
    start_after: Option<String>,
    limit: Option<u32>,
) -> StdResult<Binary> {
    to_json_binary(&paginate_map(
        deps,
        &ITEMS,
        start_after,
        limit,
        cosmwasm_std::Order::Descending,
    )?)
}

Dependencies

~5–6.5MB
~143K SLoC