Frame
  • Overview
  • Reference
    • Deployed Contracts
    • Technical Reference
      • Frame
      • FrameDataStore
      • FrameFactory
      • FrameDataStoreFactory
    • Contract Source
      • Frame
      • FrameDataStore
      • FrameFactory
      • FrameDataStoreFactory
      • FrameDataStoreOwnable
Powered by GitBook
On this page
  1. Reference
  2. Contract Source

FrameDataStoreFactory

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

import "./CloneFactory.sol";

interface IFrameDataStore {
  function setName(string memory _name) external;
  function setVersion(string memory _version) external;
}

contract FrameDataStoreFactory is CloneFactory {
  address public libraryAddress;

  event FrameDataStoreCreated(address newAddress);

  constructor() {}

  function setLibraryAddress(address _libraryAddress) public  {
    require(libraryAddress == address(0), "FrameDataStoreFactory: Library already set");
    libraryAddress = _libraryAddress;
  }

  function createFrameDataStore(string memory _name, string memory _version) public returns (address)  {
    address clone = createClone(libraryAddress);

    IFrameDataStore(clone).setName(_name);
    IFrameDataStore(clone).setVersion(_version);

    emit FrameDataStoreCreated(clone);
    return clone;
  }
}
PreviousFrameFactoryNextFrameDataStoreOwnable

Last updated 2 years ago