成功为方法"example"发送 example 内部交易 交易 代币转让 nft 转移 令牌详细转让 按 ID 进行令牌详细转移 代币持有者 原木 执行死刑
false
false
合同
0x01a91e8658544B305A7AD6d95D48a7c121737B15
概述
XCR 平衡
0 XCR
XCR 价值
$--- (@ $---/XCR)
更多信息
合同创建者
My Happy SVG 最近 25 项内部交易(查看全部)
"%>
父 Txn 哈希值
方法
街区 年龄 来自 价值
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
0xecf33c0f32a79068…
Deposit
10 secs ago 0xbAFA44...559c1138 Beacon Deposit Contract 32 ETH
My Happy SVG Latest 25 from a total of 323,666 transactions (+ 1 Pending)
交易哈希值
方法
街区 年龄 来自 价值 Txn 仙女
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... 30,000,000,000 Catecoin (CATE)
My Happy SVG Latest 25 from a total of 323,666 transactions (+ 1 Pending)
Transaction Hash
Method
街区 年龄 来自 类型 项目
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
0xecf33c0f32a79068…
Transfer
12 hrs 44 mins ago Catecoin: Deployer 2
IN
Beacon Deposit Co... ECR_721
Greeting Cards 2023 Limit
NFT: Greeting Cards 2023 Limited Ed
Contract Source Code Verified (Exact Match)
ContractName:
DepositContract
Optimization Enabled:
Yes with 5000000 runs
Compiler Version:
v0.6.11+commit.5ef660b1
Other Settings:
default evmVersion, Unlicense license
Contract Source Code (Solidity)
Contract Security Audit
- Submit Audit Here
Contract ABI
Contract Creation Code
Deployed ByteCode Sourcemap
Swarm Source
ipfs://dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b61
My Happy SVG Latest 25 from a total of 323,666 transactions (+ 1 Pending)
Txn 哈希值 街区 年龄 方法 My Happy SVG 日志
0xecf33c0f32a79068…
17453280 13 mins ago
0x22895118
deposit(bytes,bytes,bytes,bytes32)
DepositEvent (bytes pubkey, bytes withdrawal_credentials, bytes amount, bytes signature, bytes index)
[topic0] 0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
0xecf33c0f32a79068…
17453280 13 mins ago
0x22895118
deposit(bytes,bytes,bytes,bytes32)
DepositEvent (bytes pubkey, bytes withdrawal_credentials, bytes amount, bytes signature, bytes index)
[topic0] 0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
0xecf33c0f32a79068…
17453280 13 mins ago
0x22895118
deposit(bytes,bytes,bytes,bytes32)
DepositEvent (bytes pubkey, bytes withdrawal_credentials, bytes amount, bytes signature, bytes index)
[topic0] 0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
00000000000000000000000000000000000000000000000000000000000000a0
My Happy SVG Latest 15 blocks produced
Block Age Transaction Difficulty Gas Used Reward
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
0xecf33c0f32a79068…
34 days 21 hrs ago 145 0.00 TH 10,915,233 (36.38%)
0.026092595899657117 ETH
警告!合约字节码已更改,与已验证的字节码不符。因此,与此智能合约的交互可能存在风险。
本合同已通过 Sourcify 进行部分验证。
合同名称:
OSBTokenFactory
已启用优化:
编译器版本:
v0.8.16+commit.07a7930e
优化运行:
200
EVM 版本:
default
已验证:
2024-04-10T04:42:38.805694Z

构造函数参数

0x000000000000000000000000f32fb8449ab77bd09c6f6997d28f19df322e34ad0000000000000000000000001e19f4b3b1cedce3eb000293d2b2595b88c8aab5000000000000000000000000232f28f71b63dc2fbb5713a9424852aad73970b9

Arg [0] (address) : 0xf32fb8449ab77bd09c6f6997d28f19df322e34ad
Arg [1] (address) : 0x1e19f4b3b1cedce3eb000293d2b2595b88c8aab5
Arg [2] (address) : 0x232f28f71b63dc2fbb5713a9424852aad73970b9

                              

文件 1 的 1: 合同源代码

Sol2uml
// Sources flattened with hardhat v2.13.0 https://hardhat.org

// File @openzeppelin/contracts/proxy/Clones.sol@v4.8.2

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (proxy/Clones.sol)

pragma solidity ^0.8.0;

