
let abis = {};

abis.compoundv1 = {
  "TokenExchange": "event TokenExchange(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought)",
  "TokenExchangeUnderlying": "event TokenExchangeUnderlying(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought)",
  "AddLiquidity": "event AddLiquidity(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 invariant, uint256 token_supply)",
  "RemoveLiquidity": "event RemoveLiquidity(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 token_supply)",
  "RemoveLiquidityImbalance": "event RemoveLiquidityImbalance(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 invariant, uint256 token_supply)",
  "CommitNewAdmin": "event CommitNewAdmin(uint256 indexed deadline, address indexed admin)",
  "NewAdmin": "event NewAdmin(address indexed admin)",
  "CommitNewParameters": "event CommitNewParameters(uint256 indexed deadline, uint256 A, uint256 fee, uint256 admin_fee)",
  "NewParameters": "event NewParameters(uint256 A, uint256 fee, uint256 admin_fee)",
  "get_virtual_price": "uint256:get_virtual_price",
  "calc_token_amount": "function calc_token_amount(uint256[2] amounts, bool deposit) view returns (uint256 out) @4239939",
  "add_liquidity": "function add_liquidity(uint256[2] amounts, uint256 min_mint_amount) @6479997",
  "get_dy": "function get_dy(int128 i, int128 j, uint256 dx) view returns (uint256 out) @2543681",
  "get_dx": "function get_dx(int128 i, int128 j, uint256 dy) view returns (uint256 out) @2543687",
  "get_dy_underlying": "function get_dy_underlying(int128 i, int128 j, uint256 dx) view returns (uint256 out) @2543506",
  "get_dx_underlying": "function get_dx_underlying(int128 i, int128 j, uint256 dy) view returns (uint256 out) @2543512",
  "exchange": "function exchange(int128 i, int128 j, uint256 dx, uint256 min_dy) @5184573",
  "exchange_underlying": "function exchange_underlying(int128 i, int128 j, uint256 dx, uint256 min_dy) @5200817",
  "remove_liquidity": "function remove_liquidity(uint256 _amount, uint256[2] min_amounts) @153898",
  "remove_liquidity_imbalance": "function remove_liquidity_imbalance(uint256[2] amounts, uint256 max_burn_amount) @6479708",
  "commit_new_parameters": "function commit_new_parameters(uint256 amplification, uint256 new_fee, uint256 new_admin_fee) @146105",
  "apply_new_parameters": "function apply_new_parameters() @133512",
  "revert_new_parameters": "function revert_new_parameters() @21835",
  "commit_transfer_ownership": "function commit_transfer_ownership(address _owner) @74512",
  "apply_transfer_ownership": "function apply_transfer_ownership() @60568",
  "revert_transfer_ownership": "function revert_transfer_ownership() @21925",
  "withdraw_admin_fees": "function withdraw_admin_fees() @12831",
  "kill_me": "function kill_me() @37878",
  "unkill_me": "function unkill_me() @22015",
  "coins": "function coins(int128 arg0) view returns (address out) @2190",
  "underlying_coins": "function underlying_coins(int128 arg0) view returns (address out) @2220",
  "balances": "function balances(int128 arg0) view returns (uint256 out) @2250",
  "A": "uint256:A",
  "fee": "uint256:fee",
  "admin_fee": "uint256:admin_fee",
  "owner": "address:owner",
  "admin_actions_deadline": "uint256:admin_actions_deadline",
  "transfer_ownership_deadline": "uint256:transfer_ownership_deadline",
  "future_A": "uint256:future_A",
  "future_fee": "uint256:future_fee",
  "future_admin_fee": "uint256:future_admin_fee",
  "future_owner": "address:future_owner"
}
abis.abiNew ={
  "TokenExchange": "event TokenExchange(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought)",
  "TokenExchangeUnderlying": "event TokenExchangeUnderlying(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought)",
  "AddLiquidity": "event AddLiquidity(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 invariant, uint256 token_supply)",
  "RemoveLiquidity": "event RemoveLiquidity(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 token_supply)",
  "RemoveLiquidityOne": "event RemoveLiquidityOne(address indexed provider, uint256 token_amount, uint256 coin_amount, uint256 token_supply)",
  "RemoveLiquidityImbalance": "event RemoveLiquidityImbalance(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 invariant, uint256 token_supply)",
  "CommitNewAdmin": "event CommitNewAdmin(uint256 indexed deadline, address indexed admin)",
  "NewAdmin": "event NewAdmin(address indexed admin)",
  "CommitNewFee": "event CommitNewFee(uint256 indexed deadline, uint256 fee, uint256 admin_fee)",
  "NewFee": "event NewFee(uint256 fee, uint256 admin_fee)",
  "RampA": "event RampA(uint256 old_A, uint256 new_A, uint256 initial_time, uint256 future_time)",
  "StopRampA": "event StopRampA(uint256 A, uint256 t)",
  "A": "uint256:A",
  "A_precise": "uint256:A_precise",
  "get_virtual_price": "uint256:get_virtual_price",
  "calc_token_amount": "function calc_token_amount(uint256[2] amounts, bool is_deposit) view returns (uint256) @3938567",
  "add_liquidity": "function add_liquidity(uint256[2] amounts, uint256 min_mint_amount) returns (uint256) @6136485",
  "get_dy": "function get_dy(int128 i, int128 j, uint256 dx) view returns (uint256) @2390018",
  "get_dy_underlying": "function get_dy_underlying(int128 i, int128 j, uint256 dx) view returns (uint256) @2393224",
  "exchange": "function exchange(int128 i, int128 j, uint256 dx, uint256 min_dy) returns (uint256) @2617039",
  "exchange_underlying": "function exchange_underlying(int128 i, int128 j, uint256 dx, uint256 min_dy) returns (uint256) @2631854",
  "remove_liquidity": "function remove_liquidity(uint256 _amount, uint256[2] min_amounts) returns (uint256[2]) @163158",
  "remove_liquidity_imbalance": "function remove_liquidity_imbalance(uint256[2] amounts, uint256 max_burn_amount) returns (uint256) @6136334",
  "calc_withdraw_one_coin": "function calc_withdraw_one_coin(uint256 _token_amount, int128 i) view returns (uint256) @4389",
  "remove_liquidity_one_coin": "function remove_liquidity_one_coin(uint256 _token_amount, int128 i, uint256 _min_amount) returns (uint256) @3826262",
  "ramp_A": "function ramp_A(uint256 _future_A, uint256 _future_time) @151894",
  "stop_ramp_A": "function stop_ramp_A() @148655",
  "commit_new_fee": "function commit_new_fee(uint256 new_fee, uint256 new_admin_fee) @110491",
  "apply_new_fee": "function apply_new_fee() @97272",
  "revert_new_parameters": "function revert_new_parameters() @21925",
  "commit_transfer_ownership": "function commit_transfer_ownership(address _owner) @74663",
  "apply_transfer_ownership": "function apply_transfer_ownership() @60740",
  "revert_transfer_ownership": "function revert_transfer_ownership() @22015",
  "admin_balances": "function admin_balances(uint256 i) view returns (uint256) @3511",
  "withdraw_admin_fees": "function withdraw_admin_fees() @9232",
  "donate_admin_fees": "function donate_admin_fees() @74995",
  "kill_me": "function kill_me() @38028",
  "unkill_me": "function unkill_me() @22165",
  "coins": "function coins(uint256 arg0) view returns (address) @2250",
  "balances": "function balances(uint256 arg0) view returns (uint256) @2280",
  "fee": "uint256:fee",
  "admin_fee": "uint256:admin_fee",
  "owner": "address:owner",
  "token": "address:token",
  "base_pool": "address:base_pool",
  "base_virtual_price": "uint256:base_virtual_price",
  "base_cache_updated": "uint256:base_cache_updated",
  "base_coins": "function base_coins(uint256 arg0) view returns (address) @2520",
  "initial_A": "uint256:initial_A",
  "future_A": "uint256:future_A",
  "initial_A_time": "uint256:initial_A_time",
  "future_A_time": "uint256:future_A_time",
  "admin_actions_deadline": "uint256:admin_actions_deadline",
  "transfer_ownership_deadline": "uint256:transfer_ownership_deadline",
  "future_fee": "uint256:future_fee",
  "future_admin_fee": "uint256:future_admin_fee",
  "future_owner": "address:future_owner"
}
abis.abisBTC ={
  "TokenExchange": "event TokenExchange(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought)",
  "AddLiquidity": "event AddLiquidity(address indexed provider, uint256[3] token_amounts, uint256[3] fees, uint256 invariant, uint256 token_supply)",
  "RemoveLiquidity": "event RemoveLiquidity(address indexed provider, uint256[3] token_amounts, uint256[3] fees, uint256 token_supply)",
  "RemoveLiquidityOne": "event RemoveLiquidityOne(address indexed provider, uint256 token_amount, uint256 coin_amount)",
  "RemoveLiquidityImbalance": "event RemoveLiquidityImbalance(address indexed provider, uint256[3] token_amounts, uint256[3] fees, uint256 invariant, uint256 token_supply)",
  "CommitNewAdmin": "event CommitNewAdmin(uint256 indexed deadline, address indexed admin)",
  "NewAdmin": "event NewAdmin(address indexed admin)",
  "CommitNewFee": "event CommitNewFee(uint256 indexed deadline, uint256 fee, uint256 admin_fee)",
  "NewFee": "event NewFee(uint256 fee, uint256 admin_fee)",
  "RampA": "event RampA(uint256 old_A, uint256 new_A, uint256 initial_time, uint256 future_time)",
  "StopRampA": "event StopRampA(uint256 A, uint256 t)",
  "A": "uint256:A",
  "get_virtual_price": "uint256:get_virtual_price",
  "calc_token_amount": "function calc_token_amount(uint256[3] amounts, bool deposit) view returns (uint256) @4526955",
  "add_liquidity": "function add_liquidity(uint256[3] amounts, uint256 min_mint_amount) @6972762",
  "get_dy": "function get_dy(int128 i, int128 j, uint256 dx) view returns (uint256) @2687932",
  "get_dy_underlying": "function get_dy_underlying(int128 i, int128 j, uint256 dx) view returns (uint256) @2687745",
  "exchange": "function exchange(int128 i, int128 j, uint256 dx, uint256 min_dy) @5499133",
  "remove_liquidity": "function remove_liquidity(uint256 _amount, uint256[3] min_amounts) @196975",
  "remove_liquidity_imbalance": "function remove_liquidity_imbalance(uint256[3] amounts, uint256 max_burn_amount) @6972281",
  "calc_withdraw_one_coin": "function calc_withdraw_one_coin(uint256 _token_amount, int128 i) view returns (uint256) @15405",
  "remove_liquidity_one_coin": "function remove_liquidity_one_coin(uint256 _token_amount, int128 i, uint256 min_amount) @4044074",
  "ramp_A": "function ramp_A(uint256 _future_A, uint256 _future_time) @151937",
  "stop_ramp_A": "function stop_ramp_A() @148697",
  "commit_new_fee": "function commit_new_fee(uint256 new_fee, uint256 new_admin_fee) @110521",
  "apply_new_fee": "function apply_new_fee() @97220",
  "revert_new_parameters": "function revert_new_parameters() @21955",
  "commit_transfer_ownership": "function commit_transfer_ownership(address _owner) @74632",
  "apply_transfer_ownership": "function apply_transfer_ownership() @60688",
  "revert_transfer_ownership": "function revert_transfer_ownership() @22045",
  "withdraw_admin_fees": "function withdraw_admin_fees() @17565",
  "kill_me": "function kill_me() @37998",
  "unkill_me": "function unkill_me() @22135",
  "coins": "function coins(int128 arg0) view returns (address) @2310",
  "balances": "function balances(int128 arg0) view returns (uint256) @2340",
  "fee": "uint256:fee",
  "admin_fee": "uint256:admin_fee",
  "owner": "address:owner",
  "initial_A": "uint256:initial_A",
  "future_A": "uint256:future_A",
  "initial_A_time": "uint256:initial_A_time",
  "future_A_time": "uint256:future_A_time",
  "admin_actions_deadline": "uint256:admin_actions_deadline",
  "transfer_ownership_deadline": "uint256:transfer_ownership_deadline",
  "future_fee": "uint256:future_fee",
  "future_admin_fee": "uint256:future_admin_fee",
  "future_owner": "address:future_owner"
}
abis.cTokens = {
  "name": "string:name",
  "approve": "function approve(address spender, uint256 amount) returns (bool)",
  "repayBorrow": "function repayBorrow(uint256 repayAmount) returns (uint256)",
  "reserveFactorMantissa": "uint256:reserveFactorMantissa",
  "borrowBalanceCurrent": "function borrowBalanceCurrent(address account) returns (uint256)",
  "totalSupply": "uint256:totalSupply",
  "exchangeRateStored": "uint256:exchangeRateStored",
  "transferFrom": "function transferFrom(address src, address dst, uint256 amount) returns (bool)",
  "repayBorrowBehalf": "function repayBorrowBehalf(address borrower, uint256 repayAmount) returns (uint256)",
  "pendingAdmin": "address:pendingAdmin",
  "decimals": "uint256:decimals",
  "balanceOfUnderlying": "function balanceOfUnderlying(address owner) returns (uint256)",
  "getCash": "uint256:getCash",
  "_setComptroller": "function _setComptroller(address newComptroller) returns (uint256)",
  "totalBorrows": "uint256:totalBorrows",
  "comptroller": "address:comptroller",
  "_reduceReserves": "function _reduceReserves(uint256 reduceAmount) returns (uint256)",
  "initialExchangeRateMantissa": "uint256:initialExchangeRateMantissa",
  "accrualBlockNumber": "uint256:accrualBlockNumber",
  "underlying": "address:underlying",
  "balanceOf": "function balanceOf(address owner) view returns (uint256)",
  "totalBorrowsCurrent": "uint256:totalBorrowsCurrent",
  "redeemUnderlying": "function redeemUnderlying(uint256 redeemAmount) returns (uint256)",
  "totalReserves": "uint256:totalReserves",
  "symbol": "string:symbol",
  "borrowBalanceStored": "function borrowBalanceStored(address account) view returns (uint256)",
  "mint": "function mint(uint256 mintAmount) returns (uint256)",
  "accrueInterest": "uint256:accrueInterest",
  "transfer": "function transfer(address dst, uint256 amount) returns (bool)",
  "borrowIndex": "uint256:borrowIndex",
  "supplyRatePerBlock": "uint256:supplyRatePerBlock",
  "seize": "function seize(address liquidator, address borrower, uint256 seizeTokens) returns (uint256)",
  "_setPendingAdmin": "function _setPendingAdmin(address newPendingAdmin) returns (uint256)",
  "exchangeRateCurrent": "uint256:exchangeRateCurrent",
  "getAccountSnapshot": "function getAccountSnapshot(address account) view returns (uint256, uint256, uint256, uint256)",
  "borrow": "function borrow(uint256 borrowAmount) returns (uint256)",
  "redeem": "function redeem(uint256 redeemTokens) returns (uint256)",
  "allowance": "function allowance(address owner, address spender) view returns (uint256)",
  "_acceptAdmin": "uint256:_acceptAdmin",
  "_setInterestRateModel": "function _setInterestRateModel(address newInterestRateModel) returns (uint256)",
  "interestRateModel": "address:interestRateModel",
  "liquidateBorrow": "function liquidateBorrow(address borrower, uint256 repayAmount, address cTokenCollateral) returns (uint256)",
  "admin": "address:admin",
  "borrowRatePerBlock": "uint256:borrowRatePerBlock",
  "_setReserveFactor": "function _setReserveFactor(uint256 newReserveFactorMantissa) returns (uint256)",
  "isCToken": "bool:isCToken",
  "AccrueInterest": "event AccrueInterest(uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows)",
  "Mint": "event Mint(address minter, uint256 mintAmount, uint256 mintTokens)",
  "Redeem": "event Redeem(address redeemer, uint256 redeemAmount, uint256 redeemTokens)",
  "Borrow": "event Borrow(address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows)",
  "RepayBorrow": "event RepayBorrow(address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows)",
  "LiquidateBorrow": "event LiquidateBorrow(address liquidator, address borrower, uint256 repayAmount, address cTokenCollateral, uint256 seizeTokens)",
  "NewPendingAdmin": "event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin)",
  "NewAdmin": "event NewAdmin(address oldAdmin, address newAdmin)",
  "NewComptroller": "event NewComptroller(address oldComptroller, address newComptroller)",
  "NewMarketInterestRateModel": "event NewMarketInterestRateModel(address oldInterestRateModel, address newInterestRateModel)",
  "NewReserveFactor": "event NewReserveFactor(uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa)",
  "ReservesReduced": "event ReservesReduced(address admin, uint256 reduceAmount, uint256 newTotalReserves)",
  "Failure": "event Failure(uint256 error, uint256 info, uint256 detail)",
  "Transfer": "event Transfer(address indexed from, address indexed to, uint256 amount)",
  "Approval": "event Approval(address indexed owner, address indexed spender, uint256 amount)"
}


