{
  "_format": "hh-sol-artifact-1",
  "contractName": "StargateFeeLibraryV01",
  "sourceName": "contracts/libraries/StargateFeeLibraryV01.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_factory",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "lpFeeBP",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "protocolFeeBP",
          "type": "uint256"
        }
      ],
      "name": "FeesUpdated",
      "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"
    },
    {
      "inputs": [],
      "name": "BP_DENOMINATOR",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "eqFeeBP",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "eqRewardBP",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "internalType": "contract Factory",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amountSD",
          "type": "uint256"
        }
      ],
      "name": "getFees",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "eqFee",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "eqReward",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "lpFee",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "protocolFee",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "lkbRemove",
              "type": "uint256"
            }
          ],
          "internalType": "struct Pool.SwapObj",
          "name": "s",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getVersion",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lpFeeBP",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "protocolFeeBP",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_lpFeeBP",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_protocolFeeBP",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_eqFeeBP",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_eqRewardBP",
          "type": "uint256"
        }
      ],
      "name": "setFees",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051610a8f380380610a8f83398101604081905261002f916100df565b60006100396100db565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180556001600160a01b0381166100b65760405162461bcd60e51b81526004016100ad9061010d565b60405180910390fd5b600280546001600160a01b0319166001600160a01b039290921691909117905561014e565b3390565b6000602082840312156100f0578081fd5b81516001600160a01b0381168114610106578182fd5b9392505050565b60208082526021908201527f4665654c6962726172793a20466163746f72792063616e6e6f742062652030786040820152600360fc1b606082015260800190565b6109328061015d6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806398a6c1cf1161007157806398a6c1cf1461013e578063abe685cd14610146578063c45a01551461014e578063c5fba0b814610156578063cc95f9b71461015e578063f2fde38b14610166576100b4565b80630d8e6e2c146100b95780631ab62430146100d75780636fcba377146100f7578063715018a61461010c578063838aa646146101145780638da5cb5b14610129575b600080fd5b6100c1610179565b6040516100ce919061078e565b60405180910390f35b6100ea6100e53660046106f4565b610198565b6040516100ce919061085a565b61010a610105366004610749565b610220565b005b61010a61034c565b61011c61040a565b6040516100ce919061089e565b610131610410565b6040516100ce919061077a565b61011c61041f565b61011c610425565b61013161042b565b61011c61043a565b61011c610440565b61010a6101743660046106d3565b610446565b6040805180820190915260058152640312e302e360dc1b602082015290565b6101a0610681565b6101c16127106101bb6004548561055a90919063ffffffff16565b906105bc565b60808201526003546101dc90612710906101bb90859061055a565b60608201526005546101f790612710906101bb90859061055a565b602082015260065461021290612710906101bb90859061055a565b604082015295945050505050565b610228610623565b6001600160a01b0316610239610410565b6001600160a01b031614610294576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6127106102ad826102a785818989610627565b90610627565b11156102d45760405162461bcd60e51b81526004016102cb90610823565b60405180910390fd5b60055460065411156102f85760405162461bcd60e51b81526004016102cb906107e1565b60038490556004839055600582905560068190556040517f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a19061033e90869086906108a7565b60405180910390a150505050565b610354610623565b6001600160a01b0316610365610410565b6001600160a01b0316146103c0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60065481565b6000546001600160a01b031690565b60035481565b61271081565b6002546001600160a01b031681565b60045481565b60055481565b61044e610623565b6001600160a01b031661045f610410565b6001600160a01b0316146104ba576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166104ff5760405162461bcd60e51b81526004018080602001828103825260268152602001806108b66026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610569575060006105b6565b8282028284828161057657fe5b04146105b35760405162461bcd60e51b81526004018080602001828103825260218152602001806108dc6021913960400191505060405180910390fd5b90505b92915050565b6000808211610612576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161061b57fe5b049392505050565b3390565b6000828201838110156105b3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b80356001600160a01b03811681146106ce57600080fd5b919050565b6000602082840312156106e4578081fd5b6106ed826106b7565b9392505050565b600080600080600060a0868803121561070b578081fd5b8535945060208601359350604086013561ffff8116811461072a578182fd5b9250610738606087016106b7565b949793965091946080013592915050565b6000806000806080858703121561075e578384fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b818110156107ba5785810183015185820160400152820161079e565b818111156107cb5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f4665654c6962726172793a2065712066656520706172616d20696e636f72726560408201526118dd60f21b606082015260800190565b6020808252601b908201527f4665654c6962726172793a2073756d2066656573203e20313030250000000000604082015260600190565b600060c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b90815260200190565b91825260208201526040019056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212201e174a14c7f3e5b38ba4657c98521b32ebc59ece7bb7b4e1fbac14e66337998464736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806398a6c1cf1161007157806398a6c1cf1461013e578063abe685cd14610146578063c45a01551461014e578063c5fba0b814610156578063cc95f9b71461015e578063f2fde38b14610166576100b4565b80630d8e6e2c146100b95780631ab62430146100d75780636fcba377146100f7578063715018a61461010c578063838aa646146101145780638da5cb5b14610129575b600080fd5b6100c1610179565b6040516100ce919061078e565b60405180910390f35b6100ea6100e53660046106f4565b610198565b6040516100ce919061085a565b61010a610105366004610749565b610220565b005b61010a61034c565b61011c61040a565b6040516100ce919061089e565b610131610410565b6040516100ce919061077a565b61011c61041f565b61011c610425565b61013161042b565b61011c61043a565b61011c610440565b61010a6101743660046106d3565b610446565b6040805180820190915260058152640312e302e360dc1b602082015290565b6101a0610681565b6101c16127106101bb6004548561055a90919063ffffffff16565b906105bc565b60808201526003546101dc90612710906101bb90859061055a565b60608201526005546101f790612710906101bb90859061055a565b602082015260065461021290612710906101bb90859061055a565b604082015295945050505050565b610228610623565b6001600160a01b0316610239610410565b6001600160a01b031614610294576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6127106102ad826102a785818989610627565b90610627565b11156102d45760405162461bcd60e51b81526004016102cb90610823565b60405180910390fd5b60055460065411156102f85760405162461bcd60e51b81526004016102cb906107e1565b60038490556004839055600582905560068190556040517f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a19061033e90869086906108a7565b60405180910390a150505050565b610354610623565b6001600160a01b0316610365610410565b6001600160a01b0316146103c0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60065481565b6000546001600160a01b031690565b60035481565b61271081565b6002546001600160a01b031681565b60045481565b60055481565b61044e610623565b6001600160a01b031661045f610410565b6001600160a01b0316146104ba576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166104ff5760405162461bcd60e51b81526004018080602001828103825260268152602001806108b66026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610569575060006105b6565b8282028284828161057657fe5b04146105b35760405162461bcd60e51b81526004018080602001828103825260218152602001806108dc6021913960400191505060405180910390fd5b90505b92915050565b6000808211610612576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161061b57fe5b049392505050565b3390565b6000828201838110156105b3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b80356001600160a01b03811681146106ce57600080fd5b919050565b6000602082840312156106e4578081fd5b6106ed826106b7565b9392505050565b600080600080600060a0868803121561070b578081fd5b8535945060208601359350604086013561ffff8116811461072a578182fd5b9250610738606087016106b7565b949793965091946080013592915050565b6000806000806080858703121561075e578384fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b818110156107ba5785810183015185820160400152820161079e565b818111156107cb5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f4665654c6962726172793a2065712066656520706172616d20696e636f72726560408201526118dd60f21b606082015260800190565b6020808252601b908201527f4665654c6962726172793a2073756d2066656573203e20313030250000000000604082015260600190565b600060c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b90815260200190565b91825260208201526040019056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212201e174a14c7f3e5b38ba4657c98521b32ebc59ece7bb7b4e1fbac14e66337998464736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
