35 lines
1.5 KiB
Solidity
35 lines
1.5 KiB
Solidity
// SPDX-License-Identifier: UNLICENSED
|
|
pragma solidity ^0.8.30;
|
|
|
|
import {IERC20} from "../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";
|
|
import {NativeWrapper} from "./NativeWrapper.sol";
|
|
import {LMSRStabilizedBalancedPair} from "./LMSRStabilizedBalancedPair.sol";
|
|
import {PartyPool} from "./PartyPool.sol";
|
|
import {PartyPoolBase} from "./PartyPoolBase.sol";
|
|
import {PartyPoolMintImpl} from "./PartyPoolMintImpl.sol";
|
|
import {PartyPoolSwapImpl} from "./PartyPoolSwapImpl.sol";
|
|
|
|
contract PartyPoolBalancedPair is PartyPool {
|
|
constructor(
|
|
address owner_,
|
|
string memory name_,
|
|
string memory symbol_,
|
|
IERC20[] memory tokens_,
|
|
int128 kappa_,
|
|
uint256[] memory fees_,
|
|
uint256 flashFeePpm_,
|
|
uint256 protocolFeePpm_, // NEW: protocol share of fees (ppm)
|
|
address protocolFeeAddress_, // NEW: recipient for collected protocol tokens
|
|
NativeWrapper wrapperToken_,
|
|
PartyPoolSwapImpl swapMintImpl_,
|
|
PartyPoolMintImpl mintImpl_
|
|
)
|
|
PartyPool(owner_, name_, symbol_, tokens_, kappa_, fees_, flashFeePpm_, protocolFeePpm_, protocolFeeAddress_, wrapperToken_, swapMintImpl_, mintImpl_)
|
|
{}
|
|
|
|
function _swapAmountsForExactInput(uint256 i, uint256 j, int128 a, int128 limitPrice) internal virtual override view
|
|
returns (int128 amountIn, int128 amountOut) {
|
|
return LMSRStabilizedBalancedPair.swapAmountsForExactInput(_lmsr, i, j, a, limitPrice);
|
|
}
|
|
}
|