exports.ContractAbis = {
  miniAbi: [
    {
      constant: true,
      inputs: [{ name: '_owner', type: 'address' }],
      name: 'balanceOf',
      outputs: [{ name: 'balance', type: 'uint256' }],
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'decimals',
      outputs: [{ name: '', type: 'uint8' }],
      type: 'function',
    },
  ],
  erc20TokenAbi: [
    {
      anonymous: false,
      inputs: [
        {
          indexed: true,
          internalType: 'address',
          name: 'owner',
          type: 'address',
        },
        {
          indexed: true,
          internalType: 'address',
          name: 'spender',
          type: 'address',
        },
        {
          indexed: false,
          internalType: 'uint256',
          name: 'value',
          type: 'uint256',
        },
      ],
      name: 'Approval',
      type: 'event',
    },
    {
      anonymous: false,
      inputs: [
        {
          indexed: true,
          internalType: 'address',
          name: 'from',
          type: 'address',
        },
        {
          indexed: true,
          internalType: 'address',
          name: 'to',
          type: 'address',
        },
        {
          indexed: false,
          internalType: 'uint256',
          name: 'value',
          type: 'uint256',
        },
      ],
      name: 'Transfer',
      type: 'event',
    },
    {
      constant: true,
      inputs: [],
      name: 'totalSupply',
      outputs: [
        {
          internalType: 'uint256',
          name: '',
          type: 'uint256',
        },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [
        {
          internalType: 'address',
          name: 'account',
          type: 'address',
        },
      ],
      name: 'balanceOf',
      outputs: [
        {
          internalType: 'uint256',
          name: '',
          type: 'uint256',
        },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        {
          internalType: 'address',
          name: 'recipient',
          type: 'address',
        },
        {
          internalType: 'uint256',
          name: 'amount',
          type: 'uint256',
        },
      ],
      name: 'transfer',
      outputs: [
        {
          internalType: 'bool',
          name: '',
          type: 'bool',
        },
      ],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [
        {
          internalType: 'address',
          name: 'owner',
          type: 'address',
        },
        {
          internalType: 'address',
          name: 'spender',
          type: 'address',
        },
      ],
      name: 'allowance',
      outputs: [
        {
          internalType: 'uint256',
          name: '',
          type: 'uint256',
        },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        {
          internalType: 'address',
          name: 'spender',
          type: 'address',
        },
        {
          internalType: 'uint256',
          name: 'amount',
          type: 'uint256',
        },
      ],
      name: 'approve',
      outputs: [
        {
          internalType: 'bool',
          name: '',
          type: 'bool',
        },
      ],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        {
          internalType: 'address',
          name: 'sender',
          type: 'address',
        },
        {
          internalType: 'address',
          name: 'recipient',
          type: 'address',
        },
        {
          internalType: 'uint256',
          name: 'amount',
          type: 'uint256',
        },
      ],
      name: 'transferFrom',
      outputs: [
        {
          internalType: 'bool',
          name: '',
          type: 'bool',
        },
      ],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        {
          internalType: 'address',
          name: 'spender',
          type: 'address',
        },
        {
          internalType: 'uint256',
          name: 'addedValue',
          type: 'uint256',
        },
      ],
      name: 'increaseAllowance',
      outputs: [
        {
          internalType: 'bool',
          name: '',
          type: 'bool',
        },
      ],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        {
          internalType: 'address',
          name: 'spender',
          type: 'address',
        },
        {
          internalType: 'uint256',
          name: 'subtractedValue',
          type: 'uint256',
        },
      ],
      name: 'decreaseAllowance',
      outputs: [
        {
          internalType: 'bool',
          name: '',
          type: 'bool',
        },
      ],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
  ],
  bVaultAbi: [
    {
      inputs: [
        { internalType: 'address', name: '_token', type: 'address' },
        { internalType: 'address', name: '_controller', type: 'address' },
        { internalType: 'address', name: 'whiteList', type: 'address' },
      ],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'constructor',
    },
    {
      anonymous: false,
      inputs: [
        {
          indexed: true,
          internalType: 'address',
          name: 'owner',
          type: 'address',
        },
        {
          indexed: true,
          internalType: 'address',
          name: 'spender',
          type: 'address',
        },
        {
          indexed: false,
          internalType: 'uint256',
          name: 'value',
          type: 'uint256',
        },
      ],
      name: 'Approval',
      type: 'event',
    },
    {
      anonymous: false,
      inputs: [
        {
          indexed: true,
          internalType: 'address',
          name: 'from',
          type: 'address',
        },
        { indexed: true, internalType: 'address', name: 'to', type: 'address' },
        {
          indexed: false,
          internalType: 'uint256',
          name: 'value',
          type: 'uint256',
        },
      ],
      name: 'Transfer',
      type: 'event',
    },
    {
      constant: true,
      inputs: [
        { internalType: 'address', name: 'owner', type: 'address' },
        { internalType: 'address', name: 'spender', type: 'address' },
      ],
      name: 'allowance',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'address', name: 'spender', type: 'address' },
        { internalType: 'uint256', name: 'amount', type: 'uint256' },
      ],
      name: 'approve',
      outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'available',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'balance',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [{ internalType: 'address', name: 'account', type: 'address' }],
      name: 'balanceOf',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'controller',
      outputs: [{ internalType: 'address', name: '', type: 'address' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'decimals',
      outputs: [{ internalType: 'uint8', name: '', type: 'uint8' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'address', name: 'spender', type: 'address' },
        { internalType: 'uint256', name: 'subtractedValue', type: 'uint256' },
      ],
      name: 'decreaseAllowance',
      outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [{ internalType: 'uint256', name: '_amount', type: 'uint256' }],
      name: 'deposit',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [],
      name: 'earn',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'getPricePerFullShare',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'governance',
      outputs: [{ internalType: 'address', name: '', type: 'address' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'address', name: 'spender', type: 'address' },
        { internalType: 'uint256', name: 'addedValue', type: 'uint256' },
      ],
      name: 'increaseAllowance',
      outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'max',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'min',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'name',
      outputs: [{ internalType: 'string', name: '', type: 'string' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [],
      name: 'pause',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [{ internalType: 'address', name: '', type: 'address' }],
      name: 'pauseRoles',
      outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'paused',
      outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [],
      name: 'rebalance',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'address', name: '_controller', type: 'address' },
      ],
      name: 'setController',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'address', name: '_governance', type: 'address' },
      ],
      name: 'setGovernance',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [{ internalType: 'uint256', name: '_min', type: 'uint256' }],
      name: 'setMin',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [{ internalType: 'address', name: 'admin', type: 'address' }],
      name: 'setPauseRole',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'uint256', name: '_withdrawalFee', type: 'uint256' },
      ],
      name: 'setWithdrawalFee',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'symbol',
      outputs: [{ internalType: 'string', name: '', type: 'string' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'token',
      outputs: [{ internalType: 'contract IERC20', name: '', type: 'address' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'totalSupply',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'address', name: 'recipient', type: 'address' },
        { internalType: 'uint256', name: 'amount', type: 'uint256' },
      ],
      name: 'transfer',
      outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'address', name: 'sender', type: 'address' },
        { internalType: 'address', name: 'recipient', type: 'address' },
        { internalType: 'uint256', name: 'amount', type: 'uint256' },
      ],
      name: 'transferFrom',
      outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [{ internalType: 'address', name: 'admin', type: 'address' }],
      name: 'unSetPauseRole',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'underlyingBalance',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [],
      name: 'unpause',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'whiteList',
      outputs: [
        { internalType: 'contract WhiteList', name: '', type: 'address' },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [{ internalType: 'uint256', name: '_shares', type: 'uint256' }],
      name: 'withdraw',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [],
      name: 'withdrawAll',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'withdrawalFee',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'withdrawalMax',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
  ],
  bStakingAbi: [
    {
      inputs: [
        { internalType: 'contract IERC20', name: '_bella', type: 'address' },
        { internalType: 'uint256', name: '_startTime', type: 'uint256' },
        { internalType: 'address', name: 'governance', type: 'address' },
      ],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'constructor',
    },
    {
      anonymous: false,
      inputs: [
        {
          indexed: true,
          internalType: 'address',
          name: 'user',
          type: 'address',
        },
        {
          indexed: true,
          internalType: 'uint256',
          name: 'pid',
          type: 'uint256',
        },
        {
          indexed: false,
          internalType: 'uint256',
          name: 'amount',
          type: 'uint256',
        },
      ],
      name: 'Deposit',
      type: 'event',
    },
    {
      anonymous: false,
      inputs: [
        {
          indexed: true,
          internalType: 'address',
          name: 'user',
          type: 'address',
        },
        {
          indexed: true,
          internalType: 'uint256',
          name: 'pid',
          type: 'uint256',
        },
        {
          indexed: false,
          internalType: 'uint256',
          name: 'amount',
          type: 'uint256',
        },
      ],
      name: 'EmergencyWithdraw',
      type: 'event',
    },
    {
      anonymous: false,
      inputs: [
        {
          indexed: true,
          internalType: 'address',
          name: 'previousOwner',
          type: 'address',
        },
        {
          indexed: true,
          internalType: 'address',
          name: 'newOwner',
          type: 'address',
        },
      ],
      name: 'OwnershipTransferred',
      type: 'event',
    },
    {
      anonymous: false,
      inputs: [
        {
          indexed: true,
          internalType: 'address',
          name: 'user',
          type: 'address',
        },
        {
          indexed: true,
          internalType: 'uint256',
          name: 'pid',
          type: 'uint256',
        },
        {
          indexed: false,
          internalType: 'uint256',
          name: 'amount',
          type: 'uint256',
        },
      ],
      name: 'Withdraw',
      type: 'event',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'uint256', name: '_allocPoint', type: 'uint256' },
        {
          internalType: 'contract IERC20',
          name: '_underlyingToken',
          type: 'address',
        },
        { internalType: 'uint256[3]', name: 'boost', type: 'uint256[3]' },
        { internalType: 'bool', name: '_withUpdate', type: 'bool' },
      ],
      name: 'add',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'bella',
      outputs: [{ internalType: 'contract IERC20', name: '', type: 'address' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'bellaPerSecond',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [
        { internalType: 'uint256', name: '', type: 'uint256' },
        { internalType: 'uint256', name: '', type: 'uint256' },
      ],
      name: 'boostInfo',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [{ internalType: 'uint256', name: '_pid', type: 'uint256' }],
      name: 'claimAllBella',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'uint256', name: '_pid', type: 'uint256' },
        { internalType: 'uint256', name: 'savingType', type: 'uint256' },
      ],
      name: 'claimBella',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [
        { internalType: 'address', name: '', type: 'address' },
        { internalType: 'uint256', name: '', type: 'uint256' },
      ],
      name: 'claimingBellas',
      outputs: [
        { internalType: 'uint256', name: 'amount', type: 'uint256' },
        { internalType: 'uint256', name: 'unlockTime', type: 'uint256' },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [],
      name: 'collectBella',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'collectiableBella',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'currentUnlockCycle',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'delayedBella',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'uint256', name: '_pid', type: 'uint256' },
        { internalType: 'uint256', name: '_amount', type: 'uint256' },
        { internalType: 'uint256', name: 'savingType', type: 'uint256' },
      ],
      name: 'deposit',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [
        { internalType: 'uint256', name: '_pid', type: 'uint256' },
        { internalType: 'address', name: '_user', type: 'address' },
        { internalType: 'uint256', name: 'savingType', type: 'uint256' },
      ],
      name: 'earnedBella',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [
        { internalType: 'uint256', name: '_pid', type: 'uint256' },
        { internalType: 'address', name: '_user', type: 'address' },
      ],
      name: 'earnedBellaAll',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [{ internalType: 'address', name: '_user', type: 'address' }],
      name: 'earnedBellaAllPool',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'uint256', name: '_pid', type: 'uint256' },
        { internalType: 'uint256', name: 'savingType', type: 'uint256' },
      ],
      name: 'emergencyWithdraw',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [
        { internalType: 'uint256', name: '_pid', type: 'uint256' },
        { internalType: 'address', name: 'user', type: 'address' },
      ],
      name: 'getBtokenStaked',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'isOwner',
      outputs: [{ internalType: 'bool', name: '', type: 'bool' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'uint256', name: 'amount', type: 'uint256' },
        { internalType: 'uint256', name: 'nextUnlockCycle', type: 'uint256' },
      ],
      name: 'lock',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [],
      name: 'massUpdatePools',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'owner',
      outputs: [{ internalType: 'address', name: '', type: 'address' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      name: 'poolInfo',
      outputs: [
        {
          internalType: 'contract IERC20',
          name: 'underlyingToken',
          type: 'address',
        },
        { internalType: 'uint256', name: 'allocPoint', type: 'uint256' },
        { internalType: 'uint256', name: 'lastRewardTime', type: 'uint256' },
        { internalType: 'uint256', name: 'accBellaPerShare', type: 'uint256' },
        {
          internalType: 'uint256',
          name: 'totalEffectiveAmount',
          type: 'uint256',
        },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'poolLength',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [],
      name: 'renounceOwnership',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'uint256', name: '_pid', type: 'uint256' },
        { internalType: 'uint256', name: '_allocPoint', type: 'uint256' },
      ],
      name: 'set',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'startTime',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'totalAllocPoint',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [{ internalType: 'address', name: 'newOwner', type: 'address' }],
      name: 'transferOwnership',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'unlockEndTimestamp',
      outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [{ internalType: 'uint256', name: '_pid', type: 'uint256' }],
      name: 'updatePool',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [
        { internalType: 'uint256', name: '', type: 'uint256' },
        { internalType: 'address', name: '', type: 'address' },
        { internalType: 'uint256', name: '', type: 'uint256' },
      ],
      name: 'userInfos',
      outputs: [
        { internalType: 'uint256', name: 'amount', type: 'uint256' },
        { internalType: 'uint256', name: 'effectiveAmount', type: 'uint256' },
        { internalType: 'uint256', name: 'rewardDebt', type: 'uint256' },
        { internalType: 'uint256', name: 'earnedBella', type: 'uint256' },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        { internalType: 'uint256', name: '_pid', type: 'uint256' },
        { internalType: 'uint256', name: '_amount', type: 'uint256' },
        { internalType: 'uint256', name: 'savingType', type: 'uint256' },
      ],
      name: 'withdraw',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [{ internalType: 'uint256', name: '_pid', type: 'uint256' }],
      name: 'withdrawAll',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
  ],
  bLockerAbi: [
    {
      inputs: [
        {
          internalType: 'address',
          name: 'governence',
          type: 'address',
        },
      ],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'constructor',
    },
    {
      anonymous: false,
      inputs: [
        {
          indexed: true,
          internalType: 'address',
          name: 'previousOwner',
          type: 'address',
        },
        {
          indexed: true,
          internalType: 'address',
          name: 'newOwner',
          type: 'address',
        },
      ],
      name: 'OwnershipTransferred',
      type: 'event',
    },
    {
      constant: true,
      inputs: [],
      name: 'bel',
      outputs: [
        {
          internalType: 'contract IERC20',
          name: '',
          type: 'address',
        },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'isOwner',
      outputs: [
        {
          internalType: 'bool',
          name: '',
          type: 'bool',
        },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'owner',
      outputs: [
        {
          internalType: 'address',
          name: '',
          type: 'address',
        },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [],
      name: 'renounceOwnership',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [
        {
          internalType: 'uint256',
          name: '',
          type: 'uint256',
        },
      ],
      name: 'saved',
      outputs: [
        {
          internalType: 'uint256',
          name: '',
          type: 'uint256',
        },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        {
          internalType: 'address',
          name: 'newOwner',
          type: 'address',
        },
      ],
      name: 'transferOwnership',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [
        {
          internalType: 'address',
          name: '',
          type: 'address',
        },
        {
          internalType: 'uint256',
          name: '',
          type: 'uint256',
        },
      ],
      name: 'userSavings',
      outputs: [
        {
          internalType: 'uint256',
          name: 'amount',
          type: 'uint256',
        },
        {
          internalType: 'uint256',
          name: 'unlockTime',
          type: 'uint256',
        },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        {
          internalType: 'uint256',
          name: 'amount',
          type: 'uint256',
        },
        {
          internalType: 'uint256',
          name: 'savingType',
          type: 'uint256',
        },
      ],
      name: 'lock',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: false,
      inputs: [],
      name: 'withdraw',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      constant: true,
      inputs: [],
      name: 'pendingReward',
      outputs: [
        {
          internalType: 'uint256',
          name: '',
          type: 'uint256',
        },
      ],
      payable: false,
      stateMutability: 'view',
      type: 'function',
    },
    {
      constant: false,
      inputs: [
        {
          internalType: 'uint256',
          name: 'amount',
          type: 'uint256',
        },
      ],
      name: 'withdrawDust',
      outputs: [],
      payable: false,
      stateMutability: 'nonpayable',
      type: 'function',
    },
  ],
  crvPoolAbi: [
    {
      name: 'TokenExchange',
      inputs: [
        { type: 'address', name: 'buyer', indexed: true },
        { type: 'int128', name: 'sold_id', indexed: false },
        { type: 'uint256', name: 'tokens_sold', indexed: false },
        { type: 'int128', name: 'bought_id', indexed: false },
        { type: 'uint256', name: 'tokens_bought', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'AddLiquidity',
      inputs: [
        { type: 'address', name: 'provider', indexed: true },
        { type: 'uint256[3]', name: 'token_amounts', indexed: false },
        { type: 'uint256[3]', name: 'fees', indexed: false },
        { type: 'uint256', name: 'invariant', indexed: false },
        { type: 'uint256', name: 'token_supply', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'RemoveLiquidity',
      inputs: [
        { type: 'address', name: 'provider', indexed: true },
        { type: 'uint256[3]', name: 'token_amounts', indexed: false },
        { type: 'uint256[3]', name: 'fees', indexed: false },
        { type: 'uint256', name: 'token_supply', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'RemoveLiquidityOne',
      inputs: [
        { type: 'address', name: 'provider', indexed: true },
        { type: 'uint256', name: 'token_amount', indexed: false },
        { type: 'uint256', name: 'coin_amount', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'RemoveLiquidityImbalance',
      inputs: [
        { type: 'address', name: 'provider', indexed: true },
        { type: 'uint256[3]', name: 'token_amounts', indexed: false },
        { type: 'uint256[3]', name: 'fees', indexed: false },
        { type: 'uint256', name: 'invariant', indexed: false },
        { type: 'uint256', name: 'token_supply', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'CommitNewAdmin',
      inputs: [
        { type: 'uint256', name: 'deadline', indexed: true },
        { type: 'address', name: 'admin', indexed: true },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'NewAdmin',
      inputs: [{ type: 'address', name: 'admin', indexed: true }],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'CommitNewFee',
      inputs: [
        { type: 'uint256', name: 'deadline', indexed: true },
        { type: 'uint256', name: 'fee', indexed: false },
        { type: 'uint256', name: 'admin_fee', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'NewFee',
      inputs: [
        { type: 'uint256', name: 'fee', indexed: false },
        { type: 'uint256', name: 'admin_fee', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'RampA',
      inputs: [
        { type: 'uint256', name: 'old_A', indexed: false },
        { type: 'uint256', name: 'new_A', indexed: false },
        { type: 'uint256', name: 'initial_time', indexed: false },
        { type: 'uint256', name: 'future_time', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'StopRampA',
      inputs: [
        { type: 'uint256', name: 'A', indexed: false },
        { type: 'uint256', name: 't', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      outputs: [],
      inputs: [
        { type: 'address', name: '_owner' },
        { type: 'address[3]', name: '_coins' },
        { type: 'address', name: '_pool_token' },
        { type: 'uint256', name: '_A' },
        { type: 'uint256', name: '_fee' },
        { type: 'uint256', name: '_admin_fee' },
      ],
      stateMutability: 'nonpayable',
      type: 'constructor',
    },
    {
      name: 'A',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 5227,
    },
    {
      name: 'get_virtual_price',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1133537,
    },
    {
      name: 'calc_token_amount',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [
        { type: 'uint256[3]', name: 'amounts' },
        { type: 'bool', name: 'deposit' },
      ],
      stateMutability: 'view',
      type: 'function',
      gas: 4508776,
    },
    {
      name: 'add_liquidity',
      outputs: [],
      inputs: [
        { type: 'uint256[3]', name: 'amounts' },
        { type: 'uint256', name: 'min_mint_amount' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 6954858,
    },
    {
      name: 'get_dy',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [
        { type: 'int128', name: 'i' },
        { type: 'int128', name: 'j' },
        { type: 'uint256', name: 'dx' },
      ],
      stateMutability: 'view',
      type: 'function',
      gas: 2673791,
    },
    {
      name: 'get_dy_underlying',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [
        { type: 'int128', name: 'i' },
        { type: 'int128', name: 'j' },
        { type: 'uint256', name: 'dx' },
      ],
      stateMutability: 'view',
      type: 'function',
      gas: 2673474,
    },
    {
      name: 'exchange',
      outputs: [],
      inputs: [
        { type: 'int128', name: 'i' },
        { type: 'int128', name: 'j' },
        { type: 'uint256', name: 'dx' },
        { type: 'uint256', name: 'min_dy' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 2818066,
    },
    {
      name: 'remove_liquidity',
      outputs: [],
      inputs: [
        { type: 'uint256', name: '_amount' },
        { type: 'uint256[3]', name: 'min_amounts' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 192846,
    },
    {
      name: 'remove_liquidity_imbalance',
      outputs: [],
      inputs: [
        { type: 'uint256[3]', name: 'amounts' },
        { type: 'uint256', name: 'max_burn_amount' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 6951851,
    },
    {
      name: 'calc_withdraw_one_coin',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [
        { type: 'uint256', name: '_token_amount' },
        { type: 'int128', name: 'i' },
      ],
      stateMutability: 'view',
      type: 'function',
      gas: 1102,
    },
    {
      name: 'remove_liquidity_one_coin',
      outputs: [],
      inputs: [
        { type: 'uint256', name: '_token_amount' },
        { type: 'int128', name: 'i' },
        { type: 'uint256', name: 'min_amount' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 4025523,
    },
    {
      name: 'ramp_A',
      outputs: [],
      inputs: [
        { type: 'uint256', name: '_future_A' },
        { type: 'uint256', name: '_future_time' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 151919,
    },
    {
      name: 'stop_ramp_A',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 148637,
    },
    {
      name: 'commit_new_fee',
      outputs: [],
      inputs: [
        { type: 'uint256', name: 'new_fee' },
        { type: 'uint256', name: 'new_admin_fee' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 110461,
    },
    {
      name: 'apply_new_fee',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 97242,
    },
    {
      name: 'revert_new_parameters',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 21895,
    },
    {
      name: 'commit_transfer_ownership',
      outputs: [],
      inputs: [{ type: 'address', name: '_owner' }],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 74572,
    },
    {
      name: 'apply_transfer_ownership',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 60710,
    },
    {
      name: 'revert_transfer_ownership',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 21985,
    },
    {
      name: 'admin_balances',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'uint256', name: 'i' }],
      stateMutability: 'view',
      type: 'function',
      gas: 3481,
    },
    {
      name: 'withdraw_admin_fees',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 21502,
    },
    {
      name: 'donate_admin_fees',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 111389,
    },
    {
      name: 'kill_me',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 37998,
    },
    {
      name: 'unkill_me',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 22135,
    },
    {
      name: 'coins',
      outputs: [{ type: 'address', name: '' }],
      inputs: [{ type: 'uint256', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2220,
    },
    {
      name: 'balances',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'uint256', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2250,
    },
    {
      name: 'fee',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2171,
    },
    {
      name: 'admin_fee',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2201,
    },
    {
      name: 'owner',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2231,
    },
    {
      name: 'initial_A',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2261,
    },
    {
      name: 'future_A',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2291,
    },
    {
      name: 'initial_A_time',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2321,
    },
    {
      name: 'future_A_time',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2351,
    },
    {
      name: 'admin_actions_deadline',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2381,
    },
    {
      name: 'transfer_ownership_deadline',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2411,
    },
    {
      name: 'future_fee',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2441,
    },
    {
      name: 'future_admin_fee',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2471,
    },
    {
      name: 'future_owner',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2501,
    },
  ],
  crvPoolGaugeAbi: [
    {
      name: 'Deposit',
      inputs: [
        { type: 'address', name: 'provider', indexed: true },
        { type: 'uint256', name: 'value', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'Withdraw',
      inputs: [
        { type: 'address', name: 'provider', indexed: true },
        { type: 'uint256', name: 'value', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'UpdateLiquidityLimit',
      inputs: [
        { type: 'address', name: 'user', indexed: false },
        { type: 'uint256', name: 'original_balance', indexed: false },
        { type: 'uint256', name: 'original_supply', indexed: false },
        { type: 'uint256', name: 'working_balance', indexed: false },
        { type: 'uint256', name: 'working_supply', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      outputs: [],
      inputs: [
        { type: 'address', name: 'lp_addr' },
        { type: 'address', name: '_minter' },
      ],
      stateMutability: 'nonpayable',
      type: 'constructor',
    },
    {
      name: 'user_checkpoint',
      outputs: [{ type: 'bool', name: '' }],
      inputs: [{ type: 'address', name: 'addr' }],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 2079152,
    },
    {
      name: 'claimable_tokens',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'addr' }],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 1998318,
    },
    {
      name: 'kick',
      outputs: [],
      inputs: [{ type: 'address', name: 'addr' }],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 2084532,
    },
    {
      name: 'set_approve_deposit',
      outputs: [],
      inputs: [
        { type: 'address', name: 'addr' },
        { type: 'bool', name: 'can_deposit' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 35766,
    },
    {
      name: 'deposit',
      outputs: [],
      inputs: [{ type: 'uint256', name: '_value' }],
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      name: 'deposit',
      outputs: [],
      inputs: [
        { type: 'uint256', name: '_value' },
        { type: 'address', name: 'addr' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      name: 'withdraw',
      outputs: [],
      inputs: [{ type: 'uint256', name: '_value' }],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 2208318,
    },
    {
      name: 'integrate_checkpoint',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2297,
    },
    {
      name: 'minter',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1421,
    },
    {
      name: 'crv_token',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1451,
    },
    {
      name: 'lp_token',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1481,
    },
    {
      name: 'controller',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1511,
    },
    {
      name: 'voting_escrow',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1541,
    },
    {
      name: 'balanceOf',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 1725,
    },
    {
      name: 'totalSupply',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1601,
    },
    {
      name: 'future_epoch_time',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1631,
    },
    {
      name: 'approved_to_deposit',
      outputs: [{ type: 'bool', name: '' }],
      inputs: [
        { type: 'address', name: 'arg0' },
        { type: 'address', name: 'arg1' },
      ],
      stateMutability: 'view',
      type: 'function',
      gas: 1969,
    },
    {
      name: 'working_balances',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 1845,
    },
    {
      name: 'working_supply',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1721,
    },
    {
      name: 'period',
      outputs: [{ type: 'int128', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1751,
    },
    {
      name: 'period_timestamp',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'uint256', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 1890,
    },
    {
      name: 'integrate_inv_supply',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'uint256', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 1920,
    },
    {
      name: 'integrate_inv_supply_of',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 1995,
    },
    {
      name: 'integrate_checkpoint_of',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2025,
    },
    {
      name: 'integrate_fraction',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2055,
    },
    {
      name: 'inflation_rate',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1931,
    },
  ],
  crvGaugeControllerAbi: [
    {
      name: 'CommitOwnership',
      inputs: [{ type: 'address', name: 'admin', indexed: false }],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'ApplyOwnership',
      inputs: [{ type: 'address', name: 'admin', indexed: false }],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'AddType',
      inputs: [
        { type: 'string', name: 'name', indexed: false },
        { type: 'int128', name: 'type_id', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'NewTypeWeight',
      inputs: [
        { type: 'int128', name: 'type_id', indexed: false },
        { type: 'uint256', name: 'time', indexed: false },
        { type: 'uint256', name: 'weight', indexed: false },
        { type: 'uint256', name: 'total_weight', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'NewGaugeWeight',
      inputs: [
        { type: 'address', name: 'gauge_address', indexed: false },
        { type: 'uint256', name: 'time', indexed: false },
        { type: 'uint256', name: 'weight', indexed: false },
        { type: 'uint256', name: 'total_weight', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'VoteForGauge',
      inputs: [
        { type: 'uint256', name: 'time', indexed: false },
        { type: 'address', name: 'user', indexed: false },
        { type: 'address', name: 'gauge_addr', indexed: false },
        { type: 'uint256', name: 'weight', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      name: 'NewGauge',
      inputs: [
        { type: 'address', name: 'addr', indexed: false },
        { type: 'int128', name: 'gauge_type', indexed: false },
        { type: 'uint256', name: 'weight', indexed: false },
      ],
      anonymous: false,
      type: 'event',
    },
    {
      outputs: [],
      inputs: [
        { type: 'address', name: '_token' },
        { type: 'address', name: '_voting_escrow' },
      ],
      stateMutability: 'nonpayable',
      type: 'constructor',
    },
    {
      name: 'commit_transfer_ownership',
      outputs: [],
      inputs: [{ type: 'address', name: 'addr' }],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 37597,
    },
    {
      name: 'apply_transfer_ownership',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 38497,
    },
    {
      name: 'gauge_types',
      outputs: [{ type: 'int128', name: '' }],
      inputs: [{ type: 'address', name: '_addr' }],
      stateMutability: 'view',
      type: 'function',
      gas: 1625,
    },
    {
      name: 'add_gauge',
      outputs: [],
      inputs: [
        { type: 'address', name: 'addr' },
        { type: 'int128', name: 'gauge_type' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      name: 'add_gauge',
      outputs: [],
      inputs: [
        { type: 'address', name: 'addr' },
        { type: 'int128', name: 'gauge_type' },
        { type: 'uint256', name: 'weight' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      name: 'checkpoint',
      outputs: [],
      inputs: [],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 18033784416,
    },
    {
      name: 'checkpoint_gauge',
      outputs: [],
      inputs: [{ type: 'address', name: 'addr' }],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 18087678795,
    },
    {
      name: 'gauge_relative_weight',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'addr' }],
      stateMutability: 'view',
      type: 'function',
    },
    {
      name: 'gauge_relative_weight',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [
        { type: 'address', name: 'addr' },
        { type: 'uint256', name: 'time' },
      ],
      stateMutability: 'view',
      type: 'function',
    },
    {
      name: 'gauge_relative_weight_write',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'addr' }],
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      name: 'gauge_relative_weight_write',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [
        { type: 'address', name: 'addr' },
        { type: 'uint256', name: 'time' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      name: 'add_type',
      outputs: [],
      inputs: [{ type: 'string', name: '_name' }],
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      name: 'add_type',
      outputs: [],
      inputs: [
        { type: 'string', name: '_name' },
        { type: 'uint256', name: 'weight' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
    },
    {
      name: 'change_type_weight',
      outputs: [],
      inputs: [
        { type: 'int128', name: 'type_id' },
        { type: 'uint256', name: 'weight' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 36246310050,
    },
    {
      name: 'change_gauge_weight',
      outputs: [],
      inputs: [
        { type: 'address', name: 'addr' },
        { type: 'uint256', name: 'weight' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 36354170809,
    },
    {
      name: 'vote_for_gauge_weights',
      outputs: [],
      inputs: [
        { type: 'address', name: '_gauge_addr' },
        { type: 'uint256', name: '_user_weight' },
      ],
      stateMutability: 'nonpayable',
      type: 'function',
      gas: 18142052127,
    },
    {
      name: 'get_gauge_weight',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'addr' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2974,
    },
    {
      name: 'get_type_weight',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'int128', name: 'type_id' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2977,
    },
    {
      name: 'get_total_weight',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2693,
    },
    {
      name: 'get_weights_sum_per_type',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'int128', name: 'type_id' }],
      stateMutability: 'view',
      type: 'function',
      gas: 3109,
    },
    {
      name: 'admin',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1841,
    },
    {
      name: 'future_admin',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1871,
    },
    {
      name: 'token',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1901,
    },
    {
      name: 'voting_escrow',
      outputs: [{ type: 'address', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1931,
    },
    {
      name: 'n_gauge_types',
      outputs: [{ type: 'int128', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1961,
    },
    {
      name: 'n_gauges',
      outputs: [{ type: 'int128', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 1991,
    },
    {
      name: 'gauge_type_names',
      outputs: [{ type: 'string', name: '' }],
      inputs: [{ type: 'int128', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 8628,
    },
    {
      name: 'gauges',
      outputs: [{ type: 'address', name: '' }],
      inputs: [{ type: 'uint256', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2160,
    },
    {
      name: 'vote_user_slopes',
      outputs: [
        { type: 'uint256', name: 'slope' },
        { type: 'uint256', name: 'power' },
        { type: 'uint256', name: 'end' },
      ],
      inputs: [
        { type: 'address', name: 'arg0' },
        { type: 'address', name: 'arg1' },
      ],
      stateMutability: 'view',
      type: 'function',
      gas: 5020,
    },
    {
      name: 'vote_user_power',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2265,
    },
    {
      name: 'last_user_vote',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [
        { type: 'address', name: 'arg0' },
        { type: 'address', name: 'arg1' },
      ],
      stateMutability: 'view',
      type: 'function',
      gas: 2449,
    },
    {
      name: 'points_weight',
      outputs: [
        { type: 'uint256', name: 'bias' },
        { type: 'uint256', name: 'slope' },
      ],
      inputs: [
        { type: 'address', name: 'arg0' },
        { type: 'uint256', name: 'arg1' },
      ],
      stateMutability: 'view',
      type: 'function',
      gas: 3859,
    },
    {
      name: 'time_weight',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'address', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2355,
    },
    {
      name: 'points_sum',
      outputs: [
        { type: 'uint256', name: 'bias' },
        { type: 'uint256', name: 'slope' },
      ],
      inputs: [
        { type: 'int128', name: 'arg0' },
        { type: 'uint256', name: 'arg1' },
      ],
      stateMutability: 'view',
      type: 'function',
      gas: 3970,
    },
    {
      name: 'time_sum',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'uint256', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2370,
    },
    {
      name: 'points_total',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'uint256', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2406,
    },
    {
      name: 'time_total',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [],
      stateMutability: 'view',
      type: 'function',
      gas: 2321,
    },
    {
      name: 'points_type_weight',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [
        { type: 'int128', name: 'arg0' },
        { type: 'uint256', name: 'arg1' },
      ],
      stateMutability: 'view',
      type: 'function',
      gas: 2671,
    },
    {
      name: 'time_type_weight',
      outputs: [{ type: 'uint256', name: '' }],
      inputs: [{ type: 'uint256', name: 'arg0' }],
      stateMutability: 'view',
      type: 'function',
      gas: 2490,
    },
  ],
};
