diff --git a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx index 5610fc2b1d..3fe327f9e5 100644 --- a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx +++ b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx @@ -16,6 +16,7 @@ export function Workspace () { const [selectedWorkspace, setSelectedWorkspace] = useState<{ name: string, isGitRepo: boolean}>(null) const [showDropdown, setShowDropdown] = useState(false) const displayOzCustomRef = useRef() + const ozFeatures = useRef({mintable: false, burnable: false, pausable: false}) const upgradeable = useRef() const global = useContext(FileSystemContext) const workspaceRenameInput = useRef() @@ -108,9 +109,10 @@ export function Workspace () { // @ts-ignore: Object is possibly 'null'. const workspaceTemplateName = workspaceCreateTemplateInput.current.value || 'remixDefault' const initGitRepo = initGitRepoRef.current.checked - + const features = ozFeatures.current const opts = { - upgradeable: upgradeable.current + upgradeable: upgradeable.current, + features } try { @@ -150,6 +152,7 @@ export function Workspace () { if (workspaceCreateTemplateInput.current.value.startsWith('oz') && displayOzCustomRef && displayOzCustomRef.current) { displayOzCustomRef.current.style.display = 'block' upgradeable.current = undefined + ozFeatures.current = {mintable: false, burnable: false, pausable: false} } else displayOzCustomRef.current.style.display = 'none' // @ts-ignore @@ -177,6 +180,11 @@ export function Workspace () { workspaceCreateInput.current.value = `${workspaceCreateTemplateInput.current.value + '_upgradeable'}_${Date.now()}` } + const handleFeatures = (e) => { + // @ts-ignore + ozFeatures.current[e.target.value] = e.target.checked + } + const createModalMessage = () => { return ( <> @@ -198,6 +206,23 @@ export function Workspace () {
+ + +
handleFeatures(e)}> +
+ + +
+
+ + +
+
+ + +
+
+
handleUpgradeability(e)}>
@@ -209,6 +234,7 @@ export function Workspace () {
+
diff --git a/libs/remix-ws-templates/src/templates/ozerc1155/index.ts b/libs/remix-ws-templates/src/templates/ozerc1155/index.ts index 2bbd5a5673..4164d91e76 100644 --- a/libs/remix-ws-templates/src/templates/ozerc1155/index.ts +++ b/libs/remix-ws-templates/src/templates/ozerc1155/index.ts @@ -1,6 +1,12 @@ import { erc1155 } from '@openzeppelin/wizard'; export default async (opts) => { + if (opts.features) { + erc1155.defaults.mintable = opts.features.mintable + erc1155.defaults.burnable = opts.features.burnable + erc1155.defaults.pausable = opts.features.pausable + } + const filesObj = { 'contracts/MyToken.sol': erc1155.print({ ...erc1155.defaults, upgradeable: opts.upgradeable}), // @ts-ignore diff --git a/libs/remix-ws-templates/src/templates/ozerc20/index.ts b/libs/remix-ws-templates/src/templates/ozerc20/index.ts index 3a070be29e..5eca9475f8 100644 --- a/libs/remix-ws-templates/src/templates/ozerc20/index.ts +++ b/libs/remix-ws-templates/src/templates/ozerc20/index.ts @@ -1,6 +1,12 @@ import { erc20 } from '@openzeppelin/wizard'; export default async (opts) => { + if (opts.features) { + erc20.defaults.mintable = opts.features.mintable + erc20.defaults.burnable = opts.features.burnable + erc20.defaults.pausable = opts.features.pausable + } + const filesObj = { 'contracts/MyToken.sol': erc20.print({ ...erc20.defaults, upgradeable: opts.upgradeable}), // @ts-ignore diff --git a/libs/remix-ws-templates/src/templates/ozerc721/index.ts b/libs/remix-ws-templates/src/templates/ozerc721/index.ts index 35f91450b3..5c7f01293d 100644 --- a/libs/remix-ws-templates/src/templates/ozerc721/index.ts +++ b/libs/remix-ws-templates/src/templates/ozerc721/index.ts @@ -1,6 +1,12 @@ import { erc721 } from '@openzeppelin/wizard'; export default async (opts) => { + if (opts.features) { + erc721.defaults.mintable = opts.features.mintable + erc721.defaults.burnable = opts.features.burnable + erc721.defaults.pausable = opts.features.pausable + } + const filesObj = { 'contracts/MyToken.sol': erc721.print({ ...erc721.defaults, upgradeable: opts.upgradeable}), // @ts-ignore