diff --git a/apps/remix-ide/src/app/plugins/templates-selection/templates-selection-plugin.tsx b/apps/remix-ide/src/app/plugins/templates-selection/templates-selection-plugin.tsx index 7ff0e5559f1..943021b3ae9 100644 --- a/apps/remix-ide/src/app/plugins/templates-selection/templates-selection-plugin.tsx +++ b/apps/remix-ide/src/app/plugins/templates-selection/templates-selection-plugin.tsx @@ -167,14 +167,14 @@ export class TemplatesSelectionPlugin extends ViewPlugin { id={item.name} searchKeywords={[item.displayName, item.description, template.name]} tagList={item.tagList} - classList='TSCellStyle' + classList={'TSCellStyle'} >
{item.description && {item.description}}
-
+
{(item.opts && item.opts.upgradeable && item.opts.upgradeable === 'uupds') && Upgradeable-UUPS} {(item.opts && item.opts.mintable) && mintable} {(item.opts && item.opts.burnable) && burnable} diff --git a/apps/remix-ide/src/app/plugins/templates-selection/templates.ts b/apps/remix-ide/src/app/plugins/templates-selection/templates.ts index 5bde8d57efd..2a6ae5fc15d 100644 --- a/apps/remix-ide/src/app/plugins/templates-selection/templates.ts +++ b/apps/remix-ide/src/app/plugins/templates-selection/templates.ts @@ -267,18 +267,53 @@ export const templates = (intl, plugin) => { onClickLabel: 'Open Cookbook Plugin', description: 'Discover more templates!', items: [ - { value: "token-sale", displayName: 'Token Sale' }, - { value: "simple-nft-sale", displayName: 'Simple Nft Sale' }, - { value: "Azuki-ERC721A-NFT-Sale-basic", displayName: 'Azuki ERC721A NFT Sale basic' }, - { value: "Azuki-ERC721A-ERC721A", displayName: 'Azuki ERC721A' }, - { value: "token-staking-with-infinite-rewards", displayName: 'Token Staking with infinite rewards' }, - { value: "nft-staking-with-infinite-rewards", displayName: 'Nft Staking with infinite rewards' }, - { value: "basic-dao", displayName: 'Basic DAO' }, - { value: "soulbound-nft", displayName: 'Soulbound Nft' }, - { value: "multi-collection-nft-with-burnable-nfts-and-pausable-transfers", displayName: 'Multi collection NFT', description: "Multi collection NFT with:", opts: { - burnable: true, - pausable: true - }, }, + { + value: "token-sale", + displayName: 'Token Sale', + description: "ERC20 token sale contact. Sell tokens for ETH" + }, + { + value: "simple-nft-sale", + displayName: 'Simple Nft Sale', + description: "ERC721 NFT with an adjustable price & to mint free NFTs" + }, + { + value: "Azuki-ERC721A-NFT-Sale-basic", + displayName: 'Azuki ERC721A NFT Sale basic', + description: "An implementation of the ERC721A standard" + }, + { + value: "Azuki-ERC721A-NFT-Sale", + displayName: 'Azuki ERC721A NFT Sale', + description: "An extension of the ERC721A standard with wallet limit" + }, + { + value: "token-staking-with-infinite-rewards", + displayName: 'Token Staking with infinite rewards', + description: "Token staking contract to reward ERC20 tokens for every token staked" + }, + { + value: "nft-staking-with-infinite-rewards", + displayName: 'NFT Staking with infinite rewards', + description: "NFT staking contract to reward exact number of ERC20 tokens per day" + }, + { + value: "basic-dao", + displayName: 'Basic DAO', + description: "A very simple implementation of a DAO" + }, + { + value: "soulbound-nft", + displayName: 'Soulbound NFT', + description: "ERC721 Soulbound NFT with no transfer capability" + }, + { value: "multi-collection-nft-with-burnable-nfts-and-pausable-transfers", + displayName: 'Multi collection NFT', + description: "Multi collection NFT with:", + opts: { + burnable: true, + pausable: true + }, }, ] }, { diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js index f8230695857..dc370bd5d52 100644 --- a/apps/remix-ide/src/remixAppManager.js +++ b/apps/remix-ide/src/remixAppManager.js @@ -93,6 +93,8 @@ const dependentModules = ['foundry', 'hardhat', 'truffle', 'slither'] const loadLocalPlugins = ['doc-gen', 'doc-viewer', 'etherscan', 'vyper', 'solhint', 'walletconnect', 'circuit-compiler', 'learneth', 'quick-dapp'] +const partnerPlugins = ['cookbookdev'] + const sensitiveCalls = { fileManager: ['writeFile', 'copyFile', 'rename', 'copyDir'], contentImport: ['resolveAndSave'], @@ -206,6 +208,11 @@ export class RemixAppManager extends PluginManager { return true } + // skipping partner plugins' requests + if (partnerPlugins[from]) { + return true + } + // ask the user for permission return await this.call('permissionhandler', 'askPermission', this.profiles[from], this.profiles[to], method, message, isSensitiveCall) } diff --git a/libs/remix-ui/workspace/src/lib/utils/constants.ts b/libs/remix-ui/workspace/src/lib/utils/constants.ts index f0d150afb16..1d28b8d40a0 100644 --- a/libs/remix-ui/workspace/src/lib/utils/constants.ts +++ b/libs/remix-ui/workspace/src/lib/utils/constants.ts @@ -88,6 +88,36 @@ export const TEMPLATE_METADATA: Record = { name: 'cookbookdev', endpoint: 'openContract', params: ['multi-collection-nft-with-burnable-nfts-and-pausable-transfers'] + }, + 'OpenSea-Seaport': { + type: 'plugin', + name: 'cookbookdev', + endpoint: 'openProtocol', + params: ['OpenSea-Seaport'] + }, + 'Ethereum-Name-Service': { + type: 'plugin', + name: 'cookbookdev', + endpoint: 'openProtocol', + params: ['Ethereum-Name-Service'] + }, + 'Umbra-Cash': { + type: 'plugin', + name: 'cookbookdev', + endpoint: 'openProtocol', + params: ['Umbra-Cash'] + }, + 'Aave-V3': { + type: 'plugin', + name: 'cookbookdev', + endpoint: 'openProtocol', + params: ['Aave-V3'] + }, + 'ChainLink': { + type: 'plugin', + name: 'cookbookdev', + endpoint: 'openProtocol', + params: ['ChainLink'] } }