diff --git a/packages/commonwealth/client/assets/img/communitySelector/skale.svg b/packages/commonwealth/client/assets/img/communitySelector/skale.svg new file mode 100644 index 00000000000..4dcfcd4c0c5 --- /dev/null +++ b/packages/commonwealth/client/assets/img/communitySelector/skale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/commonwealth/client/scripts/views/components/CommunityInformationForm/CommunityInformationForm.tsx b/packages/commonwealth/client/scripts/views/components/CommunityInformationForm/CommunityInformationForm.tsx index bcc0a4b20d3..45c9e64906d 100644 --- a/packages/commonwealth/client/scripts/views/components/CommunityInformationForm/CommunityInformationForm.tsx +++ b/packages/commonwealth/client/scripts/views/components/CommunityInformationForm/CommunityInformationForm.tsx @@ -21,6 +21,7 @@ import { ETHEREUM_MAINNET_ID, OSMOSIS_ID, POLYGON_ETH_CHAIN_ID, + SKALE_ID, alphabeticallyStakeWiseSortedChains as sortedChains, } from './constants'; import { @@ -116,6 +117,8 @@ const CommunityInformationForm = ({ return options?.find((o) => o.value === OSMOSIS_ID); case CommunityType.Blast: return options?.find((o) => o.value === BLAST_ID); + case CommunityType.Skale: + return options?.find((o) => o.value === SKALE_ID); case CommunityType.Polygon: case CommunityType.Solana: return options?.[0]; diff --git a/packages/commonwealth/client/scripts/views/components/CommunityInformationForm/constants.ts b/packages/commonwealth/client/scripts/views/components/CommunityInformationForm/constants.ts index c298df1d805..bf0dc40dee5 100644 --- a/packages/commonwealth/client/scripts/views/components/CommunityInformationForm/constants.ts +++ b/packages/commonwealth/client/scripts/views/components/CommunityInformationForm/constants.ts @@ -9,6 +9,7 @@ export const ETHEREUM_MAINNET_ID = '1'; export const BASE_ID = '8453'; export const OSMOSIS_ID = 'osmosis'; export const BLAST_ID = '81457'; +export const SKALE_ID = '974399131'; const removeTestCosmosNodes = (nodeInfo: NodeInfo): boolean => { return !( diff --git a/packages/commonwealth/client/scripts/views/components/component_kit/new_designs/CWCommunitySelector/CWCommunitySelector.tsx b/packages/commonwealth/client/scripts/views/components/component_kit/new_designs/CWCommunitySelector/CWCommunitySelector.tsx index 152012d1bb2..f5005ec000d 100644 --- a/packages/commonwealth/client/scripts/views/components/component_kit/new_designs/CWCommunitySelector/CWCommunitySelector.tsx +++ b/packages/commonwealth/client/scripts/views/components/component_kit/new_designs/CWCommunitySelector/CWCommunitySelector.tsx @@ -17,6 +17,7 @@ export enum CommunityType { Cosmos = 'cosmos', Polygon = 'polygon', Solana = 'solana', + Skale = 'skale', } export type SelectedCommunity = { diff --git a/packages/commonwealth/client/scripts/views/modals/AuthModal/types.ts b/packages/commonwealth/client/scripts/views/modals/AuthModal/types.ts index cbd5cf5edd8..c168e0fabb3 100644 --- a/packages/commonwealth/client/scripts/views/modals/AuthModal/types.ts +++ b/packages/commonwealth/client/scripts/views/modals/AuthModal/types.ts @@ -21,6 +21,7 @@ export type ModalVariantProps = { | ChainBase.CosmosSDK | ChainBase.Solana | ChainBase.Substrate; + showAuthOptionFor?: AuthWallets | AuthSSOs; onSignInClick?: () => void; }; diff --git a/packages/commonwealth/client/scripts/views/pages/CreateCommunity/steps/CommunityTypeStep/CommunityTypeStep.tsx b/packages/commonwealth/client/scripts/views/pages/CreateCommunity/steps/CommunityTypeStep/CommunityTypeStep.tsx index ed06e671f0c..75c5ff8c617 100644 --- a/packages/commonwealth/client/scripts/views/pages/CreateCommunity/steps/CommunityTypeStep/CommunityTypeStep.tsx +++ b/packages/commonwealth/client/scripts/views/pages/CreateCommunity/steps/CommunityTypeStep/CommunityTypeStep.tsx @@ -83,8 +83,13 @@ const CommunityTypeStep = ({ handleContinue(); }; - const [baseOption, blastOption, ethereumOption, ...advancedOptions] = - communityTypeOptions; + const [ + baseOption, + blastOption, + ethereumOption, + skaleOption, + ...advancedOptions + ] = communityTypeOptions; return (
@@ -136,6 +141,19 @@ const CommunityTypeStep = ({ }) } /> + + handleCommunitySelection({ + type: skaleOption.type, + chainBase: skaleOption.chainBase, + }) + } + />
Advanced Options diff --git a/packages/commonwealth/client/scripts/views/pages/CreateCommunity/steps/CommunityTypeStep/helpers.ts b/packages/commonwealth/client/scripts/views/pages/CreateCommunity/steps/CommunityTypeStep/helpers.ts index 945cef7d2f2..e8179820a33 100644 --- a/packages/commonwealth/client/scripts/views/pages/CreateCommunity/steps/CommunityTypeStep/helpers.ts +++ b/packages/commonwealth/client/scripts/views/pages/CreateCommunity/steps/CommunityTypeStep/helpers.ts @@ -4,6 +4,7 @@ import blastImg from 'assets/img/communitySelector/blast.png'; import cosmosImg from 'assets/img/communitySelector/cosmos.svg'; import ethereumImg from 'assets/img/communitySelector/ethereum.svg'; import polygonImg from 'assets/img/communitySelector/polygon.svg'; +import skaleImg from 'assets/img/communitySelector/skale.svg'; import solanaImg from 'assets/img/communitySelector/solana.svg'; import { CommunityType } from 'views/components/component_kit/new_designs/CWCommunitySelector'; @@ -37,7 +38,19 @@ export const communityTypeOptions = [ 'Tokens built on the ERC20 protocol are fungible, meaning they are interchangeable. ' + 'Select this community type if you have minted a token on the Ethereum blockchain.', }, - + { + type: CommunityType.Skale, + img: skaleImg, + chainBase: ChainBase.Ethereum, + title: 'Skale', + isRecommended: false, + isHidden: false, + description: + // eslint-disable-next-line max-len + 'SKALE is an on-demand blockchain network with zero gas fees. ' + + // eslint-disable-next-line max-len + 'Allowing quick deployment of interoperable EVM-compatible chains without compromising security or decentralization', + }, { type: CommunityType.Cosmos, img: cosmosImg,