Skip to content

Make the Addresses dynamic based on  #7

@Evan-Kim2028

Description

@Evan-Kim2028

Problem

The testnet addresses on mev-commit testnet are hard coded into the contracts.go folder. It is used to retrieve the streamed opened commitment events to get feedback on whether the commitment was accepted or not.

Goal

Refactor to be able to dynamically fetch the address based on a variable "testnet" or "mainnet". This is already done in the bidder node script here. Can use it as a starting point.

https://github.com/primev/bidder_node_docker/blob/main/entrypoint.sh

contracts.go

var (
	BidderRegistryAddress common.Address
	BlockTrackerAddress   common.Address
	PreconfManagerAddress common.Address
)

func init() {
	// Load custom environment file if specified, otherwise default to .env
	envFile := os.Getenv("ENV_FILE")
	if envFile == "" {
		envFile = ".env" // default to .env if ENV_FILE is not set
	}

	if _, err := os.Stat(envFile); err == nil {
		if err := loadEnvFile(envFile); err != nil {
			slog.Error("Error loading .env file",
				"err", err,
				"env_file", envFile,
			)
			return
		}
	}

	// Read environment variables with default values
	bidderRegistry := os.Getenv("BIDDER_REGISTRY_ADDRESS")
	if bidderRegistry == "" {
		bidderRegistry = "0x401B3287364f95694c43ACA3252831cAc02e5C41"
	}
	BidderRegistryAddress = common.HexToAddress(bidderRegistry)

	blockTracker := os.Getenv("BLOCK_TRACKER_ADDRESS")
	if blockTracker == "" {
		blockTracker = "0x7538F3AaA07dA1990486De21A0B438F55e9639e4"
	}
	BlockTrackerAddress = common.HexToAddress(blockTracker)

	preconfManager := os.Getenv("PRECONF_MANAGER_ADDRESS")
	if preconfManager == "" {
		preconfManager = "0x9433bCD9e89F923ce587f7FA7E39e120E93eb84D"
	}
	PreconfManagerAddress = common.HexToAddress(preconfManager)

	// // Log loaded contract addresses
	// slog.Info("Loaded contract addresses",
	// 	"BidderRegistry", BidderRegistryAddress.Hex(),
	// 	"BlockTracker", BlockTrackerAddress.Hex(),
	// 	"PreconfManager", PreconfManagerAddress.Hex(),
	// )
}```

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions