Skip to content

10ap17/Solidity-Gas-Optimizations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solidity Gas Optimizations

                                ____     ___    ___ __         _____          
                               / __/__  / (_)__/ (_) /___ __  / ___/__ ____   
                              _\ \/ _ \/ / / _  / / __/ // / / (_ / _ `(_-<   
                             /___/\___/_/_/\_,_/_/\__/\_, /  \___/\_,_/___/   
                          ____       __  _       _   /___/  __  _             
                         / __ \___  / /_(_)_ _  (_)__ ___ _/ /_(_)__  ___  ___
                        / /_/ / _ \/ __/ /  ' \/ /_ // _ `/ __/ / _ \/ _ \(_-<
                        \____/ .__/\__/_/_/_/_/_//__/\_,_/\__/_/\___/_//_/___/
                            /_/                                               

Table of Contents

Requirements

To work with this repository, you need to fulfill the following requirements:

Install Foundry:

curl -L https://foundry.paradigm.xyz | bash
foundryup

Clone the Solidity-Gas-Optimizations repository to your local machine using Git:

git clone https://github.com/10ap17/Solidity-Gas-Optimizations.git
cd Solidity-Gas-Optimizations

Ensure that you have all the required dependencies installed to run the tests. You can install dependencies by running:

forge install

To test, you can use the following command:

forge test --gas-report

Ensure that you meet these requirements before proceeding with any operations within the Solidity-Gas-Optimizations project.

Optimizations

Text to add.

Additon Optimization

| src/Addition.sol:AdditiontOptimized contract |                 |       |        |       |         |
|----------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                              | Deployment Size |       |        |       |         |
| 117887                                       | 230             |       |        |       |         |
| Function Name                                | min             | avg   | median | max   | # calls |
| compare                                      | 26501           | 26501 | 26501  | 26501 | 1       |


| src/Addition.sol:AdditonNotOptimized contract |                 |       |        |       |         |
|-----------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                               | Deployment Size |       |        |       |         |
| 118979                                        | 235             |       |        |       |         |
| Function Name                                 | min             | avg   | median | max   | # calls |
| compare                                       | 26517           | 26517 | 26517  | 26517 | 1       |

Array Optimization

| src/Array.sol:ArrayNotOptimized contract |                 |          |          |          |         |
|------------------------------------------|-----------------|----------|----------|----------|---------|
| Deployment Cost                          | Deployment Size |          |          |          |         |
| 98761                                    | 239             |          |          |          |         |
| Function Name                            | min             | avg      | median   | max      | # calls |
| compare                                  | 22785943        | 22785943 | 22785943 | 22785943 | 1       |


| src/Array.sol:ArraytOptimized contract |                 |          |          |          |         |
|----------------------------------------|-----------------|----------|----------|----------|---------|
| Deployment Cost                        | Deployment Size |          |          |          |         |
| 97225                                  | 232             |          |          |          |         |
| Function Name                          | min             | avg      | median   | max      | # calls |
| compare                                | 22556575        | 22556575 | 22556575 | 22556575 | 1       |

Calldata Optimization

| src/Calldata.sol:CalldataNotOptimized contract |                 |       |        |       |         |
|------------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                                | Deployment Size |       |        |       |         |
| 197613                                         | 700             |       |        |       |         |
| Function Name                                  | min             | avg   | median | max   | # calls |
| compare                                        | 44562           | 44562 | 44562  | 44562 | 1       |


| src/Calldata.sol:CalldataOptimized contract |                 |       |        |       |         |
|---------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                             | Deployment Size |       |        |       |         |
| 184437                                      | 639             |       |        |       |         |
| Function Name                               | min             | avg   | median | max   | # calls |
| compare                                     | 44407           | 44407 | 44407  | 44407 | 1       |

Constant Optimization

| src/Constant.sol:ConstantNotOptimized contract  |                 |     |        |     |         |
|-------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                 | Deployment Size |     |        |     |         |
| 106287                                          | 177             |     |        |     |         |
| Function Name                                   | min             | avg | median | max | # calls |
| compare                                         | 280             | 280 | 280    | 280 | 1       |


| src/Constant.sol:ConstantOptimized contract     |                 |     |        |     |         |
|-------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                 | Deployment Size |     |        |     |         |
| 84109                                           | 171             |     |        |     |         |
| Function Name                                   | min             | avg | median | max | # calls |
| compare                                         | 180             | 180 | 180    | 180 | 1       |

Delete Optimization

| src/Delete.sol:DeleteNotOptimized contract |                 |       |        |       |         |
|--------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                            | Deployment Size |       |        |       |         |
| 99153                                      | 144             |       |        |       |         |
| Function Name                              | min             | avg   | median | max   | # calls |
| compare                                    | 21380           | 21380 | 21380  | 21380 | 1       |


