From eb900def09fc0db6a558a7439ddc6f230c504047 Mon Sep 17 00:00:00 2001 From: Sebastian Guaqueta Date: Fri, 1 Nov 2024 09:52:07 -0500 Subject: [PATCH 1/4] feat/adding first version of mixed standards contracts and front --- components/deployToken/index.tsx | 75 ++- ...0TokenButton.tsx => deployTokenButton.tsx} | 12 +- ...0TokenDialog.tsx => deployTokenDialog.tsx} | 127 ++-- context/AuthContext.tsx | 187 +++--- contracts/MemeTokenERC1155Factory.sol | 82 +++ ...nFactory.sol => MemeTokenERC20Factory.sol} | 0 contracts/abi/ERC1155Token.ts | 592 ++++++++++++++++++ contracts/abi/InflationaryToken.ts | 236 +++---- contracts/abi/MemeTokenERC1155Factory.ts | 137 ++++ ...kenFactory.ts => MemeTokenERC20Factory.ts} | 30 +- hooks/useConnectWallet.tsx | 18 +- ...eployERC20Token.tsx => useDeployToken.tsx} | 45 +- 12 files changed, 1248 insertions(+), 293 deletions(-) rename components/ui/{deployERC20TokenButton.tsx => deployTokenButton.tsx} (71%) rename components/ui/dialog/{deployERC20TokenDialog.tsx => deployTokenDialog.tsx} (67%) create mode 100644 contracts/MemeTokenERC1155Factory.sol rename contracts/{MemeTokenFactory.sol => MemeTokenERC20Factory.sol} (100%) create mode 100644 contracts/abi/ERC1155Token.ts create mode 100644 contracts/abi/MemeTokenERC1155Factory.ts rename contracts/abi/{MemeTokenFactory.ts => MemeTokenERC20Factory.ts} (97%) rename hooks/{useDeployERC20Token.tsx => useDeployToken.tsx} (77%) diff --git a/components/deployToken/index.tsx b/components/deployToken/index.tsx index 369da63..88bae64 100644 --- a/components/deployToken/index.tsx +++ b/components/deployToken/index.tsx @@ -3,7 +3,7 @@ import { ChangeEvent, useEffect, useState } from "react"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card" import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip" -import DeployERC20TokenButton from "@/components/ui/deployERC20TokenButton"; +import DeployTokenButton from "@/components/ui/deployTokenButton"; import { DEPLOY_STRATEGY, DEPLOY_STRATEGY_ENUM, ROUTER } from "@/constants"; import { useAuth } from "@/context/AuthContext"; import ConnectWalletButton from "@/components/ui/connectWalletButton"; @@ -23,7 +23,8 @@ export type DeployFormData = { const DeployToken: React.FC = () => { const { isLoggedIn } = useAuth(); const [gasless, setGasless] = useState(true); - + const [erc1155, setErc1155] = useState(false); + const [erc20, setErc20] = useState(true); const [formData, setFormData] = useState({ name: "", symbol: "", @@ -74,6 +75,14 @@ const DeployToken: React.FC = () => { setIsFormCompleted(!hasEmptyField()) }, [formData]) + const changeERC20 = (value:boolean) => { + setErc1155(!value) + setErc20(value) + } + const changeERC1155 = (value:boolean) => { + setErc1155(value) + setErc20(!value) + } return ( @@ -87,6 +96,58 @@ const DeployToken: React.FC = () => { Deploy your meme token on Rootstock! +
+
+
+ + + + + + +

{"Active this option for deploying ERC20 token."}

+
+
+ +
+ +
+
+
+ + + + + + +

{"Active this option for deploying ERC1155 token."}

+
+
+ +
+ +
+
@@ -98,7 +159,7 @@ const DeployToken: React.FC = () => { -

Select the strategy to deploy the ERC20 tokens.

+

Select the strategy according your tokenomics strategy preference

@@ -296,7 +357,13 @@ const DeployToken: React.FC = () => { {isLoggedIn ? ( - + ) : ( diff --git a/components/ui/deployERC20TokenButton.tsx b/components/ui/deployTokenButton.tsx similarity index 71% rename from components/ui/deployERC20TokenButton.tsx rename to components/ui/deployTokenButton.tsx index 11d90ec..4f63e05 100644 --- a/components/ui/deployERC20TokenButton.tsx +++ b/components/ui/deployTokenButton.tsx @@ -2,26 +2,30 @@ import React, { useState } from 'react' import { Button } from '@/components/ui/button' -import DeployERC20TokenDialog from '@/components/ui/dialog/deployERC20TokenDialog' +import DeployTokenDialog from '@/components/ui/dialog/deployTokenDialog' import { DeployFormData } from '@/components/deployToken' type Props = { disabled: boolean gasless: boolean params: DeployFormData + erc20: boolean + erc1155: boolean } -const DeployERC20TokenButton = ({disabled, params, gasless}: Props) => { +const DeployTokenButton = ({disabled, params, gasless, erc1155, erc20}: Props) => { const [dialog, setDialog] = useState(false) return (
{dialog && ( - setDialog(false)} open={dialog} params={params} gasless={gasless} + erc20={erc20} + erc1155={erc1155} /> )}