Skip to content

Commit

Permalink
Collect compliler details from config
Browse files Browse the repository at this point in the history
  • Loading branch information
delta003 committed Dec 13, 2021
1 parent fe0a22b commit 934e543
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 7 deletions.
27 changes: 23 additions & 4 deletions providers/deployment_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ package providers
import (
"encoding/hex"
"fmt"
"path/filepath"
"time"

"github.com/tenderly/tenderly-cli/ethereum"
"github.com/tenderly/tenderly-cli/model"
"github.com/tenderly/tenderly-cli/stacktrace"
"path/filepath"
"time"
)

type DeploymentProvider interface {
Expand Down Expand Up @@ -100,8 +101,26 @@ type CompilerSettings struct {
}

type Optimizer struct {
Enabled *bool `json:"enabled"`
Runs *int `json:"runs"`
Enabled *bool `json:"enabled"`
Runs *int `json:"runs"`
Details *OptimizerDetails `json:"details,omitempty"`
}

type OptimizerDetails struct {
Peephole bool `json:"peephole,omitempty"`
JumpdestRemover bool `json:"jumpdestRemover,omitempty"`
OrderLiterals bool `json:"orderLiterals,omitempty"`
Deduplicate bool `json:"deduplicate,omitempty"`
Cse bool `json:"cse,omitempty"`
ConstantOptimizer bool `json:"constantOptimizer,omitempty"`
Yul bool `json:"yul,omitempty"`
Inliner *bool `json:"inliner,omitempty"`
YulDetails *YulDetails `json:"yulDetails,omitempty"`
}

type YulDetails struct {
StackAllocation bool `json:"stackAllocation,omitempty"`
OptimizerSteps string `json:"optimizerSteps,omitempty"`
}

type Contract struct {
Expand Down
78 changes: 75 additions & 3 deletions rest/payloads/contractPayloads.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,27 @@ type UploadContractsResponse struct {
}

type Config struct {
OptimizationsUsed *bool `json:"optimizations_used,omitempty"`
OptimizationsCount *int `json:"optimizations_count,omitempty"`
EvmVersion *string `json:"evm_version,omitempty"`
OptimizationsUsed *bool `json:"optimizations_used,omitempty"`
OptimizationsCount *int `json:"optimizations_count,omitempty"`
EvmVersion *string `json:"evm_version,omitempty"`
Details *ConfigDetails `json:"details,omitempty"`
}

type ConfigDetails struct {
Peephole bool `json:"peephole,omitempty"`
JumpdestRemover bool `json:"jumpdestRemover,omitempty"`
OrderLiterals bool `json:"orderLiterals,omitempty"`
Deduplicate bool `json:"deduplicate,omitempty"`
Cse bool `json:"cse,omitempty"`
ConstantOptimizer bool `json:"constantOptimizer,omitempty"`
Yul bool `json:"yul,omitempty"`
Inliner *bool `json:"inliner,omitempty"`
YulDetails *YulDetails `json:"yulDetails,omitempty"`
}

type YulDetails struct {
StackAllocation bool `json:"stackAllocation,omitempty"`
OptimizerSteps string `json:"optimizerSteps,omitempty"`
}

func ParseNewTruffleConfig(compilers map[string]providers.Compiler) *Config {
Expand All @@ -41,6 +59,24 @@ func ParseNewTruffleConfig(compilers map[string]providers.Compiler) *Config {
if compiler.Settings.Optimizer != nil {
payload.OptimizationsUsed = compiler.Settings.Optimizer.Enabled
payload.OptimizationsCount = compiler.Settings.Optimizer.Runs
if compiler.Settings.Optimizer.Details != nil {
payload.Details = &ConfigDetails{
Peephole: compiler.Settings.Optimizer.Details.Peephole,
JumpdestRemover: compiler.Settings.Optimizer.Details.JumpdestRemover,
OrderLiterals: compiler.Settings.Optimizer.Details.OrderLiterals,
Deduplicate: compiler.Settings.Optimizer.Details.Deduplicate,
Cse: compiler.Settings.Optimizer.Details.Cse,
ConstantOptimizer: compiler.Settings.Optimizer.Details.ConstantOptimizer,
Yul: compiler.Settings.Optimizer.Details.Yul,
Inliner: compiler.Settings.Optimizer.Details.Inliner,
}
if compiler.Settings.Optimizer.Details.YulDetails != nil {
payload.Details.YulDetails = &YulDetails{
StackAllocation: compiler.Settings.Optimizer.Details.YulDetails.StackAllocation,
OptimizerSteps: compiler.Settings.Optimizer.Details.YulDetails.OptimizerSteps,
}
}
}
}

return &payload
Expand Down Expand Up @@ -73,6 +109,24 @@ func ParseSolcConfigWithOptimizer(compilers map[string]providers.Compiler) *Conf
if compiler.Optimizer != nil {
payload.OptimizationsUsed = compiler.Optimizer.Enabled
payload.OptimizationsCount = compiler.Optimizer.Runs
if compiler.Optimizer.Details != nil {
payload.Details = &ConfigDetails{
Peephole: compiler.Settings.Optimizer.Details.Peephole,
JumpdestRemover: compiler.Settings.Optimizer.Details.JumpdestRemover,
OrderLiterals: compiler.Settings.Optimizer.Details.OrderLiterals,
Deduplicate: compiler.Settings.Optimizer.Details.Deduplicate,
Cse: compiler.Settings.Optimizer.Details.Cse,
ConstantOptimizer: compiler.Settings.Optimizer.Details.ConstantOptimizer,
Yul: compiler.Settings.Optimizer.Details.Yul,
Inliner: compiler.Settings.Optimizer.Details.Inliner,
}
if compiler.Optimizer.Details.YulDetails != nil {
payload.Details.YulDetails = &YulDetails{
StackAllocation: compiler.Settings.Optimizer.Details.YulDetails.StackAllocation,
OptimizerSteps: compiler.Settings.Optimizer.Details.YulDetails.OptimizerSteps,
}
}
}
}

return &payload
Expand All @@ -92,6 +146,24 @@ func ParseSolcConfigWithSettings(compilers map[string]providers.Compiler) *Confi
if compiler.Settings != nil && compiler.Settings.Optimizer != nil {
payload.OptimizationsUsed = compiler.Settings.Optimizer.Enabled
payload.OptimizationsCount = compiler.Settings.Optimizer.Runs
if compiler.Settings.Optimizer.Details != nil {
payload.Details = &ConfigDetails{
Peephole: compiler.Settings.Optimizer.Details.Peephole,
JumpdestRemover: compiler.Settings.Optimizer.Details.JumpdestRemover,
OrderLiterals: compiler.Settings.Optimizer.Details.OrderLiterals,
Deduplicate: compiler.Settings.Optimizer.Details.Deduplicate,
Cse: compiler.Settings.Optimizer.Details.Cse,
ConstantOptimizer: compiler.Settings.Optimizer.Details.ConstantOptimizer,
Yul: compiler.Settings.Optimizer.Details.Yul,
Inliner: compiler.Settings.Optimizer.Details.Inliner,
}
if compiler.Settings.Optimizer.Details.YulDetails != nil {
payload.Details.YulDetails = &YulDetails{
StackAllocation: compiler.Settings.Optimizer.Details.YulDetails.StackAllocation,
OptimizerSteps: compiler.Settings.Optimizer.Details.YulDetails.OptimizerSteps,
}
}
}
}

return &payload
Expand Down

0 comments on commit 934e543

Please sign in to comment.