| src/Delete.sol:DeleteOptimized contract |                 |       |        |       |         |
|-----------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                         | Deployment Size |       |        |       |         |
| 99141                                   | 144             |       |        |       |         |
| Function Name                           | min             | avg   | median | max   | # calls |
| compare                                 | 21380           | 21380 | 21380  | 21380 | 1       |

Event Optimization

| src/Event.sol:EventNotOptimized contract        |                 |       |        |       |         |
|-------------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                                 | Deployment Size |       |        |       |         |
| 83857                                           | 170             |       |        |       |         |
| Function Name                                   | min             | avg   | median | max   | # calls |
| compare                                         | 43506           | 43506 | 43506  | 43506 | 1       |


| src/Event.sol:EventOptimized contract           |                 |       |        |       |         |
|-------------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                                 | Deployment Size |       |        |       |         |
| 95329                                           | 223             |       |        |       |         |
| Function Name                                   | min             | avg   | median | max   | # calls |
| compare                                         | 22474           | 22474 | 22474  | 22474 | 1       |

Function Name Optimization

| src/FunctionName.sol:FunctionNameNotOptimized contract |                 |     |        |     |         |
|--------------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                        | Deployment Size |     |        |     |         |
| 79363                                                  | 149             |     |        |     |         |
| Function Name                                          | min             | avg | median | max | # calls |
| compare                                                | 146             | 146 | 146    | 146 | 1       |


| src/FunctionName.sol:FunctionNameOptimized contract |                 |     |        |     |         |
|-----------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                     | Deployment Size |     |        |     |         |
| 78931                                               | 147             |     |        |     |         |
| Function Name                                       | min             | avg | median | max | # calls |
| compare_aam                                         | 146             | 146 | 146    | 146 | 1       |

Increment Optimization

| src/Increment.sol:IncrementNotOptimized contract|                 |     |        |     |         |
|-------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                 | Deployment Size |     |        |     |         |
| 91639                                           | 206             |     |        |     |         |
| Function Name                                   | min             | avg | median | max | # calls |
| compare                                         | 247             | 247 | 247    | 247 | 1       |


| src/Increment.sol:IncrementOptimized contract   |                 |     |        |     |         |
|-------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                 | Deployment Size |     |        |     |         |
| 91207                                           | 204             |     |        |     |         |
| Function Name                                   | min             | avg | median | max | # calls |
| compare                                         | 242             | 242 | 242    | 242 | 1       |

Initialize Optimization

|src/Initialize.sol:InitializeNotOptimizedcontract|                 |       |        |       |         |
|-------------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                                 | Deployment Size |       |        |       |         |
| 79783                                           | 151             |       |        |       |         |
| Function Name                                   | min             | avg   | median | max   | # calls |
| compare                                         | 23416           | 23416 | 23416  | 23416 | 1       |


| src/Initialize.sol:InitializeOptimized contract |                 |       |        |       |         |
|-------------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                                 | Deployment Size |       |        |       |         |
| 79351                                           | 149             |       |        |       |         |
| Function Name                                   | min             | avg   | median | max   | # calls |
| compare                                         | 23310           | 23310 | 23310  | 23310 | 1       |

Less Than Optimization

| src/LessThan.sol:LessThanNotOptimized contract  |                 |     |        |     |         |
|-------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                 | Deployment Size |     |        |     |         |
| 88423                                           | 191             |     |        |     |         |
| Function Name                                   | min             | avg | median | max | # calls |
| compare                                         | 250             | 250 | 250    | 250 | 1       |


| src/LessThan.sol:LessThanOptimized contract     |                 |     |        |     |         |
|-------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                 | Deployment Size |     |        |     |         |
| 88207                                           | 190             |     |        |     |         |
| Function Name                                   | min             | avg | median | max | # calls |
| compare                                         | 247             | 247 | 247    | 247 | 1       |

Local Data Optimization

| src/LocalData.sol:LocalDataNotOptimized contract|                 |        |        |        |         |
|-------------------------------------------------|-----------------|--------|--------|--------|---------|
| Deployment Cost                                 | Deployment Size |        |        |        |         |
| 94219                                           | 218             |        |        |        |         |
| Function Name                                   | min             | avg    | median | max    | # calls |
| compare                                         | 391949          | 391949 | 391949 | 391949 | 1       |


| src/LocalData.sol:LocalDataOptimized contract   |                 |        |        |        |         |
|-------------------------------------------------|-----------------|--------|--------|--------|---------|
| Deployment Cost                                 | Deployment Size |        |        |        |         |
| 92923                                           | 212             |        |        |        |         |
| Function Name                                   | min             | avg    | median | max    | # calls |
| compare                                         | 168415          | 168415 | 168415 | 168415 | 1       |

Packing Optimization

| src/Packing.sol:PackingNotOptimized contract    |                 |       |        |       |         |
|-------------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                                 | Deployment Size |       |        |       |         |
| 152220                                          | 206             |       |        |       |         |
| Function Name                                   | min             | avg   | median | max   | # calls |
| compare                                         | 48334           | 48334 | 48334  | 48334 | 1       |


