Skip to content

Commit

Permalink
fix!: unmerged metadata from yaci & new handler (#222)
Browse files Browse the repository at this point in the history
  • Loading branch information
fmorency authored Feb 4, 2025
1 parent 47daddb commit 203c8ea
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 14 deletions.
19 changes: 8 additions & 11 deletions components/bank/handlers/group/msgCreateGroupHandler.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,25 @@ import { GroupsIcon } from '@/components/icons/GroupsIcon';
import { format } from 'react-string-format';
import { MsgCreateGroup } from '@liftedinit/manifestjs/dist/codegen/cosmos/group/v1/tx';
import { registerHandler } from '@/components/bank/handlers/handlerRegistry';
import { getGroupTitle } from '@/components/bank/handlers/group/metadata';

const createMessage = (template: string, numMembers: number) => {
const message = format(template, numMembers);
const createMessage = (template: string, metadata: any) => {
const title = getGroupTitle(metadata);
const named = title ? `named: ${title}` : 'with an unknown name';
const message = format(template, named);
return <span className="flex gap-1">{message}</span>;
};

export const MsgCreateGroupHandler = createSenderReceiverHandler({
iconSender: GroupsIcon,
successSender: tx => {
return createMessage('You created a group with {0} members', tx.metadata?.members?.length);
return createMessage('You created a new group {0}', tx.metadata?.metadata);
},
failSender: tx => {
return createMessage(
'You failed to create a group with {0} members',
tx.metadata?.members?.length
);
return createMessage('You failed to create a new group {0}', tx.metadata?.metadata);
},
successReceiver: tx => {
return createMessage(
'You were added to a group with {0} members',
tx.metadata?.members?.length
);
return createMessage('You were mentioned in a new group {0}', tx.metadata?.metadata);
},
});

Expand Down
1 change: 1 addition & 0 deletions components/bank/handlers/tokenfactory/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ export * from './msgBurnHandler';
export * from './msgChangeAdminHandler';
export * from './msgCreateDenomHandler';
export * from './msgSetDenomMetadataHandler';
export * from './msgForceTransferHandler';
74 changes: 74 additions & 0 deletions components/bank/handlers/tokenfactory/msgForceTransferHandler.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import { FactoryIcon } from '@/components/icons/FactoryIcon';
import { createSenderReceiverHandler } from '../createSenderReceiverHandler';
import { registerHandler } from '@/components/bank/handlers/handlerRegistry';
import { MsgForceTransfer } from '@liftedinit/manifestjs/dist/codegen/osmosis/tokenfactory/v1beta1/tx';
import React from 'react';
import { format } from 'react-string-format';
import { MetadataSDKType } from '@liftedinit/manifestjs/dist/codegen/cosmos/bank/v1beta1/bank';
import { formatAmount, formatDenom, formatLargeNumber } from '@/utils';
import { TruncatedAddressWithCopy } from '@/components/react/addressCopy';

const createMessage = (
template: string,
amount: string,
denom: string,
from: string,
to: string,
color: string,
metadata?: MetadataSDKType[],
sender?: string
) => {
const formattedAmount = formatLargeNumber(formatAmount(amount, denom, metadata));
const formattedDenom = formatDenom(denom);
// coloredAmount is {0}
const coloredAmount = (
<span className={`text-${color}-500`}>
{formattedAmount} {formattedDenom}
</span>
);
const message = format(
template,
coloredAmount,
from ? <TruncatedAddressWithCopy address={from} slice={24} /> : 'an unknown address',
to ? <TruncatedAddressWithCopy address={to} slice={24} /> : 'an unknown address',
sender ? <TruncatedAddressWithCopy address={sender} slice={24} /> : 'an unknown address'
);
return <span className="flex gap-1">{message}</span>;
};

export const MsgForceTransferHandler = createSenderReceiverHandler({
iconSender: FactoryIcon,
successSender: (tx, _, metadata) =>
createMessage(
'You forced the transfer of {0} from {1} to {2}',
tx.metadata?.amount?.amount,
tx.metadata?.amount?.denom,
tx.metadata?.transferFromAddress,
tx.metadata?.transferToAddress,
'gray',
metadata
),
failSender: (tx, _, metadata) =>
createMessage(
'You failed to force the transfer of {0} from {1} to {2}',
tx.metadata?.amount?.amount,
tx.metadata?.amount?.denom,
tx.metadata?.transferFromAddress,
tx.metadata?.transferToAddress,
'gray',
metadata
),
successReceiver: (tx, _, metadata) =>
createMessage(
'{0} was force transferred from {1} to {2} by {3}',
tx.metadata?.amount?.amount,
tx.metadata?.amount?.denom,
tx.metadata?.transferFromAddress,
tx.metadata?.transferToAddress,
'gray',
metadata,
tx.sender
),
});

registerHandler(MsgForceTransfer.typeUrl, MsgForceTransferHandler);
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@ const createMessage = (template: string, base: string) => {
};
export const MsgSetDenomMetadataHandler = createSenderReceiverHandler({
iconSender: FactoryIcon,
successSender: tx => createMessage('You set the metadata of denomination {0}', tx.metadata?.base),
successSender: tx =>
createMessage('You set the metadata of denomination {0}', tx.metadata?.metadata.base),
failSender: tx =>
createMessage('You failed to set the metadata of denomination {0}', tx.metadata?.base),
createMessage('You failed to set the metadata of denomination {0}', tx.metadata?.metadata.base),
successReceiver: tx =>
createMessage('The {0} denomination had its metadata set', tx.metadata?.base),
createMessage('The {0} denomination had its metadata set', tx.metadata?.metadata.base),
});

registerHandler(MsgSetDenomMetadata.typeUrl, MsgSetDenomMetadataHandler);

0 comments on commit 203c8ea

Please sign in to comment.