/**
 * @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for
 * deploying minimal proxy contracts, also known as "clones".
 *
 * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies
 * > a minimal bytecode implementation that delegates all calls to a known, fixed address.
 *
 * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`
 * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the
 * deterministic method.
 *
 * _Available since v3.4._
 */
library Clones {
    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create opcode, which should never revert.
     */
    function clone(address implementation) internal returns (address instance) {
        /// @solidity memory-safe-assembly
        assembly {
            // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
            // of the `implementation` address with the bytecode before the address.
            mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))
            // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
            mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))
            instance := create(0, 0x09, 0x37)
        }
        require(instance != address(0), "ERC1167: create failed");
    }

    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create2 opcode and a `salt` to deterministically deploy
     * the clone. Using the same `implementation` and `salt` multiple time will revert, since
     * the clones cannot be deployed twice at the same address.
     */
    function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) {
        /// @solidity memory-safe-assembly
        assembly {
            // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
            // of the `implementation` address with the bytecode before the address.
            mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))
            // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
            mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))
            instance := create2(0, 0x09, 0x37, salt)
        }
        require(instance != address(0), "ERC1167: create2 failed");
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(
        address implementation,
        bytes32 salt,
        address deployer
    ) internal pure returns (address predicted) {
        /// @solidity memory-safe-assembly
        assembly {
            let ptr := mload(0x40)
            mstore(add(ptr, 0x38), deployer)
            mstore(add(ptr, 0x24), 0x5af43d82803e903d91602b57fd5bf3ff)
            mstore(add(ptr, 0x14), implementation)
            mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73)
            mstore(add(ptr, 0x58), salt)
            mstore(add(ptr, 0x78), keccak256(add(ptr, 0x0c), 0x37))
            predicted := keccak256(add(ptr, 0x43), 0x55)
        }
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(
        address implementation,
        bytes32 salt
    ) internal view returns (address predicted) {
        return predictDeterministicAddress(implementation, salt, address(this));
    }
}

// File @openzeppelin/contracts/utils/Context.sol@v4.8.2

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

// File @openzeppelin/contracts/utils/Counters.sol@v4.8.2

// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)

pragma solidity ^0.8.0;

/**
 * @title Counters
 * @author Matt Condon (@shrugs)
 * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number
 * of elements in a mapping, issuing ERC721 ids, or counting request ids.
 *
 * Include with `using Counters for Counters.Counter;`
 */
library Counters {
    struct Counter {
        // This variable should never be directly accessed by users of the library: interactions must be restricted to
        // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add
        // this feature: see https://github.com/ethereum/solidity/issues/4637
        uint256 _value; // default: 0
    }

    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }

    function increment(Counter storage counter) internal {
        unchecked {
            counter._value += 1;
        }
    }

    function decrement(Counter storage counter) internal {
        uint256 value = counter._value;
        require(value > 0, "Counter: decrement overflow");
        unchecked {
            counter._value = value - 1;
        }
    }

    function reset(Counter storage counter) internal {
        counter._value = 0;
    }
}

// File contracts/interfaces/IOSBLimitedToken.sol

pragma solidity 0.8.16;

interface IOSBLimitedToken {
    function initialize(
        address _owner,
        string memory _name,
        string memory _symbol,
        uint8 _decimals,
        uint256 _issueAmount,
        uint256 _maxTotalSupply
    ) external;
}

// File contracts/interfaces/IOSBTokenFactory.sol

pragma solidity 0.8.16;

interface IOSBTokenFactory {}

struct ContractInfo {
    uint256 id;
    bool isLimited;
    address owner;
    address token;
}

// File contracts/interfaces/IOSBUnlimitedToken.sol

pragma solidity 0.8.16;

interface IOSBUnlimitedToken {
    function initialize(
        address _owner,
        string memory _name,
        string memory _symbol,
        uint8 _decimals,
        uint256 _issueAmount
    ) external;
}

// File contracts/interfaces/ISetting.sol

pragma solidity 0.8.16;

interface ISetting {
    function checkOnlySuperAdmin(address _caller) external view;

    function checkOnlyAdmin(address _caller) external view;

    function checkOnlySuperAdminOrController(address _caller) external view;

    function checkOnlyController(address _caller) external view;

    function isAdmin(address _account) external view returns (bool);

    function isSuperAdmin(address _account) external view returns (bool);

    function getSuperAdmin() external view returns (address);
}

error CallerIsNotTheSuperAdmin();
error CallerIsNotTheAdmin();

