From 0a85cb0cd224922ac9fddd4040ec6c85540d8164 Mon Sep 17 00:00:00 2001 From: scobru Date: Fri, 15 Dec 2023 15:49:16 +0100 Subject: [PATCH] cid fix --- packages/hardhat/contracts/Nostr3.sol | 6 ++++-- packages/nextjs/pages/api/[pubkey].ts | 4 ++-- packages/nextjs/pages/api/cids.json | 1 - packages/nextjs/pages/api/getAll.ts | 6 +++--- packages/nextjs/pages/api/store.ts | 14 +++++++------- packages/nextjs/pages/login.tsx | 11 +++++------ packages/nextjs/public/cids.json | 1 + packages/nextjs/services/store/store.ts | 4 ++++ 8 files changed, 26 insertions(+), 21 deletions(-) delete mode 100644 packages/nextjs/pages/api/cids.json create mode 100644 packages/nextjs/public/cids.json diff --git a/packages/hardhat/contracts/Nostr3.sol b/packages/hardhat/contracts/Nostr3.sol index a2f0bb9..3147fcf 100644 --- a/packages/hardhat/contracts/Nostr3.sol +++ b/packages/hardhat/contracts/Nostr3.sol @@ -20,7 +20,6 @@ contract Nostr3 { owner = msg.sender; } - function join(bytes memory publicKey,address evmAddress) public { Nostr3Account memory account; account.publicKey = publicKey; @@ -47,6 +46,8 @@ contract Nostr3 { owner = _newOwner; } + + // TODO : Add reentrancy function deposit(bytes32 encryptedHash) public payable { uint256 feeAmount = msg.value * FEE / 10000; uint256 depositAmount = msg.value - feeAmount; @@ -57,8 +58,9 @@ contract Nostr3 { function withdraw(string calldata key) public { bytes32 hashed = keccak256(abi.encode(key)); uint amount = encryptedDeposits[hashed]; - payable(msg.sender).transfer(amount); encryptedDeposits[hashed] = 0; + payable(msg.sender).transfer(amount); + } function withdrawFees() public { diff --git a/packages/nextjs/pages/api/[pubkey].ts b/packages/nextjs/pages/api/[pubkey].ts index f7b08b5..c68e08e 100644 --- a/packages/nextjs/pages/api/[pubkey].ts +++ b/packages/nextjs/pages/api/[pubkey].ts @@ -31,8 +31,8 @@ export default async function handler( let cid; let state; - if (fse.existsSync(process.cwd() + "/pages/api/cids.json")) { - const rawData = fse.readFileSync(process.cwd() + "/pages/api/cids.json", "utf8"); + if (fse.existsSync(process.cwd() + "/public/cids.json")) { + const rawData = fse.readFileSync(process.cwd() + "/public/cids.json", "utf8"); cid = JSON.parse(rawData); } diff --git a/packages/nextjs/pages/api/cids.json b/packages/nextjs/pages/api/cids.json deleted file mode 100644 index 17be383..0000000 --- a/packages/nextjs/pages/api/cids.json +++ /dev/null @@ -1 +0,0 @@ -"QmYQ6bmrR8LicQW2SKKs93FYzAMj95w2LNJfBCToGzWiyj" \ No newline at end of file diff --git a/packages/nextjs/pages/api/getAll.ts b/packages/nextjs/pages/api/getAll.ts index 1595834..eabd56c 100644 --- a/packages/nextjs/pages/api/getAll.ts +++ b/packages/nextjs/pages/api/getAll.ts @@ -21,16 +21,16 @@ export default async function handler( process.env.NEXT_PUBLIC_PINATA_API_KEY, process.env.NEXT_PUBLIC_PINATA_API_SECRET, process.env.NEXT_PUBLIC_DB_NAME, - process.env.NEXT_PUBLIC_PINATA_GATEWAY + process.env.NEXT_PUBLIC_PINATA_GATEWAY, ); let cid; - const cidFilePath = process.cwd() + "/pages/api/cids.json"; + const cidFilePath = process.cwd() + "/public/cids.json"; if (fse.existsSync(cidFilePath)) { const rawData = fse.readFileSync(cidFilePath, "utf8"); cid = JSON.parse(rawData); - console.log(cid) + console.log(cid); } else { throw new Error("CID file not found."); } diff --git a/packages/nextjs/pages/api/store.ts b/packages/nextjs/pages/api/store.ts index d705047..96cd3c7 100644 --- a/packages/nextjs/pages/api/store.ts +++ b/packages/nextjs/pages/api/store.ts @@ -13,7 +13,7 @@ const mogu = new Mogu( process.env.NEXT_PUBLIC_PINATA_API_KEY, process.env.NEXT_PUBLIC_PINATA_API_SECRET, process.env.NEXT_PUBLIC_DB_NAME, - process.env.NEXT_PUBLIC_PINATA_GATEWAY + process.env.NEXT_PUBLIC_PINATA_GATEWAY, ); export default async function handler( @@ -34,8 +34,8 @@ export default async function handler( let cid; let state; - if (fse.existsSync(process.cwd() + "/pages/api/cids.json")) { - const rawData = fse.readFileSync(process.cwd() + "/pages/api/cids.json", "utf8"); + if (fse.existsSync(process.cwd() + "/public/cids.json")) { + const rawData = fse.readFileSync(process.cwd() + "/public/cids.json", "utf8"); cid = JSON.parse(rawData); } @@ -68,7 +68,7 @@ export default async function handler( const hash = await mogu.store(); console.log("CID:", hash); - fse.writeFileSync(process.cwd() + "/pages/api/cids.json", JSON.stringify(hash)); + fse.writeFileSync(process.cwd() + "/public/cids.json", JSON.stringify(hash)); return res.status(200).json({ message: "Key stored and pinned to IPFS via Pinata successfully", @@ -94,7 +94,7 @@ export default async function handler( const hash = await mogu.store(); console.log("New CID", hash); - fse.writeFileSync(process.cwd() + "/pages/api/cids.json", JSON.stringify(hash)); + fse.writeFileSync(process.cwd() + "/public/cids.json", JSON.stringify(hash)); return res.status(200).json({ message: "Key stored and pinned to IPFS via Pinata successfully", @@ -112,7 +112,7 @@ export default async function handler( const hash = await mogu.store(); console.log("New CID", hash); - fse.writeFileSync(process.cwd() + "/pages/api/cids.json", JSON.stringify(hash)); + fse.writeFileSync(process.cwd() + "/public/cids.json", JSON.stringify(hash)); return res.status(200).json({ message: "Key stored and pinned to IPFS via Pinata successfully", @@ -132,7 +132,7 @@ export default async function handler( process.env.NEXT_PUBLIC_PINATA_API_KEY, process.env.NEXT_PUBLIC_PINATA_API_SECRET, process.env.NEXT_PUBLIC_DB_NAME, - process.env.NEXT_PUBLIC_PINATA_GATEWAY + process.env.NEXT_PUBLIC_PINATA_GATEWAY, ); const { evmAddress } = req.query; diff --git a/packages/nextjs/pages/login.tsx b/packages/nextjs/pages/login.tsx index 90d59c9..f590084 100644 --- a/packages/nextjs/pages/login.tsx +++ b/packages/nextjs/pages/login.tsx @@ -105,8 +105,7 @@ const Login: NextPage = () => { const [eventId, setEventId] = useState(""); const [searchTerm, setSearchTerm] = useState(""); const runTx = useTransactor(signer as WalletClient); - const [isSecretTip, setIsSecretTip] = useState("false"); - const [isHide, setIsHide] = useState("false") + const [isHide, setIsHide] = useState(true) const { data: nostr3ctx } = useScaffoldContract({ contractName: "Nostr3", @@ -170,8 +169,8 @@ const Login: NextPage = () => { {privateKey && !isHide && nostrPrivateKey ? (
-
  • - Private Key: {privateKey} +
  • + Private Key: {privateKey}
  • NIP19 Private Key: {nostrPrivateKey} @@ -180,8 +179,8 @@ const Login: NextPage = () => { ) : (
    -
  • - Private Key: +
  • + Private Key:
  • NIP19 Private Key: diff --git a/packages/nextjs/public/cids.json b/packages/nextjs/public/cids.json new file mode 100644 index 0000000..30fe46e --- /dev/null +++ b/packages/nextjs/public/cids.json @@ -0,0 +1 @@ +"Qmd4ef5FeF4s6rUDYD8zWFRRHJBHMmfdrvmpkJMM46FQBa" \ No newline at end of file diff --git a/packages/nextjs/services/store/store.ts b/packages/nextjs/services/store/store.ts index 7433a61..1a3de6d 100644 --- a/packages/nextjs/services/store/store.ts +++ b/packages/nextjs/services/store/store.ts @@ -20,6 +20,8 @@ type TGlobalState = { setEvent: (newEvent: any) => void; followerAuthors: string[]; setFollowerAuthors: (newFollowerAuthors: string[]) => void; + cid: string; + setCid: (newCid: string) => void; }; export const useGlobalState = create(set => ({ @@ -33,4 +35,6 @@ export const useGlobalState = create(set => ({ setEvent: (newEvent: any): void => set(() => ({ event: newEvent })), followerAuthors: [], setFollowerAuthors: (newFollowerAuthors: any): void => set(() => ({ followerAuthors: newFollowerAuthors })), + cid: "", + setCid: (newCid: any): void => set(() => ({ cid: newCid })), }));