@@ -6,8 +6,7 @@ import { persist, createJSONStorage } from "zustand/middleware"
66import { STEPS } from "modules/etherlink/config"
77import { useHistory } from "react-router-dom"
88
9- import WrapperContractAbi from "assets/abis/hb_wrapper_v2.json"
10- import HbWrapperWLegacyAbi from "assets/abis/hb_wrapper_w_legacy.json"
9+ import WrapperStandardAbi from "assets/abis/hb_wrapper_standard.json"
1110
1211import { useCallback , useContext , useState } from "react"
1312import { useTezos } from "services/beacon/hooks/useTezos"
@@ -165,12 +164,6 @@ const useEvmDaoCreateStore = () => {
165164 const data = useEvmDaoCreateZustantStore ( )
166165 const history = useHistory ( )
167166 const { contractData } = useContext ( EtherlinkContext )
168- const wrapperAddressOverride = getEnv ( EnvKey . REACT_APP_EVM_WRAPPER_T_ADDRESS )
169- const wrapperWrappedOverride = getEnv ( EnvKey . REACT_APP_EVM_WRAPPER_W_ADDRESS )
170- const wrapperAddress = wrapperAddressOverride || contractData ?. wrapper
171- const wrapperAddressForWrapped = wrapperWrappedOverride || contractData ?. wrapper
172- console . log ( "Wrapper wrapped address:" , wrapperAddressForWrapped )
173- console . log ( "Wrapper address:" , wrapperAddress )
174167
175168 const { etherlink, network } = useTezos ( )
176169 const notify = useNotification ( )
@@ -180,9 +173,18 @@ const useEvmDaoCreateStore = () => {
180173 console . log ( "=== Starting DAO Deployment ===" )
181174 console . log ( "Full DAO Data:" , daoData )
182175
183- // Determine wrapper address before attempting deployment (for error reporting)
184- const selectedWrapperAddress =
185- daoData . tokenDeploymentMechanism === "wrapped" ? wrapperAddressForWrapped : wrapperAddress
176+ const wrapperAddressOverride = getEnv ( EnvKey . REACT_APP_EVM_WRAPPER_ADDRESS )
177+ const wrapperTAddressOverride = getEnv ( EnvKey . REACT_APP_EVM_WRAPPER_T_ADDRESS )
178+ const wrapperWrappedOverride = getEnv ( EnvKey . REACT_APP_EVM_WRAPPER_W_ADDRESS )
179+
180+ let selectedWrapperAddress : string | undefined
181+ if ( daoData . tokenDeploymentMechanism === "wrapped" ) {
182+ selectedWrapperAddress = wrapperWrappedOverride || contractData ?. wrapper_w
183+ } else if ( daoData . nonTransferable ) {
184+ selectedWrapperAddress = wrapperAddressOverride || contractData ?. wrapper
185+ } else {
186+ selectedWrapperAddress = wrapperTAddressOverride || contractData ?. wrapper_t
187+ }
186188
187189 try {
188190 const proposalThreshold = daoData . quorum . proposalThreshold || daoData . quorum . proposalThresholdPercentage || 0
@@ -213,12 +215,20 @@ const useEvmDaoCreateStore = () => {
213215 console . log ( "Signer:" , etherlink . signer )
214216
215217 if ( ! selectedWrapperAddress ) {
218+ const factoryType =
219+ daoData . tokenDeploymentMechanism === "wrapped"
220+ ? "wrapped ERC20"
221+ : daoData . nonTransferable
222+ ? "non-transferable"
223+ : "transferable"
216224 console . error ( "No wrapper address found!" , {
217- wrapperAddress ,
218- wrapperAddressForWrapped ,
219- tokenDeploymentMechanism : daoData . tokenDeploymentMechanism
225+ factoryType ,
226+ tokenDeploymentMechanism : daoData . tokenDeploymentMechanism ,
227+ nonTransferable : daoData . nonTransferable
220228 } )
221- throw new Error ( "Wrapper contract address not found. Please check your network configuration." )
229+ throw new Error (
230+ `Wrapper contract address not found for ${ factoryType } token DAO. Please check your network configuration.`
231+ )
222232 }
223233
224234 // Validate signer
@@ -227,20 +237,7 @@ const useEvmDaoCreateStore = () => {
227237 throw new Error ( "Wallet not connected. Please connect your wallet." )
228238 }
229239
230- // Use legacy ABI if using the fallback address
231- // TODO: Move to use wrapper only
232- // const isUsingFallbackAddress = selectedWrapperAddress === "0xf4B3022b0fb4e8A73082ba9081722d6a276195c2"
233- // const wrapperAbi = Array.isArray(WrapperContractAbi)
234- // ? (WrapperContractAbi as any)
235- // : (WrapperContractAbi as any)?.abi
236- // const selectedAbi =
237- // daoData.tokenDeploymentMechanism === "wrapped"
238- // ? isUsingFallbackAddress
239- // ? HbWrapperWLegacyAbi.abi
240- // : wrapperAbi
241- // : wrapperAbi
242-
243- const selectedAbi = HbWrapperWLegacyAbi . abi
240+ const selectedAbi = WrapperStandardAbi . abi
244241
245242 // Preflight: verify contract code exists at address
246243 const onChainCode = await etherlink . provider . getCode ( selectedWrapperAddress )
@@ -299,8 +296,8 @@ const useEvmDaoCreateStore = () => {
299296 } )
300297
301298 const wrappedDaoPayload = {
302- // Legacy structure without wrappedTokenName
303299 daoName : daoData . name || "" ,
300+ wrappedTokenName : daoData . wrappedTokenName || `Wrapped ${ daoData . wrappedTokenSymbol || "Token" } ` ,
304301 wrappedTokenSymbol : daoData . wrappedTokenSymbol || "" ,
305302 description : daoData . description || "" ,
306303 executionDelay : Math . floor ( executationDelayinSeconds ) ,
@@ -403,8 +400,7 @@ const useEvmDaoCreateStore = () => {
403400 initialMembers : daoData . members . map ( ( member : any ) => member . address ) ,
404401 initialAmounts : initialAmountsWithSettings ,
405402 keys : Object . keys ( registryForDeploy ) ,
406- values : Object . values ( registryForDeploy ) . map ( v => String ( v ) ) ,
407- transferrable : ! daoData . nonTransferable // Note: fixed spelling to match ABI
403+ values : Object . values ( registryForDeploy ) . map ( v => String ( v ) )
408404 }
409405
410406 try {
@@ -450,7 +446,7 @@ const useEvmDaoCreateStore = () => {
450446 }
451447 setIsDeploying ( false )
452448 // eslint-disable-next-line react-hooks/exhaustive-deps
453- } , [ data . data , etherlink . signer , wrapperAddress , wrapperAddressForWrapped ] )
449+ } , [ data . data , etherlink . signer , contractData ] )
454450 const isFinalStep = data . currentStep === STEPS . length - 1
455451
456452 return {
0 commit comments