diff --git a/.changeset/weak-meals-lay.md b/.changeset/weak-meals-lay.md new file mode 100644 index 00000000000..9d068558153 --- /dev/null +++ b/.changeset/weak-meals-lay.md @@ -0,0 +1,5 @@ +--- +"@thirdweb-dev/sdk": patch +--- + +Allow forcing direct deploys to deploy implementations from release flow diff --git a/packages/sdk/src/core/classes/contract-deployer.ts b/packages/sdk/src/core/classes/contract-deployer.ts index d348c9f7522..eb74b8d0855 100644 --- a/packages/sdk/src/core/classes/contract-deployer.ts +++ b/packages/sdk/src/core/classes/contract-deployer.ts @@ -502,10 +502,14 @@ export class ContractDeployer extends RPCConnectionHandler { * @internal * @param publishMetadataUri * @param constructorParamValues + * @param options */ public async deployContractFromUri( publishMetadataUri: string, constructorParamValues: any[], + options?: { + forceDirectDeploy?: boolean; + }, ) { const signer = this.getSigner(); invariant(signer, "A signer is required"); @@ -527,8 +531,8 @@ export class ContractDeployer extends RPCConnectionHandler { } catch (e) { // not a factory deployment, ignore } - - if (isDeployableViaFactory && factoryDeploymentData) { + const forceDirectDeploy = options?.forceDirectDeploy || false; + if (isDeployableViaFactory && factoryDeploymentData && !forceDirectDeploy) { const chainId = (await this.getProvider().getNetwork()).chainId; invariant( factoryDeploymentData.factoryAddresses,