Skip to content

Commit

Permalink
Merge pull request #1600 from onflow/cf/fix-contract-check
Browse files Browse the repository at this point in the history
Fix contract/dependencies conflict checker
  • Loading branch information
chasefleming authored May 16, 2024
2 parents 9d33723 + 85cc0c2 commit f1014f3
Showing 1 changed file with 21 additions and 24 deletions.
45 changes: 21 additions & 24 deletions internal/dependencymanager/dependencyinstaller.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,14 +103,13 @@ func (f *dependencyManagerFlagsCollection) AddToCommand(cmd *cobra.Command) {
}

type DependencyInstaller struct {
Gateways map[string]gateway.Gateway
Logger output.Logger
State *flowkit.State
SkipDeployments bool
SkipAlias bool
logs categorizedLogs
initialContractsState config.Contracts
dependencies map[string]config.Dependency
Gateways map[string]gateway.Gateway
Logger output.Logger
State *flowkit.State
SkipDeployments bool
SkipAlias bool
logs categorizedLogs
dependencies map[string]config.Dependency
}

// NewDependencyInstaller creates a new instance of DependencyInstaller
Expand All @@ -137,13 +136,12 @@ func NewDependencyInstaller(logger output.Logger, state *flowkit.State, flags de
}

return &DependencyInstaller{
Gateways: gateways,
Logger: logger,
State: state,
SkipDeployments: flags.skipDeployments,
SkipAlias: flags.skipAlias,
initialContractsState: *state.Contracts(), // Copy at this point in time
dependencies: make(map[string]config.Dependency),
Gateways: gateways,
Logger: logger,
State: state,
SkipDeployments: flags.skipDeployments,
SkipAlias: flags.skipAlias,
dependencies: make(map[string]config.Dependency),
}, nil
}

Expand Down Expand Up @@ -207,25 +205,24 @@ func (di *DependencyInstaller) Add(depSource, customName string) error {
}

func (di *DependencyInstaller) addDependency(dep config.Dependency) error {
if _, exists := di.dependencies[dep.Source.Address.String()]; exists {
sourceString := fmt.Sprintf("%s://%s.%s", dep.Source.NetworkName, dep.Source.Address.String(), dep.Source.ContractName)

if _, exists := di.dependencies[sourceString]; exists {
return nil
}

di.dependencies[dep.Source.Address.String()] = dep
di.dependencies[sourceString] = dep

return nil

}

// checkForConflictingContracts checks if any of the dependencies conflict with contracts already in the state
func (di *DependencyInstaller) checkForConflictingContracts() {
for _, dependency := range di.dependencies {
_, err := di.initialContractsState.ByName(dependency.Name)
if err != nil {
if !isCoreContract(dependency.Name) {
msg := util.MessageWithEmojiPrefix("❌", fmt.Sprintf("Contract named %s already exists in flow.json", dependency.Name))
di.logs.issues = append(di.logs.issues, msg)
}
foundContract, _ := di.State.Contracts().ByName(dependency.Name)
if foundContract != nil && !foundContract.IsDependency {
msg := util.MessageWithEmojiPrefix("❌", fmt.Sprintf("Contract named %s already exists in flow.json", dependency.Name))
di.logs.issues = append(di.logs.issues, msg)
}
}
}
Expand Down

0 comments on commit f1014f3

Please sign in to comment.