import { StargateClient } from "@cosmjs/stargate"; import { assert } from "@cosmjs/utils"; import { NextRouter, withRouter } from "next/router"; import { useEffect, useState } from "react"; import { useAppContext } from "../../context/AppContext"; import { exampleAddress } from "../../lib/displayHelpers"; import { getMultisigAccount } from "../../lib/multisigHelpers"; import Button from "../inputs/Button"; import Input from "../inputs/Input"; import StackableContainer from "../layout/StackableContainer"; interface Props { router: NextRouter; } const FindMultisigForm = (props: Props) => { const { state } = useAppContext(); const [address, setAddress] = useState(""); const [multisigError, setMultisigError] = useState(""); const handleSearch = () => { props.router.push(`/multi/${address}`); }; useEffect(() => { (async function () { if (!address) { setMultisigError(""); return; } try { assert(state.chain.nodeAddress, "Node address missing"); const client = await StargateClient.connect(state.chain.nodeAddress); assert(state.chain.addressPrefix, "addressPrefix missing"); await getMultisigAccount(address, state.chain.addressPrefix, client); setMultisigError(""); } catch (error) { if (error instanceof Error) { setMultisigError(error.message); } else { setMultisigError("Multisig error"); } console.error("Multisig error:", error); } })(); }, [address, state.chain.addressPrefix, state.chain.nodeAddress]); assert(state.chain.addressPrefix, "addressPrefix missing"); return (

Already have a multisig address? Enter it below. If it’s a valid address, you will be able to view its transactions and create new ones.

) => setAddress(e.target.value)} value={address} label="Multisig Address" name="address" placeholder={`E.g. ${exampleAddress(0, state.chain.addressPrefix)}`} error={multisigError} />