CurveDeployer

0x85a9fb0b18d225e86b2d597d5e6cc8f0156b0ac5

Verification
Verified
v0.8.26+commit.8a97fa7a
Type
Contract
13,774 bytes
ABI entries
1
0 read · 1 write
License
none

Contract information

Address
0x85a9fb0b18d225e86b2d597d5e6cc8f0156b0ac5
Chain
Robinhood Chain (4663)
Compiler
v0.8.26+commit.8a97fa7a
Optimization
Enabled
Creation tx
0x4b12f6785a…88986fb12a

Token

Not a token

This contract does not expose ERC-20 metadata.

Read contract (0)

No read functions

The ABI is unavailable or exposes no view functions.

ABI

[
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "contract LemonToken",
            "name": "token",
            "type": "address"
          },
          {
            "internalType": "contract IWETH",
            "name": "weth",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "dexFactory",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "positionManager",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "deployer",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "creatorFeeReceiver",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "platformFeeReceiver",
            "type": "address"
          },
          {
            "internalType": "uint16",
            "name": "creatorFeeBps",
            "type": "uint16"
          },
          {
            "internalType": "uint256",
            "name": "graduationThreshold",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "virtualTokenReserve",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "virtualEthReserve",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "stocksVault",
            "type": "address"
          },
          {
            "internalType": "uint16",
            "name": "vaultBps",
            "type": "uint16"
          }
        ],
        "internalType": "struct CurveDeployer.Args",
        "name": "a",
        "type": "tuple"
      }
    ],
    "name": "deployCurve",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]

Source code

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import {LemonToken} from "../LemonToken.sol";
import {BondingCurve} from "../BondingCurve.sol";
import {IUniswapV3Factory, INonfungiblePositionManager, IWETH} from "../interfaces/IUniswap.sol";

/// @notice Externalises `new BondingCurve(...)` so the factory does not
/// embed BondingCurve's bytecode. Stateless + permissionless.
contract CurveDeployer {
    struct Args {
        LemonToken token;
        IWETH weth;
        address dexFactory;
        address positionManager;
        address deployer;
        address creatorFeeReceiver;
        address platformFeeReceiver;
        uint16 creatorFeeBps;
        uint256 graduationThreshold;
        uint256 virtualTokenReserve;
        uint256 virtualEthReserve;
        address stocksVault;
        uint16 vaultBps;
    }

    function deployCurve(Args calldata a) external returns (address) {
        return address(new BondingCurve(
            a.token,
            a.weth,
            IUniswapV3Factory(a.dexFactory),
            INonfungiblePositionManager(a.positionManager),
            a.deployer,
            a.creatorFeeReceiver,
            a.platformFeeReceiver,
            a.creatorFeeBps,
            a.graduationThreshold,
            a.virtualTokenReserve,
            a.virtualEthReserve,
            a.stocksVault,
            a.vaultBps
        ));
    }
}
Chain explorer4117msChain node92ms