// File contracts/OSBTokenFactory.sol

pragma solidity 0.8.16;

contract OSBTokenFactory is IOSBTokenFactory, Context {
    ISetting public setting;

    address public osbLimitedTokenLib;
    address public osbUnlimitedTokenLib;

    using Counters for Counters.Counter;
    Counters.Counter public lastId;

    /// @dev Keep track of contract info from created ID.
    mapping(uint256 => ContractInfo) public contractInfos;

    // ============ ERRORS ============
    error AddressIsZero();

    // ============ EVENTS ============
    /// @dev Emit an event when the contract is deployed.
    event ContractDeployed(
        address indexed setting,
        address indexed osbLimitedTokenLib,
        address indexed osbUnlimitedTokenLib
    );

    /// @dev Emit an event when the osbLimitedTokenLib is updated.
    event SetOSBLimitedTokenLib(address indexed oldAddress, address indexed newAddress);

    /// @dev Emit an event when the osbUnlimitedTokenLib is updated.
    event SetOSBUnlimitedTokenLib(address indexed oldAddress, address indexed newAddress);

    /// @dev Emit an event when a contract created.
    event ContractCreated(uint256 indexed id, bool isLimited, address indexed owner, address indexed deployedContract);

    /**
     * @notice Setting states initial when deploy contract and only called once.
     * @param _setting Setting contract address.
     * @param _osbLimitedTokenLib OSBLimitedToken library address.
     * @param _osbUnlimitedTokenLib OSBUnlimitedToken library address.
     */
    constructor(address _setting, address _osbLimitedTokenLib, address _osbUnlimitedTokenLib) {
        setting = ISetting(_setting);
        osbLimitedTokenLib = _osbLimitedTokenLib;
        osbUnlimitedTokenLib = _osbUnlimitedTokenLib;
        emit ContractDeployed(_setting, _osbLimitedTokenLib, _osbUnlimitedTokenLib);
    }

    // ============ ACCESS CONTROL/SANITY MODIFIERS ============
    modifier onlySuperAdmin() {
        setting.checkOnlySuperAdmin(_msgSender());
        _;
    }

    // ============ OWNER-ONLY ADMIN FUNCTIONS =============
    /**
     * @notice Update the new OSBLimitedToken library address.
     * @param _library Library address.
     */
    function setOSBLimitedToken(address _library) external onlySuperAdmin {
        if (_library == address(0)) revert AddressIsZero();
        address oldAddress = osbLimitedTokenLib;
        osbLimitedTokenLib = _library;
        emit SetOSBLimitedTokenLib(oldAddress, _library);
    }

    /**
     * @notice Update the new OSBUnlimitedToken library address.
     * @param _library Library address.
     */
    function setOSBUnlimitedToken(address _library) external onlySuperAdmin {
        if (_library == address(0)) revert AddressIsZero();
        address oldAddress = osbUnlimitedTokenLib;
        osbUnlimitedTokenLib = _library;
        emit SetOSBUnlimitedTokenLib(oldAddress, _library);
    }

    // ============ EXTERNAL FUNCTIONS FOR CREATING AND MINT =============
    /**
     * @dev Creates a new ERC20 token contract and initializes it with the specified parameters.
     * @param _owner The owner of the contract.
     * @param _name The name of the token.
     * @param _symbol The symbol of the token.
     * @param _decimals The number of decimals used to get its user representation.
     * @param _issueAmount The initial amount of tokens to be issued.
     * @param _maxTotalSupply The maximum total supply of tokens.
     * @return deployedContract The address of the deployed token contract.
     */
    function createOSBLimitedToken(
        address _owner,
        string memory _name,
        string memory _symbol,
        uint8 _decimals,
        uint256 _issueAmount,
        uint256 _maxTotalSupply
    ) public returns (address deployedContract) {
        deployedContract = _createContract(true, _owner);
        IOSBLimitedToken(deployedContract).initialize(_owner, _name, _symbol, _decimals, _issueAmount, _maxTotalSupply);
    }

    /**
     * @dev Creates a new ERC20 token contract and initializes it with the specified parameters.
     * @param _owner The owner of the contract.
     * @param _name The name of the token.
     * @param _symbol The symbol of the token.
     * @param _decimals The number of decimals used to get its user representation.
     * @param _issueAmount The initial amount of tokens to be issued.
     * @return deployedContract The address of the deployed token contract.
     */
    function createOSBUnlimitedToken(
        address _owner,
        string memory _name,
        string memory _symbol,
        uint8 _decimals,
        uint256 _issueAmount
    ) public returns (address deployedContract) {
        deployedContract = _createContract(false, _owner);
        IOSBUnlimitedToken(deployedContract).initialize(_owner, _name, _symbol, _decimals, _issueAmount);
    }

    // ============ PRIVATE FUNCTIONS =============
    function _createContract(bool _isLimited, address _owner) private returns (address deployedContract) {
        lastId.increment();
        uint256 currentId = lastId.current();
        bytes32 salt = keccak256(abi.encodePacked(currentId));
        address lib = _isLimited ? osbLimitedTokenLib : osbUnlimitedTokenLib;

        deployedContract = Clones.cloneDeterministic(lib, salt);
        contractInfos[currentId] = ContractInfo({
            id: currentId,
            isLimited: _isLimited,
            owner: _owner,
            token: deployedContract
        });

        emit ContractCreated(currentId, _isLimited, _owner, deployedContract);
    }
}
        

