From 47254e7797f735447260e2142834998bf1c4e30e Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 14 Jan 2022 16:42:26 +0100 Subject: [PATCH 1/2] Show participants of a multisig --- pages/multi/[address]/index.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pages/multi/[address]/index.js b/pages/multi/[address]/index.js index b87f9b8..0db3d06 100644 --- a/pages/multi/[address]/index.js +++ b/pages/multi/[address]/index.js @@ -1,4 +1,5 @@ import React, { useState } from "react"; +import { pubkeyToAddress } from "@cosmjs/amino"; import { StargateClient } from "@cosmjs/stargate"; import { useRouter } from "next/router"; @@ -27,6 +28,16 @@ export async function getServerSideProps(context) { } } +function participantPubkeysFromMultisig(multisigPubkey) { + return multisigPubkey.value.pubkeys; +} + +function participantAddressesFromMultisig(multisigPubkey, addressPrefix) { + return participantPubkeysFromMultisig(multisigPubkey).map((p) => + pubkeyToAddress(p, addressPrefix), + ); +} + const multipage = (props) => { const [showTxForm, setShowTxForm] = useState(false); const router = useRouter(); @@ -40,6 +51,20 @@ const multipage = (props) => { + {props.accountOnChain?.pubkey && ( + +

Participants

+
    + {participantAddressesFromMultisig( + props.accountOnChain?.pubkey, + process.env.NEXT_PUBLIC_ADDRESS_PREFIX, + ).map((participantAddress) => ( +
  • {participantAddress}
  • + ))} +
+
Threshold: {props.accountOnChain?.pubkey.value.threshold}
+
+ )} {props.error && (
From 96478f926c7afc8dafd615b173fdb3e214bb652e Mon Sep 17 00:00:00 2001 From: samepant Date: Sat, 15 Jan 2022 22:21:54 -0500 Subject: [PATCH 2/2] revamps member styling --- components/dataViews/CopyAndPaste.js | 4 +- components/dataViews/HashView.js | 2 + components/dataViews/MultisigMembers.js | 80 ++++++++++--------------- pages/multi/[address]/index.js | 20 +++---- 4 files changed, 43 insertions(+), 63 deletions(-) diff --git a/components/dataViews/CopyAndPaste.js b/components/dataViews/CopyAndPaste.js index 69ad012..7d83bca 100644 --- a/components/dataViews/CopyAndPaste.js +++ b/components/dataViews/CopyAndPaste.js @@ -9,8 +9,7 @@ const CopyAndPaste = (props) => (
diff --git a/components/dataViews/MultisigMembers.js b/components/dataViews/MultisigMembers.js index 38df6a6..5947b38 100644 --- a/components/dataViews/MultisigMembers.js +++ b/components/dataViews/MultisigMembers.js @@ -1,70 +1,54 @@ import React from "react"; +import HashView from "./HashView"; import StackableContainer from "../layout/StackableContainer"; -import { abbreviateLongString } from "../../lib/displayHelpers"; -const dummyMembers = [ - { - nickname: "Tolla", - pubkey: "AqsujWsohxvLS8B6ANf54D9qtIhAtQ2ISptBmXGUZVIN", - address: "cosmos1j8z4cfgpza4qa33pl02y84n0mdm8n7xzqdwlse", - }, - { - nickname: "Yamman", - pubkey: "AqsujWsohxvLS8B6ANf54D9qtIhAtQ2ISptBmXGUZVIN", - address: "cosmos145mr4l98w2x96utkcayvtqaag79u7mpyane7q7", - }, - { - nickname: "Wallace", - pubkey: "AqsujWsohxvLS8B6ANf54D9qtIhAtQ2ISptBmXGUZVIN", - address: "cosmos1t5u0jfg3ljsjrh2m9e47d4ny2hea7eehxrzdgd", - }, -]; -const MultisigMembers = (_props) => ( +const MultisigMembers = (props) => ( -

Members

-
    - {dummyMembers.map((member) => ( -
  • -
    - -
    {member.nickname}
    -
    -
    - -
    {abbreviateLongString(member.address)}
    -
    -
  • - ))} -
+
+
+

Threshold

+
{props.threshold}
+
+
+

Members

+
    + {props.members.map((address) => ( +
  • + +
  • + ))} +
+
+
diff --git a/pages/multi/[address]/index.js b/pages/multi/[address]/index.js index 0db3d06..2d23aa1 100644 --- a/pages/multi/[address]/index.js +++ b/pages/multi/[address]/index.js @@ -7,6 +7,7 @@ import Button from "../../../components/inputs/Button"; import { getMultisigAccount } from "../../../lib/multisigHelpers"; import HashView from "../../../components/dataViews/HashView"; import MultisigHoldings from "../../../components/dataViews/MultisigHoldings"; +import MultisigMembers from "../../../components/dataViews/MultisigMembers"; import Page from "../../../components/layout/Page"; import StackableContainer from "../../../components/layout/StackableContainer"; import TransactionForm from "../../../components/forms/TransactionForm"; @@ -52,18 +53,13 @@ const multipage = (props) => {
{props.accountOnChain?.pubkey && ( - -

Participants

-
    - {participantAddressesFromMultisig( - props.accountOnChain?.pubkey, - process.env.NEXT_PUBLIC_ADDRESS_PREFIX, - ).map((participantAddress) => ( -
  • {participantAddress}
  • - ))} -
-
Threshold: {props.accountOnChain?.pubkey.value.threshold}
-
+ )} {props.error && (