);
diff --git a/src/components/PutForRentForm.js b/src/components/PutForRentForm.js
new file mode 100644
index 0000000..bd2771f
--- /dev/null
+++ b/src/components/PutForRentForm.js
@@ -0,0 +1,78 @@
+import React, { useState } from "react";
+// import { Form, Button } from "react-bootstrap";
+import { abis } from "@project/contracts";
+import { Formik, Field, Form, ErrorMessage, useField } from "formik";
+import * as Yup from "yup";
+
+const Web3 = require("web3");
+
+const Input: FunctionalComponent = ({ label, ...props }) => {
+ // useField() returns [formik.getFieldProps(), formik.getFieldMeta()]
+ // which we can spread on . We can use field meta to show an error
+ // message if the field is invalid and it has been touched (i.e. visited)
+ const [field, meta] = useField(props);
+
+ return (
+
+
+
+ {meta.touched && meta.error ? (
+
* {meta.error}
+ ) : null}
+
+ );
+};
+
+const PutForRentForm = () => {
+ const web3 = new Web3(window.ethereum);
+ const config = {
+ erc721: "0x76E195437534620106a2Ef736F8C8491159dC640",
+ };
+ const putForRent = async (id, price) => {
+ // const nftCid = await getNFTStorageClient().storeBlob(file);
+ console.log("hi");
+ const c = new web3.eth.Contract(abis.erc721.abi, config.erc721);
+
+ const tx = await c.methods
+ .putForRent(id, price)
+ .send({ from: window.ethereum.selectedAddress });
+
+ console.log(tx);
+ };
+
+ return (
+ {
+ console.log(values);
+ await putForRent(values.nftId, values.price);
+ }}
+ >
+ {(formProps) => (
+
+ )}
+
+ );
+};
+export default PutForRentForm;
diff --git a/src/components/RentNft.js b/src/components/RentNft.js
new file mode 100644
index 0000000..b585b62
--- /dev/null
+++ b/src/components/RentNft.js
@@ -0,0 +1,116 @@
+import React from "react";
+// import { Form, Button } from "react-bootstrap";
+import { abis } from "@project/contracts";
+import { Formik, Form, useField } from "formik";
+import * as Yup from "yup";
+import { getSuperClient } from "../utils";
+
+const Web3 = require("web3");
+
+const Input: FunctionalComponent = ({ label, ...props }) => {
+ // useField() returns [formik.getFieldProps(), formik.getFieldMeta()]
+ // which we can spread on . We can use field meta to show an error
+ // message if the field is invalid and it has been touched (i.e. visited)
+ const [field, meta] = useField(props);
+
+ return (
+