合同 ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_setting","internalType":"address"},{"type":"address","name":"_osbLimitedTokenLib","internalType":"address"},{"type":"address","name":"_osbUnlimitedTokenLib","internalType":"address"}]},{"type":"error","name":"AddressIsZero","inputs":[]},{"type":"event","name":"ContractCreated","inputs":[{"type":"uint256","name":"id","internalType":"uint256","indexed":true},{"type":"bool","name":"isLimited","internalType":"bool","indexed":false},{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"deployedContract","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"ContractDeployed","inputs":[{"type":"address","name":"setting","internalType":"address","indexed":true},{"type":"address","name":"osbLimitedTokenLib","internalType":"address","indexed":true},{"type":"address","name":"osbUnlimitedTokenLib","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"SetOSBLimitedTokenLib","inputs":[{"type":"address","name":"oldAddress","internalType":"address","indexed":true},{"type":"address","name":"newAddress","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"SetOSBUnlimitedTokenLib","inputs":[{"type":"address","name":"oldAddress","internalType":"address","indexed":true},{"type":"address","name":"newAddress","internalType":"address","indexed":true}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"id","internalType":"uint256"},{"type":"bool","name":"isLimited","internalType":"bool"},{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"token","internalType":"address"}],"name":"contractInfos","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"address","name":"deployedContract","internalType":"address"}],"name":"createOSBLimitedToken","inputs":[{"type":"address","name":"_owner","internalType":"address"},{"type":"string","name":"_name","internalType":"string"},{"type":"string","name":"_symbol","internalType":"string"},{"type":"uint8","name":"_decimals","internalType":"uint8"},{"type":"uint256","name":"_issueAmount","internalType":"uint256"},{"type":"uint256","name":"_maxTotalSupply","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"address","name":"deployedContract","internalType":"address"}],"name":"createOSBUnlimitedToken","inputs":[{"type":"address","name":"_owner","internalType":"address"},{"type":"string","name":"_name","internalType":"string"},{"type":"string","name":"_symbol","internalType":"string"},{"type":"uint8","name":"_decimals","internalType":"uint8"},{"type":"uint256","name":"_issueAmount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"_value","internalType":"uint256"}],"name":"lastId","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"osbLimitedTokenLib","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"osbUnlimitedTokenLib","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setOSBLimitedToken","inputs":[{"type":"address","name":"_library","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setOSBUnlimitedToken","inputs":[{"type":"address","name":"_library","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract ISetting"}],"name":"setting","inputs":[]}]
              

合同创建代码

验证与发布
0x608060405234801561001057600080fd5b50604051610ae7380380610ae783398101604081905261002f916100ba565b600080546001600160a01b03199081166001600160a01b0386811691821784556001805484168783169081179091556002805490941691861691821790935560405190937f8a14d1d7200360982eafa429b53edf408f7f589e6da6558f3c116c7f708327b391a45050506100fd565b80516001600160a01b03811681146100b557600080fd5b919050565b6000806000606084860312156100cf57600080fd5b6100d88461009e565b92506100e66020850161009e565b91506100f46040850161009e565b90509250925092565b6109db8061010c6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063ac4a21b411610066578063ac4a21b414610164578063c0c9ce3014610177578063c1292cc31461018a578063c3d1222e146101a2578063fff99778146101b557600080fd5b80634fc749921461009857806364218c64146100c85780636794f004146100dd5780636892da9414610151575b600080fd5b6001546100ab906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db6100d63660046106a6565b6101c8565b005b6101226100eb3660046106c8565b600460205260009081526040902080546001820154600290920154909160ff8116916001600160a01b036101009092048216911684565b6040805194855292151560208501526001600160a01b03918216928401929092521660608201526080016100bf565b6002546100ab906001600160a01b031681565b6100ab610172366004610795565b6102ab565b6000546100ab906001600160a01b031681565b6003546101949081565b6040519081526020016100bf565b6100db6101b03660046106a6565b61032a565b6100ab6101c3366004610822565b61040d565b6000546001600160a01b031663b357010a336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038186803b15801561021957600080fd5b505afa15801561022d573d6000803e3d6000fd5b5050506001600160a01b03821690506102595760405163867915ab60e01b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8f2afff1e0d2f2093c828d762c3100b7dc6db4b6a669975f8fb9f186f63677bf90600090a35050565b60006102b860008761048f565b60405163d72bdc5360e01b81529091506001600160a01b0382169063d72bdc53906102ef90899089908990899089906004016108ff565b600060405180830381600087803b15801561030957600080fd5b505af115801561031d573d6000803e3d6000fd5b5050505095945050505050565b6000546001600160a01b031663b357010a336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038186803b15801561037b57600080fd5b505afa15801561038f573d6000803e3d6000fd5b5050506001600160a01b03821690506103bb5760405163867915ab60e01b815260040160405180910390fd5b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f9f4aaace1d25addbd72ed2cf23cb5c722d9d92ef412a380c225dff12b71413a490600090a35050565b600061041a60018861048f565b604051630ba5715f60e31b81529091506001600160a01b03821690635d2b8af890610453908a908a908a908a908a908a9060040161094d565b600060405180830381600087803b15801561046d57600080fd5b505af1158015610481573d6000803e3d6000fd5b505050509695505050505050565b600061049f600380546001019055565b60006104aa60035490565b90506000816040516020016104c191815260200190565b6040516020818303038152906040528051906020012090506000856104f1576002546001600160a01b03166104fe565b6001546001600160a01b03165b905061050a81836105e3565b6040805160808101825285815288151560208083018281526001600160a01b038b81168587018181528883166060880181815260008e8152600488528a90209851895594516001890180549351861661010002610100600160a81b0319921515929092166001600160a81b03199094169390931717909155925160029096018054969092166001600160a01b031990961695909517905593519182529397509192909186917f1669c6c56df80dd8ceb465977fbfb157eaef647c232c2f5332a8179701a5b589910160405180910390a450505092915050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166106845760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6106c18261068a565b9392505050565b6000602082840312156106da57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261070857600080fd5b813567ffffffffffffffff80821115610723576107236106e1565b604051601f8301601f19908116603f0116810190828211818310171561074b5761074b6106e1565b8160405283815286602085880101111561076457600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff811681146106a157600080fd5b600080600080600060a086880312156107ad57600080fd5b6107b68661068a565b9450602086013567ffffffffffffffff808211156107d357600080fd5b6107df89838a016106f7565b955060408801359150808211156107f557600080fd5b50610802888289016106f7565b93505061081160608701610784565b949793965091946080013592915050565b60008060008060008060c0878903121561083b57600080fd5b6108448761068a565b9550602087013567ffffffffffffffff8082111561086157600080fd5b61086d8a838b016106f7565b9650604089013591508082111561088357600080fd5b5061089089828a016106f7565b94505061089f60608801610784565b92506080870135915060a087013590509295509295509295565b6000815180845260005b818110156108df576020818501810151868301820152016108c3565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038616815260a060208201819052600090610923908301876108b9565b828103604084015261093581876108b9565b60ff9590951660608401525050608001529392505050565b6001600160a01b038716815260c060208201819052600090610971908301886108b9565b828103604084015261098381886108b9565b60ff9690961660608401525050608081019290925260a090910152939250505056fea2646970667358221220ba3c4fd69da4dd0e7760f337830077287372226ef2e10893779c746f58bb258964736f6c63430008100033000000000000000000000000f32fb8449ab77bd09c6f6997d28f19df322e34ad0000000000000000000000001e19f4b3b1cedce3eb000293d2b2595b88c8aab5000000000000000000000000232f28f71b63dc2fbb5713a9424852aad73970b9

部署字节码

0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063ac4a21b411610066578063ac4a21b414610164578063c0c9ce3014610177578063c1292cc31461018a578063c3d1222e146101a2578063fff99778146101b557600080fd5b80634fc749921461009857806364218c64146100c85780636794f004146100dd5780636892da9414610151575b600080fd5b6001546100ab906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db6100d63660046106a6565b6101c8565b005b6101226100eb3660046106c8565b600460205260009081526040902080546001820154600290920154909160ff8116916001600160a01b036101009092048216911684565b6040805194855292151560208501526001600160a01b03918216928401929092521660608201526080016100bf565b6002546100ab906001600160a01b031681565b6100ab610172366004610795565b6102ab565b6000546100ab906001600160a01b031681565b6003546101949081565b6040519081526020016100bf565b6100db6101b03660046106a6565b61032a565b6100ab6101c3366004610822565b61040d565b6000546001600160a01b031663b357010a336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038186803b15801561021957600080fd5b505afa15801561022d573d6000803e3d6000fd5b5050506001600160a01b03821690506102595760405163867915ab60e01b815260040160405180910390fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8f2afff1e0d2f2093c828d762c3100b7dc6db4b6a669975f8fb9f186f63677bf90600090a35050565b60006102b860008761048f565b60405163d72bdc5360e01b81529091506001600160a01b0382169063d72bdc53906102ef90899089908990899089906004016108ff565b600060405180830381600087803b15801561030957600080fd5b505af115801561031d573d6000803e3d6000fd5b5050505095945050505050565b6000546001600160a01b031663b357010a336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038186803b15801561037b57600080fd5b505afa15801561038f573d6000803e3d6000fd5b5050506001600160a01b03821690506103bb5760405163867915ab60e01b815260040160405180910390fd5b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f9f4aaace1d25addbd72ed2cf23cb5c722d9d92ef412a380c225dff12b71413a490600090a35050565b600061041a60018861048f565b604051630ba5715f60e31b81529091506001600160a01b03821690635d2b8af890610453908a908a908a908a908a908a9060040161094d565b600060405180830381600087803b15801561046d57600080fd5b505af1158015610481573d6000803e3d6000fd5b505050509695505050505050565b600061049f600380546001019055565b60006104aa60035490565b90506000816040516020016104c191815260200190565b6040516020818303038152906040528051906020012090506000856104f1576002546001600160a01b03166104fe565b6001546001600160a01b03165b905061050a81836105e3565b6040805160808101825285815288151560208083018281526001600160a01b038b81168587018181528883166060880181815260008e8152600488528a90209851895594516001890180549351861661010002610100600160a81b0319921515929092166001600160a81b03199094169390931717909155925160029096018054969092166001600160a01b031990961695909517905593519182529397509192909186917f1669c6c56df80dd8ceb465977fbfb157eaef647c232c2f5332a8179701a5b589910160405180910390a450505092915050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166106845760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015260640160405180910390fd5b92915050565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6106c18261068a565b9392505050565b6000602082840312156106da57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261070857600080fd5b813567ffffffffffffffff80821115610723576107236106e1565b604051601f8301601f19908116603f0116810190828211818310171561074b5761074b6106e1565b8160405283815286602085880101111561076457600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff811681146106a157600080fd5b600080600080600060a086880312156107ad57600080fd5b6107b68661068a565b9450602086013567ffffffffffffffff808211156107d357600080fd5b6107df89838a016106f7565b955060408801359150808211156107f557600080fd5b50610802888289016106f7565b93505061081160608701610784565b949793965091946080013592915050565b60008060008060008060c0878903121561083b57600080fd5b6108448761068a565b9550602087013567ffffffffffffffff8082111561086157600080fd5b61086d8a838b016106f7565b9650604089013591508082111561088357600080fd5b5061089089828a016106f7565b94505061089f60608801610784565b92506080870135915060a087013590509295509295509295565b6000815180845260005b818110156108df576020818501810151868301820152016108c3565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038616815260a060208201819052600090610923908301876108b9565b828103604084015261093581876108b9565b60ff9590951660608401525050608001529392505050565b6001600160a01b038716815260c060208201819052600090610971908301886108b9565b828103604084015261098381886108b9565b60ff9690961660608401525050608081019290925260a090910152939250505056fea2646970667358221220ba3c4fd69da4dd0e7760f337830077287372226ef2e10893779c746f58bb258964736f6c63430008100033