From 51b5193ad7966fa5484680d539dda104c7afe16c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20Str=C4=85czek?= Date: Tue, 30 Jan 2024 22:56:28 +0100 Subject: [PATCH] Add transfer --- frontend/src/app/approve-transfer/page.tsx | 5 +++-- frontend/src/app/register-request/page.tsx | 19 +++++++++++-------- frontend/src/app/transfer-request/page.tsx | 1 - frontend/src/components/table/table.tsx | 7 +++++-- .../src/components/table/transferTable.tsx | 5 ++++- frontend/src/components/ui/request-modal.tsx | 11 +++++------ 6 files changed, 28 insertions(+), 20 deletions(-) diff --git a/frontend/src/app/approve-transfer/page.tsx b/frontend/src/app/approve-transfer/page.tsx index c164a30..1d309d0 100644 --- a/frontend/src/app/approve-transfer/page.tsx +++ b/frontend/src/app/approve-transfer/page.tsx @@ -12,9 +12,11 @@ import { contractTxWithToast } from '@/utils/contract-tx-with-toast' export default function ApproveTransfer({ phoneNumber, onClose, + index, }: { phoneNumber?: string | null onClose: () => void + index: number }) { const { api, activeAccount, activeSigner } = useInkathon() const { contract, address: contractAddress } = useRegisteredContract(ContractIds.TransferEscrow) @@ -29,9 +31,8 @@ export default function ApproveTransfer({ setUpdateIsLoading(true) try { if (!phoneNumber) return - await contractTxWithToast(api, activeAccount.address, contract, 'approve_transfer', {}, [ - { Bytes: phoneNumber }, + index, ]) onClose() diff --git a/frontend/src/app/register-request/page.tsx b/frontend/src/app/register-request/page.tsx index 1f02e37..df43f91 100644 --- a/frontend/src/app/register-request/page.tsx +++ b/frontend/src/app/register-request/page.tsx @@ -15,7 +15,7 @@ export default function RegisterRequest({ currentOperator, onClose, }: { - currentOperator?: string | null + currentOperator?: { name: string; walletAddress: string } | null phoneNumber?: string | null onClose: () => void }) { @@ -42,7 +42,7 @@ export default function RegisterRequest({ try { if (!phoneNumber || !targetOperator) return - await contractTxWithToast( + const res = await contractTxWithToast( api, activeAccount.address, transferEscrowContract, @@ -50,11 +50,14 @@ export default function RegisterRequest({ {}, [{ Bytes: phoneNumber }, targetOperator], ) - await contractTxWithToast(api, activeAccount.address, phoneNumberContract, 'approve', {}, [ - currentOperator, - { Bytes: phoneNumber }, - true, - ]) + // await contractTxWithToast( + // api, + // activeAccount.address, + // phoneNumberContract, + // 'PSP34::approve', + // {}, + // [currentOperator?.walletAddress, { Bytes: phoneNumber }, true], + // ) onClose() } catch (e) { @@ -72,7 +75,7 @@ export default function RegisterRequest({ current operator ('setMetadata') const [phoneNumber, setPhoneNumber] = useState(null) - const [currentOperator, setCurrentOperator] = useState('') + const [currentOperator, setCurrentOperator] = useState<{ + name: string + walletAddress: string + } | null>() const handleChangePage = (event: unknown, newPage: number) => { setPage(newPage) @@ -116,7 +119,7 @@ export default function BasicTable({ setModalMode('registerNewRequest') setShowModal(true) setPhoneNumber(row.phoneNumber) - setCurrentOperator(row.operator?.walletAddress) + setCurrentOperator(row.operator) }} > diff --git a/frontend/src/components/table/transferTable.tsx b/frontend/src/components/table/transferTable.tsx index c110e6e..455e11b 100644 --- a/frontend/src/components/table/transferTable.tsx +++ b/frontend/src/components/table/transferTable.tsx @@ -50,6 +50,7 @@ export default function TransferTable({ data }: { data: TransfersTableType[] }) const [rows, setRows] = useState(data?.length || 0) const [showModal, setShowModal] = useState(false) const [phoneNumber, setPhoneNumber] = useState(null) + const [index, setIndex] = useState(0) const [modalMode, setModalMode] = useState<'approveTransfer' | 'finishTransfer'>( 'approveTransfer', ) @@ -62,7 +63,6 @@ export default function TransferTable({ data }: { data: TransfersTableType[] }) setRowsPerPage(+event.target.value) setPage(0) } - return (
@@ -99,6 +99,7 @@ export default function TransferTable({ data }: { data: TransfersTableType[] }) onClick={(e) => { setModalMode('finishTransfer') setPhoneNumber(row.token.Bytes) + setIndex(index) setShowModal(true) }} > @@ -112,6 +113,7 @@ export default function TransferTable({ data }: { data: TransfersTableType[] }) onClick={(e) => { setModalMode('approveTransfer') setPhoneNumber(row.token.Bytes) + setIndex(index) setShowModal(true) }} > @@ -162,6 +164,7 @@ export default function TransferTable({ data }: { data: TransfersTableType[] }) open={showModal} mode={modalMode} phoneNumber={phoneNumber} + index={index} onClose={() => { setShowModal(false) }} diff --git a/frontend/src/components/ui/request-modal.tsx b/frontend/src/components/ui/request-modal.tsx index 05c791a..c0f9fb1 100644 --- a/frontend/src/components/ui/request-modal.tsx +++ b/frontend/src/components/ui/request-modal.tsx @@ -1,6 +1,7 @@ import Box from '@mui/material/Box' import Modal from '@mui/material/Modal' +import ApproveTransfer from '@/app/approve-transfer/page' import FinishTransfer from '@/app/finish-transfer/page' import RegisterRequest from '@/app/register-request/page' @@ -23,8 +24,9 @@ interface Props { mode?: 'setMetadata' | 'registerNewRequest' | 'finishTransfer' | 'approveTransfer' open: boolean onClose: () => void + index: number phoneNumber?: string | null - currentOperator?: string | null + currentOperator?: { name: string; walletAddress: string } | null } export default function RequestModal({ @@ -32,6 +34,7 @@ export default function RequestModal({ open, onClose, phoneNumber, + index, currentOperator, }: Props) { return ( @@ -52,11 +55,7 @@ export default function RequestModal({ /> )} {mode == 'approveTransfer' && ( - + )}