import logging import pandas as pd import matplotlib.pyplot as plt log = logging.getLogger(__name__) # Initialize a DataFrame with max gas values for each function across different pool sizes # Row index: number of assets in the pool # Columns: function names # Cell values: max gas values gas_data = { 'allTokens': [7489, 25754, 48587, 117095, 231306], 'balanceOf': [2806, 2806, 2806, 2806, 2806], 'burn': [121374, 388107, 721563, 1722086, 3390257], 'burnSwap': [129791, 410564, 758861, 1799954, 3560756], 'mint': [149100, 425896, 771933, 1810329, 3541934], 'swap': [145931, 156792, 171186, 213066, 283078], 'swapMint': [429036, 2612211, 5339543, 13644860, 27527806] } # Create DataFrame with row indices as the number of assets in the pool gas_df = pd.DataFrame(gas_data, index=[2, 10, 20, 50, 100]) gas_df.index.name = 'Assets in Pool' # Print the DataFrame gas_df['swap'].plot(xticks=gas_df.index) plt.ylim(140_000, 300_000) plt.title('Swap Gas Cost') plt.show() gas_df[['mint', 'burn']].plot(xticks=gas_df.index) plt.ylim(40_000, 4_000_000) plt.title('Mint/Burn Gas Cost') plt.show() gas_df[['swapMint', 'burnSwap']].div(1_000_000).plot(xticks=gas_df.index) plt.title('SwapMint/BurnSwap Gas Cost') plt.ylim(0, 30) plt.ylabel('Gas Cost (millions)') plt.show()