synnax 0.1.6

Cosmos-SDK multichain client
Documentation
#[cfg(test)]
mod bank_tests {
    use crate::cosmos::bank::DenomUnit;
    use crate::cosmos::Cosmos;
    use crate::lcd::Lcd;

    #[test]
    fn balances() {
        let lcd = Lcd::new("https://api-mainnet.blockchain.ki".to_string()).unwrap();
        let cosmos = Cosmos::new(&lcd);

        let balances = cosmos
            .bank
            .balances("ki1khdhz2ek2h2g8xqggl0p6gyyhkalwu8usr5tl8".to_owned())
            .unwrap();
        assert!(!balances.balances.is_empty());
    }

    #[test]
    fn balance_by_denom() {
        let lcd = Lcd::new("https://api-mainnet.blockchain.ki".to_string()).unwrap();
        let cosmos = Cosmos::new(&lcd);

        let balance = cosmos
            .bank
            .balance_by_denom(
                "ki1khdhz2ek2h2g8xqggl0p6gyyhkalwu8usr5tl8".to_owned(),
                "uxki".to_owned(),
            )
            .unwrap();
        assert_eq!(balance.balance.denom, "uxki");
    }

    #[test]
    fn spendable_balances() {
        let lcd = Lcd::new("https://api-mainnet.blockchain.ki".to_string()).unwrap();
        let cosmos = Cosmos::new(&lcd);

        let balances = cosmos
            .bank
            .spendable_balances("ki1khdhz2ek2h2g8xqggl0p6gyyhkalwu8usr5tl8".to_owned())
            .unwrap();
        assert!(!balances.balances.is_empty());
    }

    #[test]
    fn supply() {
        let lcd = Lcd::new("https://api-mainnet.blockchain.ki".to_string()).unwrap();
        let cosmos = Cosmos::new(&lcd);

        let supply = cosmos.bank.supply().unwrap();
        assert!(!supply.supply.is_empty());
    }

    #[test]
    fn supply_by_denom() {
        let lcd = Lcd::new("https://api-mainnet.blockchain.ki".to_string()).unwrap();
        let cosmos = Cosmos::new(&lcd);

        let supply = cosmos.bank.supply_by_denom("uxki".to_string()).unwrap();

        assert_eq!(supply.amount.denom, "uxki");
        assert!(supply.amount.amount > 1_000_000_000_000_000u128);
    }

    #[test]
    fn params() {
        let lcd = Lcd::new("https://api-mainnet.blockchain.ki".to_string()).unwrap();
        let cosmos = Cosmos::new(&lcd);

        let params = cosmos.bank.params().unwrap();
        assert!(params.params.default_send_enabled);
    }

    #[test]
    fn metadata_by_denom() {
        let lcd = Lcd::new("https://api-mainnet.blockchain.ki".to_string()).unwrap();
        let cosmos = Cosmos::new(&lcd);

        let metadata = cosmos
            .bank
            .denom_metadata_by_denom("uxki".to_string())
            .unwrap();

        assert_eq!(
            metadata.metadata.description,
            "The native staking token of the KiChain."
        );
        assert_eq!(metadata.metadata.base, "uxki");
        assert_eq!(metadata.metadata.name, "");
        assert_eq!(metadata.metadata.display, "xki");
        assert_eq!(metadata.metadata.symbol, "");
        assert_eq!(metadata.metadata.denom_units.len(), 3);
        assert_eq!(
            metadata.metadata.denom_units[0],
            DenomUnit {
                denom: "uxki".to_string(),
                exponent: 0,
                aliases: vec!["microxki".to_string()]
            }
        );
        assert_eq!(
            metadata.metadata.denom_units[1],
            DenomUnit {
                denom: "mxki".to_string(),
                exponent: 3,
                aliases: vec!["millixki".to_string()]
            }
        );
        assert_eq!(
            metadata.metadata.denom_units[2],
            DenomUnit {
                denom: "xki".to_string(),
                exponent: 6,
                aliases: vec![]
            }
        );
    }

    #[test]
    fn metadata() {
        let lcd = Lcd::new("https://api-mainnet.blockchain.ki".to_string()).unwrap();
        let cosmos = Cosmos::new(&lcd);

        let metadata = cosmos.bank.denom_metadata().unwrap();

        assert_eq!(metadata.metadatas.len(), 1);
        assert_eq!(
            metadata.metadatas[0].description,
            "The native staking token of the KiChain."
        );
        assert_eq!(metadata.metadatas[0].base, "uxki");
        assert_eq!(metadata.metadatas[0].name, "");
        assert_eq!(metadata.metadatas[0].display, "xki");
        assert_eq!(metadata.metadatas[0].symbol, "");
        assert_eq!(metadata.metadatas[0].denom_units.len(), 3);
        assert_eq!(
            metadata.metadatas[0].denom_units[0],
            DenomUnit {
                denom: "uxki".to_string(),
                exponent: 0,
                aliases: vec!["microxki".to_string()]
            }
        );
        assert_eq!(
            metadata.metadatas[0].denom_units[1],
            DenomUnit {
                denom: "mxki".to_string(),
                exponent: 3,
                aliases: vec!["millixki".to_string()]
            }
        );
        assert_eq!(
            metadata.metadatas[0].denom_units[2],
            DenomUnit {
                denom: "xki".to_string(),
                exponent: 6,
                aliases: vec![]
            }
        );
    }
}