The IPPsswap incubator uses blockchain technology and smart contracts to achieve its management and operation. The platform stores all transactions and data records on the blockchain, achieving high transparency and traceability of transactions. At the same time, the IPPsswap incubator has also introduced smart contracts to automate and program transactions and management. This blockchain technology based management and operation model not only ensures the security and fairness of transactions, but also conforms to the decentralized concept of digital asset trading.
In addition, the IPPsswap incubator supports multiple public chains and provides cross chain asset trading functionality. The platform achieves asset exchange between different public chains through cross chain technology, increasing the flexibility and diversity of digital transactions. At the same time, the IPPsswap incubator also supports the trading of numerous digital assets such as tokens and NFTs, providing users with diverse trading opportunities and choices.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@confluxfans/contracts/InternalContracts/InternalContractsHandler.sol";
import "./Monkey.sol";
import "./MonkeyProxy.sol";
import "./CloneFactory.sol";
interface LogicInterface {
function initialize(string memory name, string memory symbol, string memory uri) external;
}
interface ProxyInterface {
function mint(address to, uint256 tokenId) external;
function transfer(address from, address to, uint256 tokenId) external;
function burn(uint256 tokenId) external;
}
contract MonkeyFactory is CloneFactory {
address private _admin;
address private _logicTemplate;
SponsorWhitelistControl constant private SPONSOR = SponsorWhitelistControl(0x0888000000000000000000000000000000000001);
constructor(address admin, address logicTemplate) public{
_admin = admin;
_logicTemplate = logicTemplate;
_addPrivilege(admin);
}
function _addPrivilege(address admin) private {
address[] memory addressList = new address[](1);
addressList[0] = admin;
SPONSOR.addPrivilege(addressList);
}
function updateLogicTemplate(address logicTemplate) public {
require(_admin == msg.sender, "MonkeyFactory: must have admin role");
_logicTemplate = logicTemplate;
}