From 456cbf35f050dca6ac69c593ffd52eb298e2aaf6 Mon Sep 17 00:00:00 2001 From: alanrsoares Date: Thu, 18 Jan 2024 12:38:47 -0300 Subject: [PATCH] fix: transfer token mintership/operatorship transfer --- .../ManageInterchainToken.tsx | 2 +- .../TransferInterchainTokenMintership.tsx | 10 +++---- .../TransferInterchainTokenOperatorship.tsx | 30 +++++++++---------- .../erc20/getERC20TokenBalanceForOwner.ts | 12 ++++---- 4 files changed, 28 insertions(+), 26 deletions(-) diff --git a/apps/maestro/src/features/ManageInterchainToken/ManageInterchainToken.tsx b/apps/maestro/src/features/ManageInterchainToken/ManageInterchainToken.tsx index 6b5822090..5ca359865 100644 --- a/apps/maestro/src/features/ManageInterchainToken/ManageInterchainToken.tsx +++ b/apps/maestro/src/features/ManageInterchainToken/ManageInterchainToken.tsx @@ -112,7 +112,7 @@ export const ManageInterchainToken: FC = (props) => { label: "Transfer Mintership", value: "transferMintership", icon: , - isVisible: () => false, + isVisible: (props) => props.isTokenMinter, }, { label: "Ownnership Pending Approval", diff --git a/apps/maestro/src/features/ManageInterchainToken/actions/transfer-mintership/TransferInterchainTokenMintership.tsx b/apps/maestro/src/features/ManageInterchainToken/actions/transfer-mintership/TransferInterchainTokenMintership.tsx index 491b77185..ac266c696 100644 --- a/apps/maestro/src/features/ManageInterchainToken/actions/transfer-mintership/TransferInterchainTokenMintership.tsx +++ b/apps/maestro/src/features/ManageInterchainToken/actions/transfer-mintership/TransferInterchainTokenMintership.tsx @@ -11,7 +11,7 @@ import { useCallback, useMemo, type FC } from "react"; import { useForm, type SubmitHandler } from "react-hook-form"; import { isAddress, TransactionExecutionError } from "viem"; -import { useChainId, useWaitForTransaction } from "wagmi"; +import { useAccount, useChainId, useWaitForTransaction } from "wagmi"; import { useInterchainTokenTransferMintership } from "~/lib/contracts/InterchainToken.hooks"; import { useTransactionState } from "~/lib/hooks/useTransactionState"; @@ -27,8 +27,9 @@ export const TransferInterchainTokenMintership: FC = () => { const [txState, setTxState] = useTransactionState(); const [state] = useManageInterchainTokenContainer(); const chainId = useChainId(); + const account = useAccount(); - const { register, handleSubmit, formState, getValues } = useForm({ + const { register, handleSubmit, formState } = useForm({ defaultValues: { recipientAddress: undefined, }, @@ -42,7 +43,7 @@ export const TransferInterchainTokenMintership: FC = () => { data: transferResult, } = useInterchainTokenTransferMintership({ address: state.tokenAddress, - account: getValues("recipientAddress"), + account: account.address, }); const trpcContext = trpc.useUtils(); @@ -139,8 +140,7 @@ export const TransferInterchainTokenMintership: FC = () => { {txState.status === "confirmed" ? ( - Token mintership has been successfully transferred. The recipient now - must accept the mintership transfer. + Token mintership has been successfully transferred. ) : (
{ const [txState, setTxState] = useTransactionState(); const [state] = useManageInterchainTokenContainer(); const chainId = useChainId(); + const account = useAccount(); - const { register, handleSubmit, formState, getValues } = useForm({ + const { register, handleSubmit, formState } = useForm({ defaultValues: { recipientAddress: undefined, }, @@ -37,12 +38,12 @@ export const TransferInterchainTokenOperatorship: FC = () => { }); const { - writeAsync: transferOwnershipAsync, + writeAsync: transferOperatorshipAsync, isLoading: isTransfering, data: transferResult, } = useInterchainTokenServiceTransferOperatorship({ address: state.tokenAddress, - account: getValues("recipientAddress"), + account: account.address, }); const trpcContext = trpc.useUtils(); @@ -70,7 +71,7 @@ export const TransferInterchainTokenOperatorship: FC = () => { receipt, }); - toast.success("Successfully transferred token ownership"); + toast.success("Successfully transferred token operatorship"); }, }); @@ -83,7 +84,7 @@ export const TransferInterchainTokenOperatorship: FC = () => { }); try { - const txResult = await transferOwnershipAsync({ + const txResult = await transferOperatorshipAsync({ args: [data.recipientAddress], }); @@ -97,10 +98,10 @@ export const TransferInterchainTokenOperatorship: FC = () => { } catch (error) { if (error instanceof TransactionExecutionError) { toast.error( - `Failed to transfer token ownership: ${error.cause.shortMessage}` + `Failed to transfer token operatorship: ${error.cause.shortMessage}` ); logger.error( - `Failed to transfer token ownership: ${error.cause.message}` + `Failed to transfer token operatorship: ${error.cause.message}` ); setTxState({ @@ -115,32 +116,31 @@ export const TransferInterchainTokenOperatorship: FC = () => { }); } }, - [chainId, setTxState, transferOwnershipAsync] + [chainId, setTxState, transferOperatorshipAsync] ); const buttonChildren = useMemo(() => { switch (txState.status) { case "idle": case "confirmed": - return "Transfer token ownership"; + return "Transfer token operatorship"; case "awaiting_approval": return "Confirm on wallet"; case "submitted": - return "Transfering token ownership"; + return "Transfering token operatorship"; case "reverted": - return "Failed to transfer ownership"; + return "Failed to transfer operatorship"; } }, [txState]); return ( <> - Transfer token ownership + Transfer rate-limit manager {txState.status === "confirmed" ? ( - Token ownership has been successfully transferred. The recipient now - must accept the ownership transfer. + Token operatorship has been successfully transferred. ) : (