synnax 0.2.0

Cosmos-SDK multichain client
Documentation
#[cfg(test)]
mod tx_tests {
    use crate::cosmos::tx::Fee;
    use crate::cosmos::types::Coin;
    use crate::cosmos::Cosmos;
    use crate::lcd::Lcd;

    #[test]
    fn tx() {
        let lcd =
            Lcd::new("https://api-kichain-ia.cosmosia.notional.ventures/".to_string()).unwrap();
        let cosmos = Cosmos::new(&lcd);

        let tx = cosmos
            .tx
            .tx("7C823C57BEB5EF80DA0DA57A8859EEF94AC6741BBA44159AC142193995416B0C".to_string())
            .unwrap();

        assert_eq!(
            tx.tx.body.memo,
            "[COSMON] fight with deckID 6319 // Training"
        );
        assert_eq!(tx.tx.body.timeout_height, 0);
        assert_eq!(
            tx.tx.auth_info.fee,
            Fee {
                amount: vec![Coin {
                    denom: "uxki".to_string(),
                    amount: 187500
                }],
                gas_limit: 7500000,
                payer: "".to_string(),
                granter: "".to_string()
            }
        );
        assert_eq!(
            tx.tx_response.data,
            "0A260A242F636F736D7761736D2E7761736D2E76312E4D736745786563757465436F6E7472616374"
        );
        assert_eq!(tx.tx_response.info, "");
        assert_eq!(tx.tx_response.height, 13141839);
        assert_eq!(tx.tx_response.code, 0);
        assert_eq!(tx.tx_response.codespace, "");
        assert_eq!(tx.tx_response.gas_used, 3962548);
        assert_eq!(tx.tx_response.gas_wanted, 7500000);
        assert_eq!(tx.tx_response.raw_log, "[{\"events\":[{\"type\":\"execute\",\"attributes\":[{\"key\":\"_contract_address\",\"value\":\"ki1tma28exp38q92c69r8uujhphxy95xa4awq2cudqqg3nhzkhnrg5sk7vjmy\"},{\"key\":\"_contract_address\",\"value\":\"ki1d5mktn4908j4ghkmvqyphkvnnes2vpn7ul3ws68kdvwj7w07p0xql9ypt4\"},{\"key\":\"_contract_address\",\"value\":\"ki1pu52z9aumq56s5gdg2ve2ahmr4fslnt27qztld83ng07s0ggvk6ste37qj\"},{\"key\":\"_contract_address\",\"value\":\"ki1enae36xr05z5rtfjjyw737jr5x4ej65asnw8le4wumsl45m4m0lqs6q0tx\"},{\"key\":\"_contract_address\",\"value\":\"ki1d5mktn4908j4ghkmvqyphkvnnes2vpn7ul3ws68kdvwj7w07p0xql9ypt4\"},{\"key\":\"_contract_address\",\"value\":\"ki1enae36xr05z5rtfjjyw737jr5x4ej65asnw8le4wumsl45m4m0lqs6q0tx\"},{\"key\":\"_contract_address\",\"value\":\"ki1d5mktn4908j4ghkmvqyphkvnnes2vpn7ul3ws68kdvwj7w07p0xql9ypt4\"},{\"key\":\"_contract_address\",\"value\":\"ki1d5mktn4908j4ghkmvqyphkvnnes2vpn7ul3ws68kdvwj7w07p0xql9ypt4\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmwasm.wasm.v1.MsgExecuteContract\"},{\"key\":\"module\",\"value\":\"wasm\"},{\"key\":\"sender\",\"value\":\"ki1zn0pvk8v0xwgljj4ejnl0zkdndr584ly24s4ap\"}]},{\"type\":\"reply\",\"attributes\":[{\"key\":\"_contract_address\",\"value\":\"ki1tma28exp38q92c69r8uujhphxy95xa4awq2cudqqg3nhzkhnrg5sk7vjmy\"},{\"key\":\"_contract_address\",\"value\":\"ki1tma28exp38q92c69r8uujhphxy95xa4awq2cudqqg3nhzkhnrg5sk7vjmy\"}]},{\"type\":\"wasm\",\"attributes\":[{\"key\":\"_contract_address\",\"value\":\"ki1d5mktn4908j4ghkmvqyphkvnnes2vpn7ul3ws68kdvwj7w07p0xql9ypt4\"},{\"key\":\"arena_name\",\"value\":\"Training\"},{\"key\":\"method\",\"value\":\"get_opponent_for_deck\"},{\"key\":\"my_address\",\"value\":\"ki1zn0pvk8v0xwgljj4ejnl0zkdndr584ly24s4ap\"},{\"key\":\"my_deck_id\",\"value\":\"6319\"},{\"key\":\"my_deck_score\",\"value\":\"262\"},{\"key\":\"opponent_address\",\"value\":\"ki1dz5dpngwezyydlefdurrsqdyadp8kg23cggqng\"},{\"key\":\"opponent_deck_id\",\"value\":\"8018\"},{\"key\":\"opponent_deck_score\",\"value\":\"263\"},{\"key\":\"_contract_address\",\"value\":\"ki1tma28exp38q92c69r8uujhphxy95xa4awq2cudqqg3nhzkhnrg5sk7vjmy\"},{\"key\":\"me_address\",\"value\":\"ki1zn0pvk8v0xwgljj4ejnl0zkdndr584ly24s4ap\"},{\"key\":\"opponent_nfts\",\"value\":\"21299,21301,21297\"},{\"key\":\"winner\",\"value\":\"ki1dz5dpngwezyydlefdurrsqdyadp8kg23cggqng/9\"},{\"key\":\"opponent\",\"value\":\"ki1dz5dpngwezyydlefdurrsqdyadp8kg23cggqng\"},{\"key\":\"action\",\"value\":\"{\\\"results\\\":[{\\\"turn\\\":1,\\\"miss\\\":false,\\\"atk_id\\\":\\\"10482\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":14,\\\"action_point\\\":11},{\\\"turn\\\":1,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17712\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":13,\\\"action_point\\\":10},{\\\"turn\\\":1,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":12,\\\"action_point\\\":11},{\\\"turn\\\":1,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21299\\\",\\\"damage\\\":4,\\\"critical\\\":true,\\\"def_id\\\":\\\"10482\\\",\\\"def_health\\\":12,\\\"action_point\\\":11},{\\\"turn\\\":1,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":4,\\\"critical\\\":true,\\\"def_id\\\":\\\"10482\\\",\\\"def_health\\\":8,\\\"action_point\\\":11},{\\\"turn\\\":1,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21297\\\",\\\"damage\\\":2,\\\"critical\\\":false,\\\"def_id\\\":\\\"10482\\\",\\\"def_health\\\":6,\\\"action_point\\\":10},{\\\"turn\\\":2,\\\"miss\\\":false,\\\"atk_id\\\":\\\"10482\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":11,\\\"action_point\\\":10},{\\\"turn\\\":2,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17712\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":10,\\\"action_point\\\":9},{\\\"turn\\\":2,\\\"miss\\\":true,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":0,\\\"action_point\\\":10},{\\\"turn\\\":2,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21299\\\",\\\"damage\\\":2,\\\"critical\\\":false,\\\"def_id\\\":\\\"10482\\\",\\\"def_health\\\":4,\\\"action_point\\\":10},{\\\"turn\\\":2,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"10482\\\",\\\"def_health\\\":3,\\\"action_point\\\":10},{\\\"turn\\\":2,\\\"miss\\\":true,\\\"atk_id\\\":\\\"21297\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"10482\\\",\\\"def_health\\\":0,\\\"action_point\\\":9},{\\\"turn\\\":3,\\\"miss\\\":false,\\\"atk_id\\\":\\\"10482\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":9,\\\"action_point\\\":9},{\\\"turn\\\":3,\\\"miss\\\":true,\\\"atk_id\\\":\\\"17712\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":0,\\\"action_point\\\":8},{\\\"turn\\\":3,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":8,\\\"action_point\\\":9},{\\\"turn\\\":3,\\\"miss\\\":true,\\\"atk_id\\\":\\\"21299\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"10482\\\",\\\"def_health\\\":0,\\\"action_point\\\":9},{\\\"turn\\\":3,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"10482\\\",\\\"def_health\\\":2,\\\"action_point\\\":9},{\\\"turn\\\":3,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21297\\\",\\\"damage\\\":2,\\\"critical\\\":false,\\\"def_id\\\":\\\"10482\\\",\\\"def_health\\\":0,\\\"action_point\\\":8},{\\\"turn\\\":4,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17712\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":7,\\\"action_point\\\":7},{\\\"turn\\\":4,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":6,\\\"action_point\\\":8},{\\\"turn\\\":4,\\\"miss\\\":true,\\\"atk_id\\\":\\\"21299\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":0,\\\"action_point\\\":8},{\\\"turn\\\":4,\\\"miss\\\":true,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":0,\\\"action_point\\\":8},{\\\"turn\\\":4,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21297\\\",\\\"damage\\\":2,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":14,\\\"action_point\\\":7},{\\\"turn\\\":5,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17712\\\",\\\"damage\\\":3,\\\"critical\\\":true,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":3,\\\"action_point\\\":6},{\\\"turn\\\":5,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":2,\\\"action_point\\\":7},{\\\"turn\\\":5,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21299\\\",\\\"damage\\\":2,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":12,\\\"action_point\\\":7},{\\\"turn\\\":5,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":11,\\\"action_point\\\":7},{\\\"turn\\\":5,\\\"miss\\\":true,\\\"atk_id\\\":\\\"21297\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":0,\\\"action_point\\\":6},{\\\"turn\\\":6,\\\"miss\\\":true,\\\"atk_id\\\":\\\"17712\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":0,\\\"action_point\\\":5},{\\\"turn\\\":6,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":3,\\\"critical\\\":true,\\\"def_id\\\":\\\"21299\\\",\\\"def_health\\\":0,\\\"action_point\\\":6},{\\\"turn\\\":6,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":10,\\\"action_point\\\":6},{\\\"turn\\\":6,\\\"miss\\\":true,\\\"atk_id\\\":\\\"21297\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":0,\\\"action_point\\\":5},{\\\"turn\\\":7,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17712\\\",\\\"damage\\\":4,\\\"critical\\\":true,\\\"def_id\\\":\\\"21301\\\",\\\"def_health\\\":14,\\\"action_point\\\":4},{\\\"turn\\\":7,\\\"miss\\\":true,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"21301\\\",\\\"def_health\\\":0,\\\"action_point\\\":5},{\\\"turn\\\":7,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":4,\\\"critical\\\":true,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":6,\\\"action_point\\\":5},{\\\"turn\\\":7,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21297\\\",\\\"damage\\\":4,\\\"critical\\\":true,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":2,\\\"action_point\\\":4},{\\\"turn\\\":8,\\\"miss\\\":true,\\\"atk_id\\\":\\\"17712\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"21301\\\",\\\"def_health\\\":0,\\\"action_point\\\":3},{\\\"turn\\\":8,\\\"miss\\\":true,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"21301\\\",\\\"def_health\\\":0,\\\"action_point\\\":4},{\\\"turn\\\":8,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":1,\\\"action_point\\\":4},{\\\"turn\\\":8,\\\"miss\\\":true,\\\"atk_id\\\":\\\"21297\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":0,\\\"action_point\\\":3},{\\\"turn\\\":9,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17712\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21301\\\",\\\"def_health\\\":13,\\\"action_point\\\":2},{\\\"turn\\\":9,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21301\\\",\\\"def_health\\\":12,\\\"action_point\\\":3},{\\\"turn\\\":9,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"17712\\\",\\\"def_health\\\":0,\\\"action_point\\\":3},{\\\"turn\\\":9,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21297\\\",\\\"damage\\\":4,\\\"critical\\\":true,\\\"def_id\\\":\\\"17716\\\",\\\"def_health\\\":12,\\\"action_point\\\":2},{\\\"turn\\\":10,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21301\\\",\\\"def_health\\\":11,\\\"action_point\\\":2},{\\\"turn\\\":10,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"17716\\\",\\\"def_health\\\":11,\\\"action_point\\\":2},{\\\"turn\\\":10,\\\"miss\\\":false,\\\"atk_id\\\":\\\"21297\\\",\\\"damage\\\":2,\\\"critical\\\":false,\\\"def_id\\\":\\\"17716\\\",\\\"def_health\\\":9,\\\"action_point\\\":1},{\\\"turn\\\":11,\\\"miss\\\":false,\\\"atk_id\\\":\\\"17716\\\",\\\"damage\\\":1,\\\"critical\\\":false,\\\"def_id\\\":\\\"21301\\\",\\\"def_health\\\":10,\\\"action_point\\\":1},{\\\"turn\\\":11,\\\"miss\\\":true,\\\"atk_id\\\":\\\"21301\\\",\\\"damage\\\":0,\\\"critical\\\":false,\\\"def_id\\\":\\\"17716\\\",\\\"def_health\\\":0,\\\"action_point\\\":1}]}\"},{\"key\":\"cosmons_bonus\",\"value\":\"[{\\\"nft_id\\\":\\\"10482\\\",\\\"char_id\\\":0,\\\"health\\\":16,\\\"attack\\\":16,\\\"defense\\\":14,\\\"intelligence\\\":14,\\\"speed\\\":16,\\\"chance\\\":16,\\\"experience_point\\\":417,\\\"action_point\\\":11,\\\"level\\\":10,\\\"geographical\\\":\\\"GeoAsia\\\",\\\"time_period\\\":\\\"TimeMiddle\\\",\\\"personality\\\":\\\"Tactical\\\",\\\"nationality\\\":\\\"\\\",\\\"total_health\\\":16},{\\\"nft_id\\\":\\\"17712\\\",\\\"char_id\\\":0,\\\"health\\\":16,\\\"attack\\\":16,\\\"defense\\\":14,\\\"intelligence\\\":14,\\\"speed\\\":16,\\\"chance\\\":16,\\\"experience_point\\\":417,\\\"action_point\\\":10,\\\"level\\\":10,\\\"geographical\\\":\\\"GeoEuropa\\\",\\\"time_period\\\":\\\"TimeAncient\\\",\\\"personality\\\":\\\"Tactical\\\",\\\"nationality\\\":\\\"\\\",\\\"total_health\\\":16},{\\\"nft_id\\\":\\\"17716\\\",\\\"char_id\\\":0,\\\"health\\\":16,\\\"attack\\\":14,\\\"defense\\\":14,\\\"intelligence\\\":13,\\\"speed\\\":16,\\\"chance\\\":15,\\\"experience_point\\\":417,\\\"action_point\\\":11,\\\"level\\\":10,\\\"geographical\\\":\\\"GeoAfrica\\\",\\\"time_period\\\":\\\"TimeMiddle\\\",\\\"personality\\\":\\\"Erudite\\\",\\\"nationality\\\":\\\"\\\",\\\"total_health\\\":16},{\\\"nft_id\\\":\\\"21299\\\",\\\"char_id\\\":0,\\\"health\\\":15,\\\"attack\\\":16,\\\"defense\\\":15,\\\"intelligence\\\":15,\\\"speed\\\":14,\\\"chance\\\":15,\\\"experience_point\\\":441,\\\"action_point\\\":11,\\\"level\\\":10,\\\"geographical\\\":\\\"GeoEuropa\\\",\\\"time_period\\\":\\\"TimeAncient\\\",\\\"personality\\\":\\\"Financial\\\",\\\"nationality\\\":\\\"\\\",\\\"total_health\\\":13},{\\\"nft_id\\\":\\\"21301\\\",\\\"char_id\\\":0,\\\"health\\\":18,\\\"attack\\\":14,\\\"defense\\\":17,\\\"intelligence\\\":16,\\\"speed\\\":15,\\\"chance\\\":16,\\\"experience_point\\\":441,\\\"action_point\\\":11,\\\"level\\\":10,\\\"geographical\\\":\\\"GeoEuropa\\\",\\\"time_period\\\":\\\"TimeAncient\\\",\\\"personality\\\":\\\"Aggressive\\\",\\\"nationality\\\":\\\"\\\",\\\"total_health\\\":15},{\\\"nft_id\\\":\\\"21297\\\",\\\"char_id\\\":0,\\\"health\\\":15,\\\"attack\\\":16,\\\"defense\\\":16,\\\"intelligence\\\":17,\\\"speed\\\":14,\\\"chance\\\":16,\\\"experience_point\\\":441,\\\"action_point\\\":10,\\\"level\\\":10,\\\"geographical\\\":\\\"GeoEuropa\\\",\\\"time_period\\\":\\\"TimeMiddle\\\",\\\"personality\\\":\\\"Dynamic\\\",\\\"nationality\\\":\\\"\\\",\\\"total_health\\\":13}]\"},{\"key\":\"method\",\"value\":\"fight\"},{\"key\":\"my_deck_score\",\"value\":\"262\"},{\"key\":\"opponent_deck_score\",\"value\":\"263\"},{\"key\":\"bot_power\",\"value\":\"263\"},{\"key\":\"_contract_address\",\"value\":\"ki1pu52z9aumq56s5gdg2ve2ahmr4fslnt27qztld83ng07s0ggvk6ste37qj\"},{\"key\":\"address_id_registry_reply\",\"value\":\"ki1zn0pvk8v0xwgljj4ejnl0zkdndr584ly24s4ap\"},{\"key\":\"deck_id_registry_reply\",\"value\":\"6319\"},{\"key\":\"level_changed\",\"value\":\"true\"},{\"key\":\"method\",\"value\":\"fight_done\"},{\"key\":\"new_power\",\"value\":\"262\"},{\"key\":\"old_power\",\"value\":\"262\"},{\"key\":\"_contract_address\",\"value\":\"ki1tma28exp38q92c69r8uujhphxy95xa4awq2cudqqg3nhzkhnrg5sk7vjmy\"},{\"key\":\"method\",\"value\":\"handle_experience_reply\"},{\"key\":\"level_changed\",\"value\":\"true\"},{\"key\":\"deck ID\",\"value\":\"6319\"},{\"key\":\"DeckId\",\"value\":\"6319\"},{\"key\":\"_contract_address\",\"value\":\"ki1enae36xr05z5rtfjjyw737jr5x4ej65asnw8le4wumsl45m4m0lqs6q0tx\"},{\"key\":\"method\",\"value\":\"set_deck_contract\"},{\"key\":\"power\",\"value\":\"262\"},{\"key\":\"DeckId\",\"value\":\"6319\"},{\"key\":\"_contract_address\",\"value\":\"ki1d5mktn4908j4ghkmvqyphkvnnes2vpn7ul3ws68kdvwj7w07p0xql9ypt4\"},{\"key\":\"method\",\"value\":\"set_deck_contract\"},{\"key\":\"power\",\"value\":\"262\"},{\"key\":\"DeckId\",\"value\":\"6319\"},{\"key\":\"_contract_address\",\"value\":\"ki1enae36xr05z5rtfjjyw737jr5x4ej65asnw8le4wumsl45m4m0lqs6q0tx\"},{\"key\":\"method\",\"value\":\"register_deck\"},{\"key\":\"power\",\"value\":\"262\"},{\"key\":\"DeckId\",\"value\":\"6319\"},{\"key\":\"_contract_address\",\"value\":\"ki1d5mktn4908j4ghkmvqyphkvnnes2vpn7ul3ws68kdvwj7w07p0xql9ypt4\"},{\"key\":\"method\",\"value\":\"register_deck\"},{\"key\":\"power\",\"value\":\"262\"},{\"key\":\"_contract_address\",\"value\":\"ki1d5mktn4908j4ghkmvqyphkvnnes2vpn7ul3ws68kdvwj7w07p0xql9ypt4\"},{\"key\":\"method\",\"value\":\"increase_score\"},{\"key\":\"score\",\"value\":\"training_mode\"}]}]}]");
        assert_eq!(tx.tx_response.timestamp, "2023-01-02T14:40:13Z");
        assert_eq!(
            tx.tx_response.txhash,
            "7C823C57BEB5EF80DA0DA57A8859EEF94AC6741BBA44159AC142193995416B0C"
        );
        assert_eq!(tx.tx_response.events.len(), 28);
        assert_eq!(tx.tx_response.events[4].event_type, "tx");
        assert_eq!(tx.tx_response.events[4].attributes.len(), 1);
        assert_eq!(tx.tx_response.events[4].attributes[0].key, "ZmVl");
        assert_eq!(
            tx.tx_response.events[4].attributes[0].value,
            "MTg3NTAwdXhraQ=="
        );
        assert!(tx.tx_response.events[4].attributes[0].index);
        assert_eq!(tx.tx_response.logs.len(), 1);
        assert_eq!(tx.tx_response.logs[0].log, "");
        assert_eq!(tx.tx_response.logs[0].msg_index, 0);
        assert_eq!(tx.tx_response.logs[0].events.len(), 4);
        assert_eq!(tx.tx_response.logs[0].events[0].event_type, "execute");
        assert_eq!(tx.tx_response.logs[0].events[0].attributes.len(), 8);
        assert_eq!(
            tx.tx_response.logs[0].events[0].attributes[4].key,
            "_contract_address"
        );
        assert_eq!(
            tx.tx_response.logs[0].events[0].attributes[4].value,
            "ki1d5mktn4908j4ghkmvqyphkvnnes2vpn7ul3ws68kdvwj7w07p0xql9ypt4"
        );
    }

    #[test]
    fn get_block_with_txs() {
        let lcd =
            Lcd::new("https://api-kichain-ia.cosmosia.notional.ventures/".to_string()).unwrap();
        let cosmos = Cosmos::new(&lcd);

        let tx = cosmos.tx.get_block_with_txs(13244254).unwrap();

        assert_eq!(tx.txs.len(), 1);
        assert_eq!(tx.txs[0].body.memo, "yolo");
        assert_eq!(
            tx.block_id.hash,
            "FqaNMLmPnL0CqGTAQpxnnXMJKDONHu0Q3C4aptITqrY="
        );
        assert_eq!(tx.block_id.part_set_header.total, 1);
        assert_eq!(
            tx.block_id.part_set_header.hash,
            "fNI8Jz6PD0v7CBArmMJJLOZXvjItWzzvnZE0P4DOuFc="
        )
    }
}