abis.yTokens ={
  "Approval": "event Approval(address indexed owner, address indexed spender, uint256 value)",
  "OwnershipTransferred": "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
  "Transfer": "event Transfer(address indexed from, address indexed to, uint256 value)",
  "aave": "address:aave",
  "aaveToken": "address:aaveToken",
  "allowance": "function allowance(address owner, address spender) view returns (uint256)",
  "approve": "function approve(address spender, uint256 amount) returns (bool)",
  "approveToken": "function approveToken()",
  "apr": "address:apr",
  "balance": "uint256:balance",
  "balanceAave": "uint256:balanceAave",
  "balanceCompound": "uint256:balanceCompound",
  "balanceCompoundInToken": "uint256:balanceCompoundInToken",
  "balanceDydx": "uint256:balanceDydx",
  "balanceFulcrum": "uint256:balanceFulcrum",
  "balanceFulcrumInToken": "uint256:balanceFulcrumInToken",
  "balanceOf": "function balanceOf(address account) view returns (uint256)",
  "calcPoolValueInToken": "uint256:calcPoolValueInToken",
  "compound": "address:compound",
  "dToken": "uint256:dToken",
  "decimals": "uint8:decimals",
  "decreaseAllowance": "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)",
  "deposit": "function deposit(uint256 _amount)",
  "dydx": "address:dydx",
  "fulcrum": "address:fulcrum",
  "getAave": "address:getAave",
  "getAaveCore": "address:getAaveCore",
  "getPricePerFullShare": "uint256:getPricePerFullShare",
  "increaseAllowance": "function increaseAllowance(address spender, uint256 addedValue) returns (bool)",
  "isOwner": "bool:isOwner",
  "name": "string:name",
  "owner": "address:owner",
  "pool": "uint256:pool",
  "provider": "uint8:provider",
  "rebalance": "function rebalance()",
  "recommend": "uint8:recommend",
  "renounceOwnership": "function renounceOwnership()",
  "set_new_APR": "function set_new_APR(address _new_APR)",
  "set_new_COMPOUND": "function set_new_COMPOUND(address _new_COMPOUND)",
  "set_new_DTOKEN": "function set_new_DTOKEN(uint256 _new_DTOKEN)",
  "supplyAave": "function supplyAave(uint256 amount)",
  "supplyCompound": "function supplyCompound(uint256 amount)",
  "supplyDydx": "function supplyDydx(uint256 amount) returns (uint256)",
  "supplyFulcrum": "function supplyFulcrum(uint256 amount)",
  "symbol": "string:symbol",
  "token": "address:token",
  "totalSupply": "uint256:totalSupply",
  "transfer": "function transfer(address recipient, uint256 amount) returns (bool)",
  "transferFrom": "function transferFrom(address sender, address recipient, uint256 amount) returns (bool)",
  "transferOwnership": "function transferOwnership(address newOwner)",
  "withdraw": "function withdraw(uint256 _shares)"
}



module.exports = {
  abis
}