| src/Packing.sol:PackingOptimized contract       |                 |       |        |       |         |
|-------------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                                 | Deployment Size |       |        |       |         |
| 147504                                          | 187             |       |        |       |         |
| Function Name                                   | min             | avg   | median | max   | # calls |
| compare                                         | 26210           | 26210 | 26210  | 26210 | 1       |

Require Optimization

| src/Require.sol:RequireNotOptimized contract    |                 |     |        |     |         |
|-------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                 | Deployment Size |     |        |     |         |
| 100897                                          | 249             |     |        |     |         |
| Function Name                                   | min             | avg | median | max | # calls |
| compare                                         | 343             | 343 | 343    | 343 | 1       |


| src/Require.sol:RequireOptimized contract       |                 |     |        |     |         |
|-------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                 | Deployment Size |     |        |     |         |
| 101305                                          | 251             |     |        |     |         |
| Function Name                                   | min             | avg | median | max | # calls |
| compare                                         | 327             | 327 | 327    | 327 | 1       |

Require Length Optimization

| src/RequireLength.sol:RequireLengthNotOptimized contract |                 |     |        |     |         |
|----------------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                          | Deployment Size |     |        |     |         |
| 155105                                                   | 405             |     |        |     |         |
| Function Name                                            | min             | avg | median | max | # calls |
| compare                                                  | 436             | 436 | 436    | 436 | 1       |


| src/RequireLength.sol:RequireLengthOptimized contract |                 |     |        |     |         |
|-------------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                       | Deployment Size |     |        |     |         |
| 113637                                                | 211             |     |        |     |         |
| Function Name                                         | min             | avg | median | max | # calls |
| compare                                               | 346             | 346 | 346    | 346 | 1       |

Short Circuit Optimization

| src/ShortCircuit.sol:ShortCircuitNotOptimized contract |                 |       |        |       |         |
|--------------------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                                        | Deployment Size |       |        |       |         |
| 97693                                                  | 234             |       |        |       |         |
| Function Name                                          | min             | avg   | median | max   | # calls |
| compare                                                | 21751           | 21751 | 21751  | 21751 | 1       |


| src/ShortCircuit.sol:ShortCircuitOptimized contract |                 |       |        |       |         |
|-----------------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                                     | Deployment Size |       |        |       |         |
| 97693                                               | 234             |       |        |       |         |
| Function Name                                       | min             | avg   | median | max   | # calls |
| compare                                             | 21741           | 21741 | 21741  | 21741 | 1       |

String Optimization

| src/String.sol:StringNotOptimized contract |                 |       |        |       |         |
|--------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                            | Deployment Size |       |        |       |         |
| 163359                                     | 541             |       |        |       |         |
| Function Name                              | min             | avg   | median | max   | # calls |
| compare                                    | 43746           | 43746 | 43746  | 43746 | 1       |


| src/String.sol:StringOptimized contract |                 |       |        |       |         |
|-----------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                         | Deployment Size |       |        |       |         |
| 78907                                   | 147             |       |        |       |         |
| Function Name                           | min             | avg   | median | max   | # calls |
| compare                                 | 43286           | 43286 | 43286  | 43286 | 1       |

Unchecked Optimization

| src/Unchecked.sol:UncheckeOptimized contract    |                 |       |        |       |         |
|-------------------------------------------------|-----------------|-------|--------|-------|---------|
| Deployment Cost                                 | Deployment Size |       |        |       |         |
| 94027                                           | 217             |       |        |       |         |
| Function Name                                   | min             | avg   | median | max   | # calls |
| compare                                         | 62324           | 62324 | 62324  | 62324 | 1       | 


| src/Unchecked.sol:UncheckedNotOptimized contract|                 |        |        |        |         |
|-------------------------------------------------|-----------------|--------|--------|--------|---------|
| Deployment Cost                                 | Deployment Size |        |        |        |         |
| 103091                                          | 260             |        |        |        |         |
| Function Name                                   | min             | avg    | median | max    | # calls |
| compare                                         | 125378          | 125378 | 125378 | 125378 | 1       |

Zero Address Optimization

| src/ZeroAddress.sol:ZeroAddressNotOptimized contract |                 |     |        |     |         |
|------------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                      | Deployment Size |     |        |     |         |
| 97249                                                | 232             |     |        |     |         |
| Function Name                                        | min             | avg | median | max | # calls |
| compare                                              | 321             | 321 | 321    | 321 | 1       |


| src/ZeroAddress.sol:ZeroAddressOptimized contract |                 |     |        |     |         |
|---------------------------------------------------|-----------------|-----|--------|-----|---------|
| Deployment Cost                                   | Deployment Size |     |        |     |         |
| 90979                                             | 203             |     |        |     |         |
| Function Name                                     | min             | avg | median | max | # calls |
| compare                                           | 258             | 258 | 258    | 258 | 1       |

About

List of gas optimizations for Solidity Smart Contracts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published