Contract 0xb274cf47641b429f1a6f5c21bf160c99d2313285

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x8ca8b51da9933790dd740776797703014aff2fcdb26c660f5ec252fe40a65e8aCreate Assistant197651152021-10-22 14:19:181 day 10 hrs ago0x8e6657d21ac45c4004c5a0970593c1365b2bae1b IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.416704303169
0xdcb3a98823c9a4add01644c883c4eeb72bc38f0dee3f7d18f16777c11f5360d8Create Assistant197249762021-10-22 2:15:321 day 22 hrs ago0x9102b87dbd54e64de47ad9b7967e7ce531eae8f8 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.32134511567
0xc679946ae36bb65f355d82c10dd5bf4b26dc15af5aecd13927e3758d4737c545Create Assistant196543242021-10-21 6:29:152 days 18 hrs ago0xa3acd03a4834ceefb189198cb6ef7375f8bd53aa IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.369334843454
0x5d4bd23d65f810a91589098b5be1a4c8588c1366c715e05b080d91a3f09f6aacCreate Assistant196536972021-10-21 6:17:582 days 18 hrs ago0x082815494da7b2df76503b719fe7e9a9c751498b IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.456115988732
0x5d51041dbf57a49356c25ea690e148af2a288125853aea22ac340c3357c79da0Create Assistant195941272021-10-20 14:12:073 days 10 hrs ago0x5e8eebfc4206186e188aa815bc37adb00999cddd IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.402712084328
0xf269b0fe36dcab8ca2e0d76dd7af0499fd7ec01fa981ec4a1813cd18bfe50cfdCreate Assistant194082912021-10-18 10:20:275 days 14 hrs ago0xffaec2d2ad3f2d68fc34766b0f6036194864c104 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.281899774931
0x10465b6fe1b1ab42580f764c7612d62474a6ab699f8dd25add24eedd55e000b9Create Assistant193690882021-10-17 23:04:426 days 1 hr ago0xb9ad27eb764b29b15ceaed821348e3beccd6f7d6 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.37096656119
0x69b0c53a59c65688d1e44f134a1ec328da0ae7929bc22783bcfa7f981e44982bCreate Assistant192461262021-10-16 13:01:427 days 11 hrs ago0x00b7a8cd7f2924220d2b610c9f3a979b630d783f IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.22928585
0xae4cc6ef92e9fa21b7481035b922f9634a54dee6629d58e076ef3c649a7a5ad5Create Assistant192459522021-10-16 12:57:387 days 11 hrs ago0xeb2f726dba6f716065fb8b434f3cca95f9a2945d IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.24922375
0x20de4063fc22764709137f91c399ae3289cfe6edd60d28207b97664370ff6f80Create Assistant192458102021-10-16 12:55:117 days 11 hrs ago0x8f3cf69673e382ddf66d4c359a01722d793d9492 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.272811880732
0x4b285e65c7a39bac9c331af0a9eddbcfa7f0867445bc0e459c5f33c0a555f9e2Create Assistant192454982021-10-16 12:49:047 days 11 hrs ago0x62c28871139c5c257bafc351be54f31a9945e5e3 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.325940004104
0x50b657b46d0f47253cc9538c1dd59f814e071c1871995b3dafa5b5bc49e12a88Create Assistant191603842021-10-15 13:08:448 days 11 hrs ago0x14c200c8d177db43eb33225f2a3de0196b09508f IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.338238897098
0x390bffd27546d51722b7189712d7ca966f54a7e6f5d755b7aeeb9d82d4e975d0Create Assistant191367012021-10-15 5:53:158 days 18 hrs ago0x73111ce6f5afa2925787c6519af3b3f58b9cf113 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.658312772264
0x0b0ac74697ee78947492894e41d942021f535ce217ecccecf55556012ac3a328Create Assistant191201352021-10-15 1:04:398 days 23 hrs ago0x65cc0b5bcf31240fe0c769bbf742a77475bf8910 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.199379
0x55f499c859b0ebcd2cf9760c775b204468776512f495c0ec4276d3ebe6fa0471Create Assistant190791012021-10-14 13:35:189 days 11 hrs ago0x0675489ae5613dfa05c6f77c949e4d774e0c02e8 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.306190118501
0xac39a6eee17c30900389c3967bc56cf8a22354a9b25d92d17c1e66416e5e50fbCreate Assistant190460312021-10-14 3:08:049 days 21 hrs ago0xd9763422965f6ce68fc3387ff336367e5ff37698 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.40355306495
0xa6c9ed8968b0f8db5ce06b59ed647d2d72e5bf82225000b5369bb00c4bff9c60Create Assistant190434642021-10-14 2:11:579 days 22 hrs ago0x730dc10c58899cd55454937419b9554000b016ea IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.430102571969
0x512088da23560cfc450a2ea36124157aa76a5bc92bae16283ec2a948b30523d6Create Assistant189808792021-10-13 7:56:3610 days 16 hrs ago0x2cb98bfaa57e0463892a3627f3945539c00df981 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.324244883846
0x81edca987510ae43644d503ca2dce46179cc8c50d756df2c761147567fff6729Create Assistant189647482021-10-13 3:02:0810 days 21 hrs ago0x811a6fdd51dc16ca90beec8cc1575cf55c55a6f8 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.0577592469
0x4a1ec2eae7e893b4b9184c271bc1a5173eab9cb06180308005eb64eb855c68feCreate Assistant189647132021-10-13 3:01:2910 days 21 hrs ago0x811a6fdd51dc16ca90beec8cc1575cf55c55a6f8 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.441428296064
0x3ff4f175cbfa3c053d06059496b9797b45dd396e9b645bf5b1e4c3b097068e3bCreate Assistant189084462021-10-12 11:01:0711 days 13 hrs ago0x43ef0e63b4be170617ba4d46b294b4af77924e04 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.502831246073
0x47ab9199319f873004ea63432b995ef5d6e5bea41474231c09f69f9ee85e1ee6Create Assistant189001832021-10-12 8:17:0511 days 16 hrs ago0x9442e251f839ef877266e956b34d4930697d9f81 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.458171346968
0x03e9484a7cd0eb9d80746f8e8b0cb345c67fa07a6eaefc272d750374c3d5e02cCreate Assistant188972442021-10-12 7:24:0911 days 17 hrs ago0xfb3d232d80610b21105af1dbe4bef479a1e52b90 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.558889841987
0x5af5351ad04ea0ec9355fb3cfdbd594dfa7aebc2e2764df0a904a24a0395c7b6Create Assistant188923142021-10-12 5:58:1711 days 18 hrs ago0x0195348b61f6b269d88d8f241a6f7beed4e13d6b IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.419745431056
0x9e21b52b8ae798185a3b543264399ba8bbcf1513e61bfd66e94d7493dcb6e2c4Create Assistant188357272021-10-11 14:00:1912 days 10 hrs ago0x10db40a97cf09fe9429a1e0cefbd054351fc7904 IN  0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM0.20137279
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8ca8b51da9933790dd740776797703014aff2fcdb26c660f5ec252fe40a65e8a197651152021-10-22 14:19:181 day 10 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0x8ca8b51da9933790dd740776797703014aff2fcdb26c660f5ec252fe40a65e8a197651152021-10-22 14:19:181 day 10 hrs ago 0x8e6657d21ac45c4004c5a0970593c1365b2bae1b 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0xdcb3a98823c9a4add01644c883c4eeb72bc38f0dee3f7d18f16777c11f5360d8197249762021-10-22 2:15:321 day 22 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0xdcb3a98823c9a4add01644c883c4eeb72bc38f0dee3f7d18f16777c11f5360d8197249762021-10-22 2:15:321 day 22 hrs ago 0x9102b87dbd54e64de47ad9b7967e7ce531eae8f8 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0xc679946ae36bb65f355d82c10dd5bf4b26dc15af5aecd13927e3758d4737c545196543242021-10-21 6:29:152 days 18 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0xc679946ae36bb65f355d82c10dd5bf4b26dc15af5aecd13927e3758d4737c545196543242021-10-21 6:29:152 days 18 hrs ago 0xa3acd03a4834ceefb189198cb6ef7375f8bd53aa 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0x5d4bd23d65f810a91589098b5be1a4c8588c1366c715e05b080d91a3f09f6aac196536972021-10-21 6:17:582 days 18 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0x5d4bd23d65f810a91589098b5be1a4c8588c1366c715e05b080d91a3f09f6aac196536972021-10-21 6:17:582 days 18 hrs ago 0x082815494da7b2df76503b719fe7e9a9c751498b 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0x5d51041dbf57a49356c25ea690e148af2a288125853aea22ac340c3357c79da0195941272021-10-20 14:12:073 days 10 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0x5d51041dbf57a49356c25ea690e148af2a288125853aea22ac340c3357c79da0195941272021-10-20 14:12:073 days 10 hrs ago 0x5e8eebfc4206186e188aa815bc37adb00999cddd 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0xf269b0fe36dcab8ca2e0d76dd7af0499fd7ec01fa981ec4a1813cd18bfe50cfd194082912021-10-18 10:20:275 days 14 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0xf269b0fe36dcab8ca2e0d76dd7af0499fd7ec01fa981ec4a1813cd18bfe50cfd194082912021-10-18 10:20:275 days 14 hrs ago 0xffaec2d2ad3f2d68fc34766b0f6036194864c104 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0x10465b6fe1b1ab42580f764c7612d62474a6ab699f8dd25add24eedd55e000b9193690882021-10-17 23:04:426 days 1 hr ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0x10465b6fe1b1ab42580f764c7612d62474a6ab699f8dd25add24eedd55e000b9193690882021-10-17 23:04:426 days 1 hr ago 0xb9ad27eb764b29b15ceaed821348e3beccd6f7d6 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0x69b0c53a59c65688d1e44f134a1ec328da0ae7929bc22783bcfa7f981e44982b192461262021-10-16 13:01:427 days 11 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0x69b0c53a59c65688d1e44f134a1ec328da0ae7929bc22783bcfa7f981e44982b192461262021-10-16 13:01:427 days 11 hrs ago 0x00b7a8cd7f2924220d2b610c9f3a979b630d783f 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0xae4cc6ef92e9fa21b7481035b922f9634a54dee6629d58e076ef3c649a7a5ad5192459522021-10-16 12:57:387 days 11 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0xae4cc6ef92e9fa21b7481035b922f9634a54dee6629d58e076ef3c649a7a5ad5192459522021-10-16 12:57:387 days 11 hrs ago 0xeb2f726dba6f716065fb8b434f3cca95f9a2945d 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0x20de4063fc22764709137f91c399ae3289cfe6edd60d28207b97664370ff6f80192458102021-10-16 12:55:117 days 11 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0x20de4063fc22764709137f91c399ae3289cfe6edd60d28207b97664370ff6f80192458102021-10-16 12:55:117 days 11 hrs ago 0x8f3cf69673e382ddf66d4c359a01722d793d9492 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0x4b285e65c7a39bac9c331af0a9eddbcfa7f0867445bc0e459c5f33c0a555f9e2192454982021-10-16 12:49:047 days 11 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0x4b285e65c7a39bac9c331af0a9eddbcfa7f0867445bc0e459c5f33c0a555f9e2192454982021-10-16 12:49:047 days 11 hrs ago 0x62c28871139c5c257bafc351be54f31a9945e5e3 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0x50b657b46d0f47253cc9538c1dd59f814e071c1871995b3dafa5b5bc49e12a88191603842021-10-15 13:08:448 days 11 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
0x50b657b46d0f47253cc9538c1dd59f814e071c1871995b3dafa5b5bc49e12a88191603842021-10-15 13:08:448 days 11 hrs ago 0x14c200c8d177db43eb33225f2a3de0196b09508f 0xb274cf47641b429f1a6f5c21bf160c99d23132851 FTM
0x390bffd27546d51722b7189712d7ca966f54a7e6f5d755b7aeeb9d82d4e975d0191367012021-10-15 5:53:158 days 18 hrs ago 0xb274cf47641b429f1a6f5c21bf160c99d2313285  Contract Creation1 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RarityAssistantFactory

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 2: RarityAssistantFactory.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import "./RarityAssistant.sol";

contract RarityAssistantFactory {
    address public constant owner = 0xF4CB4EAb20236d95b1475f20D101Fb509fdcb587;
    uint256 public fee = 1e18;
    uint256 public assistantCount;
    uint256 public paidCount;
    uint256 public paidUsers;
    uint256 public totalIncome;
    mapping(address => address) public assistantOfOwner;
    mapping(address => uint) public payments;

    event Payment(address user, uint256 amount);
    event AssistantCreated(address owner, address assistant);

    function createAssistant() external payable {
        require(msg.value >= fee, "!fee");
        require(assistantOfOwner[msg.sender] == address(0), "!created");
        bytes memory bytecode = type(RarityAssistant).creationCode;
        bytes32 salt = keccak256(abi.encodePacked(blockhash(block.number - 1), msg.sender));
        address assistant;
        assembly {
          assistant := create2(0, add(bytecode, 32), mload(bytecode), salt)
        }
        RarityAssistant(assistant).initialize(msg.sender);
        assistantOfOwner[msg.sender] = assistant;
        assistantCount += 1;
        totalIncome += msg.value;
        emit AssistantCreated(msg.sender, assistant);
    }

    function pay() external payable {
        paidCount++;
        if (payments[msg.sender] == 0) {
            paidUsers++;
        }
        payments[msg.sender] += msg.value;
        totalIncome += msg.value;
        emit Payment(msg.sender, msg.value);
    }

    function changeFee(uint256 newFee) external {
        require(msg.sender == owner, "!owner");
        fee = newFee;
    }

    function withdraw() external {
        payable(owner).transfer(address(this).balance);
    }
}

File 2 of 2: RarityAssistant.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

interface IRarity {
    function adventure(uint _summoner) external;
    function level_up(uint _summoner) external;
    function approve(address _spennder, uint _summoner) external;
    function safeTransferFrom(address from, address to, uint256 tokenId) external;
}

interface IDungeon {
    function adventure(uint _summoner) external;
    function transfer(uint from, uint to, uint amount) external returns (bool);
    function approve(uint from, uint spender, uint amount) external returns (bool);
}

interface IGold {
    function claim(uint summoner) external;
    function transfer(uint from, uint to, uint amount) external returns (bool);
    function approve(uint from, uint spender, uint amount) external returns (bool);
}

interface ICrafting {
    function setApprovalForAll(address, bool) external;
    function simulate(uint _summoner, uint _base_type, uint _item_type, uint _crafting_materials) external view returns (bool crafted, int check, uint cost, uint dc);
    function craft(uint _summoner, uint8 _base_type, uint8 _item_type, uint _crafting_materials) external;
    function next_item() external view returns(uint);
    function safeTransferFrom(address from, address to, uint256 tokenId) external;
    function SUMMMONER_ID() external view returns(uint);
}

interface IAttributes {
    function point_buy(uint _summoner, uint32 _str, uint32 _dex, uint32 _const, uint32 _int, uint32 _wis, uint32 _cha) external;
    function increase_strength(uint _summoner) external;
    function increase_dexterity(uint _summoner) external;
    function increase_constitution(uint _summoner) external;
    function increase_intelligence(uint _summoner) external;
    function increase_wisdom(uint _summoner) external;
    function increase_charisma(uint _summoner) external;
}

interface ISkills {
    function get_skills(uint _summoner) external view returns (uint8[36] memory);
    function set_skills(uint _summoner, uint8[36] memory _skills) external;
}

contract RarityAssistant {
    address owner;
    IRarity constant rarity = IRarity(0xce761D788DF608BD21bdd59d6f4B54b2e27F25Bb);
    IAttributes constant attributes = IAttributes(0xB5F5AF1087A8DA62A23b08C00C6ec9af21F397a1);
    IDungeon constant dungeon = IDungeon(0x2A0F1cB17680161cF255348dDFDeE94ea8Ca196A);
    IGold constant gold = IGold(0x2069B76Afe6b734Fb65D1d099E7ec64ee9CC76B2);
    ISkills constant skills = ISkills(0x51C0B29A1d84611373BA301706c6B4b72283C80F);
    ICrafting constant crafting = ICrafting(0xf41270836dF4Db1D28F7fd0935270e3A603e78cC);

    function initialize(address _owner) public {
        require(owner == address(0), "!initialized");
        owner = _owner;
        crafting.setApprovalForAll(owner, true);
    }

    function approve_all(uint256[] calldata _ids) external {
        uint len = _ids.length;
        for (uint i = 0; i < len; i++) {
            rarity.approve(address(this), _ids[i]);
        }
    }

    function approve_gold_materials(uint256[] calldata _ids) external {
        uint crafting_hole_id = crafting.SUMMMONER_ID();
        uint MAX_256 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
        uint len = _ids.length;
        for (uint i = 0; i < len; i++) {
            gold.approve(_ids[i], crafting_hole_id, MAX_256);
            dungeon.approve(_ids[i], crafting_hole_id, MAX_256);
        }
    }

    function transfer_summoners(uint256[] calldata _ids, address to) external {
        require(msg.sender == owner, "!owner");
        uint len = _ids.length;
        for (uint i = 0; i < len; i++) {
            rarity.safeTransferFrom(msg.sender, to, _ids[i]);
        }
    }

    function adventure(uint256[] calldata _ids) external {
        uint len = _ids.length;
        for (uint i = 0; i < len; i++) {
            rarity.adventure(_ids[i]);
        }
    }

    function level_up(uint256[] calldata _ids) external {
        uint len = _ids.length;
        for (uint i = 0; i < len; i++) {
            rarity.level_up(_ids[i]);
        }
    }

    function dungeon_adventure(uint256[] calldata _ids) external {
        uint len = _ids.length;
        for (uint i = 0; i < len; i++) {
            dungeon.adventure(_ids[i]);
        }
    }

    function dungeon_transfer_same(uint256[] calldata _from_ids, uint256 _amount, uint256 to) external {
        require(msg.sender == owner, "!owner");
        uint len = _from_ids.length;
        for (uint i = 0; i < len; i++) {
            dungeon.transfer(_from_ids[i], to, _amount);
        }
    }

    function dungeon_transfer(uint256[] calldata _from_ids, uint256[] calldata _amounts, uint256 to) external {
        require(msg.sender == owner, "!owner");
        uint len = _from_ids.length;
        require(len == _amounts.length, "!length");
        for (uint i = 0; i < len; i++) {
            dungeon.transfer(_from_ids[i], to, _amounts[i]);
        }
    }

    function gold_claim(uint256[] calldata _ids) external {
        require(msg.sender == owner, "!owner");
        uint len = _ids.length;
        for (uint i = 0; i < len; i++) {
            gold.claim(_ids[i]);
        }
    }

    function gold_transfer_same(uint256[] calldata _from_ids, uint256 _amount, uint256 to) external {
        require(msg.sender == owner, "!owner");
        uint len = _from_ids.length;
        for (uint i = 0; i < len; i++) {
            gold.transfer(_from_ids[i], to, _amount);
        }
    }

    function gold_transfer(uint256[] calldata _from_ids, uint256[] calldata _amounts, uint256 to) external {
        require(msg.sender == owner, "!owner");
        uint len = _from_ids.length;
        require(len == _amounts.length, "!len");
        for (uint i = 0; i < len; i++) {
            gold.transfer(_from_ids[i], to, _amounts[i]);
        }
    }

    function point_buy_same(uint[] calldata _summoners, uint32 _str, uint32 _dex, uint32 _const, uint32 _int, uint32 _wis, uint32 _cha) external {
        require(msg.sender == owner, "!owner");
        uint len = _summoners.length;
        for (uint i = 0; i < len; i++) {
            attributes.point_buy(_summoners[i], _str, _dex, _const, _int, _wis, _cha);
        }
    }

    function point_buy(uint[] calldata _summoners, uint32[6][] calldata _attrs) external {
        require(msg.sender == owner, "!owner");
        uint len = _summoners.length;
        require(len == _attrs.length, "!len");
        for (uint i = 0; i < len; i++) {
            uint32[6] memory _attr = _attrs[i];
            attributes.point_buy(_summoners[i], _attr[0], _attr[1], _attr[2], _attr[3], _attr[4], _attr[5]);
        }
    }

    function increase_attributes(uint[] calldata _summoners, uint8[6][] calldata _attrs) external {
        require(msg.sender == owner, "!owner");
        uint len = _summoners.length;
        require(len == _attrs.length, "!len");
        for (uint i = 0; i < len; i++) {
            uint id = _summoners[i];
            uint8[6] memory _attr = _attrs[i];
            for (uint j = 0; j < _attr[0]; j++) {
                attributes.increase_strength(id);
            }
            for (uint j = 0; j < _attr[1]; j++) {
                attributes.increase_dexterity(id);
            }
            for (uint j = 0; j < _attr[2]; j++) {
                attributes.increase_constitution(id);
            }
            for (uint j = 0; j < _attr[3]; j++) {
                attributes.increase_intelligence(id);
            }
            for (uint j = 0; j < _attr[4]; j++) {
                attributes.increase_wisdom(id);
            }
            for (uint j = 0; j < _attr[5]; j++) {
                attributes.increase_charisma(id);
            }
        }
    }

    function increase_attributes_one(uint[] calldata _summoners, uint8[] calldata _attrs) external {
        require(msg.sender == owner, "!owner");
        uint len = _summoners.length;
        require(len == _attrs.length, "!len");
        for (uint i = 0; i < len; i++) {
            uint id = _summoners[i];
            uint8 x = _attrs[i];
            if (x == 1) {
                attributes.increase_strength(id);
            } else if (x == 2) {
                attributes.increase_dexterity(id);
            } else if (x == 3) {
                attributes.increase_constitution(id);
            } else if (x == 4) {
                attributes.increase_intelligence(id);
            } else if (x == 5) {
                attributes.increase_wisdom(id);
            } else if (x == 6) {
                attributes.increase_charisma(id);
            }
        }
    }

    function set_skills_same(uint[] calldata _summoners, uint8[36] calldata _values) external {
        require(msg.sender == owner, "!owner");
        uint len = _summoners.length;
        for (uint i = 0; i < len; i++) {
            skills.set_skills(_summoners[i], _values);
        }
    }

    function set_skills(uint[] calldata _summoners, uint8[36][] calldata _values_group) external {
        require(msg.sender == owner, "!owner");
        uint len = _summoners.length;
        require(_values_group.length == len, "!len");
        for (uint i = 0; i < len; i++) {
            skills.set_skills(_summoners[i], _values_group[i]);
        }
    }

    function craft(uint _summoner, uint8 _base_type, uint8 _item_type, uint _crafting_materials) public returns (bool crafted, int check, uint cost, uint dc) {
        require(msg.sender == owner, "!owner");
        (crafted, check, cost, dc) = crafting.simulate(_summoner, _base_type, _item_type, _crafting_materials);
        require(crafted, "!luck");
        crafting.craft(_summoner, _base_type, _item_type, _crafting_materials);
        uint id = crafting.next_item();
        crafting.safeTransferFrom(address(this), msg.sender, id - 1);
    }

    function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data) public view returns (bytes4){
        return bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"));
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"assistant","type":"address"}],"name":"AssistantCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Payment","type":"event"},{"inputs":[],"name":"assistantCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"assistantOfOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createAssistant","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paidCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paidUsers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"payments","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalIncome","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052670de0b6b3a764000060005534801561001c57600080fd5b50612a998061002c6000396000f3fe6080604052600436106100a75760003560e01c80636a1db1bf116100645780636a1db1bf146101365780638da5cb5b14610156578063b8cbdd4a14610196578063ddca3f43146101cc578063e2982c21146101e2578063fa7061831461020f57600080fd5b80631b9265b8146100ac578063248b8725146100b65780632867baac146100df5780633ccfd60b146100f55780633d7832e81461010a578063522577e914610120575b600080fd5b6100b4610217565b005b3480156100c257600080fd5b506100cc60025481565b6040519081526020015b60405180910390f35b3480156100eb57600080fd5b506100cc60015481565b34801561010157600080fd5b506100b46102cd565b34801561011657600080fd5b506100cc60035481565b34801561012c57600080fd5b506100cc60045481565b34801561014257600080fd5b506100b46101513660046105a7565b610310565b34801561016257600080fd5b5061017e73f4cb4eab20236d95b1475f20d101fb509fdcb58781565b6040516001600160a01b0390911681526020016100d6565b3480156101a257600080fd5b5061017e6101b1366004610577565b6005602052600090815260409020546001600160a01b031681565b3480156101d857600080fd5b506100cc60005481565b3480156101ee57600080fd5b506100cc6101fd366004610577565b60066020526000908152604090205481565b6100b4610366565b60028054906000610227836105ef565b9091555050336000908152600660205260409020546102565760038054906000610250836105ef565b91905055505b33600090815260066020526040812080543492906102759084906105c0565b92505081905550346004600082825461028e91906105c0565b9091555050604080513381523460208201527fd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc35282519910160405180910390a1565b60405173f4cb4eab20236d95b1475f20d101fb509fdcb587904780156108fc02916000818181858888f1935050505015801561030d573d6000803e3d6000fd5b50565b3373f4cb4eab20236d95b1475f20d101fb509fdcb587146103615760405162461bcd60e51b815260206004820152600660248201526510b7bbb732b960d11b60448201526064015b60405180910390fd5b600055565b6000543410156103a15760405162461bcd60e51b8152600401610358906020808252600490820152632166656560e01b604082015260600190565b336000908152600560205260409020546001600160a01b0316156103f25760405162461bcd60e51b81526020600482015260086024820152670858dc99585d195960c21b6044820152606401610358565b6000604051806020016104049061056a565b601f1982820381018352601f90910116604052905060006104266001436105d8565b60408051914060208301526bffffffffffffffffffffffff193360601b16908201526054016040516020818303038152906040528051906020012090506000818351602085016000f560405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156104b357600080fd5b505af11580156104c7573d6000803e3d6000fd5b505033600090815260056020526040812080546001600160a01b0319166001600160a01b038616179055600180549093508392506105069083906105c0565b92505081905550346004600082825461051f91906105c0565b9091555050604080513381526001600160a01b03831660208201527f28c38ba9dba9c5d9a51017fdc46bfca508e571eb57de9bb616817d66f2c85015910160405180910390a1505050565b6124438061062183390190565b60006020828403121561058957600080fd5b81356001600160a01b03811681146105a057600080fd5b9392505050565b6000602082840312156105b957600080fd5b5035919050565b600082198211156105d3576105d361060a565b500190565b6000828210156105ea576105ea61060a565b500390565b60006000198214156106035761060361060a565b5060010190565b634e487b7160e01b600052601160045260246000fdfe608060405234801561001057600080fd5b50612423806100206000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806372e67c47116100ad578063c4d66de811610071578063c4d66de8146102b4578063ea1f7eb4146102c7578063f141d916146102da578063f244a8d0146102ed578063f6bf2e661461030057600080fd5b806372e67c4714610255578063923ca6741461026857806393e3648e1461027b5780639f2496621461028e578063a1fb1847146102a157600080fd5b806337115c66116100f457806337115c66146101d45780633a091650146101e75780636380b93e146101fa578063645bee801461020d57806365f1bfc41461022057600080fd5b806313217f0e14610131578063150b7a0214610146578063165c16571461019b5780631ec3cc37146101ae57806333dc76f9146101c1575b600080fd5b61014461013f366004611e42565b610313565b005b61017d610154366004611d66565b7f150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f949350505050565b6040516001600160e01b031990911681526020015b60405180910390f35b6101446101a9366004612110565b6103bb565b6101446101bc366004611f44565b6104c8565b6101446101cf366004611e42565b6105cb565b6101446101e2366004611e42565b61067e565b6101446101f5366004611e42565b610890565b6101446102083660046120b0565b610932565b61014461021b366004612161565b610bb9565b61023361022e366004612279565b610cc1565b6040805194151585526020850193909352918301526060820152608001610192565b610144610263366004611fdf565b610f6c565b610144610276366004611ed8565b6110a9565b610144610289366004611fdf565b61123e565b61014461029c366004611e42565b61138c565b6101446102af366004611ed8565b611458565b6101446102c2366004611d44565b61183c565b6101446102d5366004611e84565b611912565b6101446102e8366004612110565b6119f8565b6101446102fb366004612053565b611af4565b61014461030e366004611e42565b611bc0565b8060005b818110156103b55773ce761d788df608bd21bdd59d6f4b54b2e27f25bb639024944885858481811061034b5761034b6123a1565b905060200201356040518263ffffffff1660e01b815260040161037091815260200190565b600060405180830381600087803b15801561038a57600080fd5b505af115801561039e573d6000803e3d6000fd5b5050505080806103ad90612370565b915050610317565b50505050565b6000546001600160a01b031633146103ee5760405162461bcd60e51b81526004016103e5906122f6565b60405180910390fd5b8260005b818110156104c057732a0f1cb17680161cf255348ddfdee94ea8ca196a6390dd2627878784818110610426576104266123a1565b6040516001600160e01b031960e086901b168152602090910292909201356004830152506024810186905260448101879052606401602060405180830381600087803b15801561047557600080fd5b505af1158015610489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ad9190612208565b50806104b881612370565b9150506103f2565b505050505050565b6000546001600160a01b031633146104f25760405162461bcd60e51b81526004016103e5906122f6565b828181146105125760405162461bcd60e51b81526004016103e5906122d8565b60005b818110156104c0577351c0b29a1d84611373ba301706c6b4b72283c80f6354d3652a878784818110610549576105496123a1565b90506020020135868685818110610562576105626123a1565b905061048002016040518363ffffffff1660e01b8152600401610586929190612316565b600060405180830381600087803b1580156105a057600080fd5b505af11580156105b4573d6000803e3d6000fd5b5050505080806105c390612370565b915050610515565b8060005b818110156103b55773ce761d788df608bd21bdd59d6f4b54b2e27f25bb63095ea7b330868685818110610604576106046123a1565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b50505050808061067690612370565b9150506105cf565b600073f41270836df4db1d28f7fd0935270e3a603e78cc6001600160a01b0316632420b7ad6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cd57600080fd5b505afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107059190612260565b90506000198260005b818110156104c057732069b76afe6b734fb65d1d099e7ec64ee9cc76b263b866c8a4878784818110610742576107426123a1565b6040516001600160e01b031960e086901b168152602090910292909201356004830152506024810187905260448101869052606401602060405180830381600087803b15801561079157600080fd5b505af11580156107a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c99190612208565b50732a0f1cb17680161cf255348ddfdee94ea8ca196a63b866c8a48787848181106107f6576107f66123a1565b6040516001600160e01b031960e086901b168152602090910292909201356004830152506024810187905260448101869052606401602060405180830381600087803b15801561084557600080fd5b505af1158015610859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087d9190612208565b508061088881612370565b91505061070e565b8060005b818110156103b55773ce761d788df608bd21bdd59d6f4b54b2e27f25bb63b00b52f18585848181106108c8576108c86123a1565b905060200201356040518263ffffffff1660e01b81526004016108ed91815260200190565b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b50505050808061092a90612370565b915050610894565b6000546001600160a01b0316331461095c5760405162461bcd60e51b81526004016103e5906122f6565b8281811461097c5760405162461bcd60e51b81526004016103e5906122d8565b60005b818110156104c057600086868381811061099b5761099b6123a1565b90506020020135905060008585848181106109b8576109b86123a1565b90506020020160208101906109cd91906122bd565b90508060ff1660011415610a405760405163de99903960e01b8152600481018390526000805160206123ce8339815191529063de999039906024015b600060405180830381600087803b158015610a2357600080fd5b505af1158015610a37573d6000803e3d6000fd5b50505050610ba4565b8060ff1660021415610a7e57604051630164d36760e21b8152600481018390526000805160206123ce833981519152906305934d9c90602401610a09565b8060ff1660031415610abc5760405163706c962560e11b8152600481018390526000805160206123ce8339815191529063e0d92c4a90602401610a09565b8060ff1660041415610afa576040516396cf4c4b60e01b8152600481018390526000805160206123ce833981519152906396cf4c4b90602401610a09565b8060ff1660051415610b385760405163fe6676b360e01b8152600481018390526000805160206123ce8339815191529063fe6676b390602401610a09565b8060ff1660061415610ba45760405163bf2bf89560e01b8152600481018390526000805160206123ce8339815191529063bf2bf89590602401600060405180830381600087803b158015610b8b57600080fd5b505af1158015610b9f573d6000803e3d6000fd5b505050505b50508080610bb190612370565b91505061097f565b6000546001600160a01b03163314610be35760405162461bcd60e51b81526004016103e5906122f6565b8660005b81811015610cb5576000805160206123ce83398151915263c3c2407c8b8b84818110610c1557610c156123a1565b6040516001600160e01b031960e086901b1681526020909102929092013560048301525063ffffffff808c166024830152808b166044830152808a166064830152808916608483015280881660a4830152861660c482015260e401600060405180830381600087803b158015610c8a57600080fd5b505af1158015610c9e573d6000803e3d6000fd5b505050508080610cad90612370565b915050610be7565b50505050505050505050565b600080548190819081906001600160a01b03163314610cf25760405162461bcd60e51b81526004016103e5906122f6565b604051633050a0d560e21b81526004810189905260ff8089166024830152871660448201526064810186905273f41270836df4db1d28f7fd0935270e3a603e78cc9063c14283549060840160806040518083038186803b158015610d5557600080fd5b505afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d9190612223565b9296509094509250905083610dcc5760405162461bcd60e51b8152602060048201526005602482015264216c75636b60d81b60448201526064016103e5565b60405163197c6ff160e21b81526004810189905260ff8089166024830152871660448201526064810186905273f41270836df4db1d28f7fd0935270e3a603e78cc906365f1bfc490608401600060405180830381600087803b158015610e3157600080fd5b505af1158015610e45573d6000803e3d6000fd5b50505050600073f41270836df4db1d28f7fd0935270e3a603e78cc6001600160a01b0316630bf3bcba6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9857600080fd5b505afa158015610eac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed09190612260565b905073f41270836df4db1d28f7fd0935270e3a603e78cc6342842e0e3033610ef9600186612359565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b158015610f4857600080fd5b505af1158015610f5c573d6000803e3d6000fd5b5050505050945094509450949050565b6000546001600160a01b03163314610f965760405162461bcd60e51b81526004016103e5906122f6565b83828114610fb65760405162461bcd60e51b81526004016103e5906122d8565b60005b818110156110a057732069b76afe6b734fb65d1d099e7ec64ee9cc76b26390dd2627888884818110610fed57610fed6123a1565b9050602002013585888886818110611007576110076123a1565b6040516001600160e01b031960e088901b1681526004810195909552602485019390935250602090910201356044820152606401602060405180830381600087803b15801561105557600080fd5b505af1158015611069573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108d9190612208565b508061109881612370565b915050610fb9565b50505050505050565b6000546001600160a01b031633146110d35760405162461bcd60e51b81526004016103e5906122f6565b828181146110f35760405162461bcd60e51b81526004016103e5906122d8565b60005b818110156104c0576000848483818110611112576111126123a1565b905060c0020160068060200260405190810160405280929190826006602002808284376000920191909152509192506000805160206123ce833981519152915063c3c2407c905088888581811061116b5761116b6123a1565b9050602002013583600060068110611185576111856123a1565b60209081029190910151908501516040808701516060880151608089015160a08a0151935160e089901b6001600160e01b0319168152600481019790975263ffffffff9586166024880152938516604487015290841660648601528316608485015290821660a48401521660c482015260e401600060405180830381600087803b15801561121257600080fd5b505af1158015611226573d6000803e3d6000fd5b5050505050808061123690612370565b9150506110f6565b6000546001600160a01b031633146112685760405162461bcd60e51b81526004016103e5906122f6565b838281146112a25760405162461bcd60e51b8152602060048201526007602482015266042d8cadccee8d60cb1b60448201526064016103e5565b60005b818110156110a057732a0f1cb17680161cf255348ddfdee94ea8ca196a6390dd26278888848181106112d9576112d96123a1565b90506020020135858888868181106112f3576112f36123a1565b6040516001600160e01b031960e088901b1681526004810195909552602485019390935250602090910201356044820152606401602060405180830381600087803b15801561134157600080fd5b505af1158015611355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113799190612208565b508061138481612370565b9150506112a5565b6000546001600160a01b031633146113b65760405162461bcd60e51b81526004016103e5906122f6565b8060005b818110156103b557732069b76afe6b734fb65d1d099e7ec64ee9cc76b263379607f58585848181106113ee576113ee6123a1565b905060200201356040518263ffffffff1660e01b815260040161141391815260200190565b600060405180830381600087803b15801561142d57600080fd5b505af1158015611441573d6000803e3d6000fd5b50505050808061145090612370565b9150506113ba565b6000546001600160a01b031633146114825760405162461bcd60e51b81526004016103e5906122f6565b828181146114a25760405162461bcd60e51b81526004016103e5906122d8565b60005b818110156104c05760008686838181106114c1576114c16123a1565b90506020020135905060008585848181106114de576114de6123a1565b905060c002016006806020026040519081016040528092919082600660200280828437600092018290525092935050505b815160ff1681101561158d5760405163de99903960e01b8152600481018490526000805160206123ce8339815191529063de99903990602401600060405180830381600087803b15801561156257600080fd5b505af1158015611576573d6000803e3d6000fd5b50505050808061158590612370565b91505061150f565b5060005b602082015160ff1681101561161257604051630164d36760e21b8152600481018490526000805160206123ce833981519152906305934d9c90602401600060405180830381600087803b1580156115e757600080fd5b505af11580156115fb573d6000803e3d6000fd5b50505050808061160a90612370565b915050611591565b5060005b604082015160ff168110156116975760405163706c962560e11b8152600481018490526000805160206123ce8339815191529063e0d92c4a90602401600060405180830381600087803b15801561166c57600080fd5b505af1158015611680573d6000803e3d6000fd5b50505050808061168f90612370565b915050611616565b5060005b606082015160ff1681101561171c576040516396cf4c4b60e01b8152600481018490526000805160206123ce833981519152906396cf4c4b90602401600060405180830381600087803b1580156116f157600080fd5b505af1158015611705573d6000803e3d6000fd5b50505050808061171490612370565b91505061169b565b5060005b608082015160ff168110156117a15760405163fe6676b360e01b8152600481018490526000805160206123ce8339815191529063fe6676b390602401600060405180830381600087803b15801561177657600080fd5b505af115801561178a573d6000803e3d6000fd5b50505050808061179990612370565b915050611720565b5060005b60a082015160ff168110156118265760405163bf2bf89560e01b8152600481018490526000805160206123ce8339815191529063bf2bf89590602401600060405180830381600087803b1580156117fb57600080fd5b505af115801561180f573d6000803e3d6000fd5b50505050808061181e90612370565b9150506117a5565b505050808061183490612370565b9150506114a5565b6000546001600160a01b0316156118845760405162461bcd60e51b815260206004820152600c60248201526b085a5b9a5d1a585b1a5e995960a21b60448201526064016103e5565b600080546001600160a01b0319166001600160a01b03831690811790915560405163a22cb46560e01b815260048101919091526001602482015273f41270836df4db1d28f7fd0935270e3a603e78cc9063a22cb46590604401600060405180830381600087803b1580156118f757600080fd5b505af115801561190b573d6000803e3d6000fd5b5050505050565b6000546001600160a01b0316331461193c5760405162461bcd60e51b81526004016103e5906122f6565b8160005b8181101561190b5773ce761d788df608bd21bdd59d6f4b54b2e27f25bb6342842e0e3385888886818110611976576119766123a1565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156119cd57600080fd5b505af11580156119e1573d6000803e3d6000fd5b5050505080806119f090612370565b915050611940565b6000546001600160a01b03163314611a225760405162461bcd60e51b81526004016103e5906122f6565b8260005b818110156104c057732069b76afe6b734fb65d1d099e7ec64ee9cc76b26390dd2627878784818110611a5a57611a5a6123a1565b6040516001600160e01b031960e086901b168152602090910292909201356004830152506024810186905260448101879052606401602060405180830381600087803b158015611aa957600080fd5b505af1158015611abd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae19190612208565b5080611aec81612370565b915050611a26565b6000546001600160a01b03163314611b1e5760405162461bcd60e51b81526004016103e5906122f6565b8160005b8181101561190b577351c0b29a1d84611373ba301706c6b4b72283c80f6354d3652a868684818110611b5657611b566123a1565b90506020020135856040518363ffffffff1660e01b8152600401611b7b929190612316565b600060405180830381600087803b158015611b9557600080fd5b505af1158015611ba9573d6000803e3d6000fd5b505050508080611bb890612370565b915050611b22565b8060005b818110156103b557732a0f1cb17680161cf255348ddfdee94ea8ca196a63b00b52f1858584818110611bf857611bf86123a1565b905060200201356040518263ffffffff1660e01b8152600401611c1d91815260200190565b600060405180830381600087803b158015611c3757600080fd5b505af1158015611c4b573d6000803e3d6000fd5b505050508080611c5a90612370565b915050611bc4565b80356001600160a01b0381168114611c7957600080fd5b919050565b60008083601f840112611c9057600080fd5b50813567ffffffffffffffff811115611ca857600080fd5b60208301915083602060c083028501011115611cc357600080fd5b9250929050565b60008083601f840112611cdc57600080fd5b50813567ffffffffffffffff811115611cf457600080fd5b6020830191508360208260051b8501011115611cc357600080fd5b80518015158114611c7957600080fd5b803563ffffffff81168114611c7957600080fd5b803560ff81168114611c7957600080fd5b600060208284031215611d5657600080fd5b611d5f82611c62565b9392505050565b60008060008060808587031215611d7c57600080fd5b611d8585611c62565b9350611d9360208601611c62565b925060408501359150606085013567ffffffffffffffff80821115611db757600080fd5b818701915087601f830112611dcb57600080fd5b813581811115611ddd57611ddd6123b7565b604051601f8201601f19908116603f01168101908382118183101715611e0557611e056123b7565b816040528281528a6020848701011115611e1e57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060208385031215611e5557600080fd5b823567ffffffffffffffff811115611e6c57600080fd5b611e7885828601611cca565b90969095509350505050565b600080600060408486031215611e9957600080fd5b833567ffffffffffffffff811115611eb057600080fd5b611ebc86828701611cca565b9094509250611ecf905060208501611c62565b90509250925092565b60008060008060408587031215611eee57600080fd5b843567ffffffffffffffff80821115611f0657600080fd5b611f1288838901611cca565b90965094506020870135915080821115611f2b57600080fd5b50611f3887828801611c7e565b95989497509550505050565b60008060008060408587031215611f5a57600080fd5b843567ffffffffffffffff80821115611f7257600080fd5b611f7e88838901611cca565b90965094506020870135915080821115611f9757600080fd5b818701915087601f830112611fab57600080fd5b813581811115611fba57600080fd5b88602061048083028501011115611fd057600080fd5b95989497505060200194505050565b600080600080600060608688031215611ff757600080fd5b853567ffffffffffffffff8082111561200f57600080fd5b61201b89838a01611cca565b9097509550602088013591508082111561203457600080fd5b5061204188828901611cca565b96999598509660400135949350505050565b60008060006104a080858703121561206a57600080fd5b843567ffffffffffffffff81111561208157600080fd5b61208d87828801611cca565b9095509350508481018610156120a257600080fd5b506020840190509250925092565b600080600080604085870312156120c657600080fd5b843567ffffffffffffffff808211156120de57600080fd5b6120ea88838901611cca565b9096509450602087013591508082111561210357600080fd5b50611f3887828801611cca565b6000806000806060858703121561212657600080fd5b843567ffffffffffffffff81111561213d57600080fd5b61214987828801611cca565b90989097506020870135966040013595509350505050565b60008060008060008060008060e0898b03121561217d57600080fd5b883567ffffffffffffffff81111561219457600080fd5b6121a08b828c01611cca565b90995097506121b3905060208a01611d1f565b95506121c160408a01611d1f565b94506121cf60608a01611d1f565b93506121dd60808a01611d1f565b92506121eb60a08a01611d1f565b91506121f960c08a01611d1f565b90509295985092959890939650565b60006020828403121561221a57600080fd5b611d5f82611d0f565b6000806000806080858703121561223957600080fd5b61224285611d0f565b60208601516040870151606090970151919890975090945092505050565b60006020828403121561227257600080fd5b5051919050565b6000806000806080858703121561228f57600080fd5b8435935061229f60208601611d33565b92506122ad60408601611d33565b9396929550929360600135925050565b6000602082840312156122cf57600080fd5b611d5f82611d33565b60208082526004908201526310b632b760e11b604082015260600190565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b8281526104a0810160208083018460005b602481101561234e5760ff61233b83611d33565b1683529183019190830190600101612327565b505050509392505050565b60008282101561236b5761236b61238b565b500390565b60006000198214156123845761238461238b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfe000000000000000000000000b5f5af1087a8da62a23b08c00c6ec9af21f397a1a26469706673582212208491efdc3299aeb651a08a40b98454a50c51f637d2bbc86193959f2a302e9c3464736f6c63430008070033a264697066735822122075bdcbcbc0af685d733669a7e5f6053c1d9c8792cae3db92f3ed07607e456d9364736f6c63430008070033

Deployed ByteCode Sourcemap

90:1669:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:258;;;:::i;:::-;;274:24;;;;;;;;;;;;;;;;;;;2733:25:2;;;2721:2;2706:18;274:24:1;;;;;;;;239:29;;;;;;;;;;;;;;;;1665:92;;;;;;;;;;;;;:::i;304:24::-;;;;;;;;;;;;;;;;334:26;;;;;;;;;;;;;;;;1538:121;;;;;;;;;;-1:-1:-1;1538:121:1;;;;;:::i;:::-;;:::i;128:74::-;;;;;;;;;;;;160:42;128:74;;;;;-1:-1:-1;;;;;953:32:2;;;935:51;;923:2;908:18;128:74:1;789:203:2;366:51:1;;;;;;;;;;-1:-1:-1;366:51:1;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;366:51:1;;;208:25;;;;;;;;;;;;;;;;423:40;;;;;;;;;;-1:-1:-1;423:40:1;;;;;:::i;:::-;;;;;;;;;;;;;;582:686;;;:::i;1274:258::-;1316:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;1350:10:1;1341:20;;;;:8;:20;;;;;;1337:67;;1382:9;:11;;;:9;:11;;;:::i;:::-;;;;;;1337:67;1422:10;1413:20;;;;:8;:20;;;;;:33;;1437:9;;1413:20;:33;;1437:9;;1413:33;:::i;:::-;;;;;;;;1471:9;1456:11;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;1495:30:1;;;1503:10;1480:51:2;;1515:9:1;1562:2:2;1547:18;;1540:34;1495:30:1;;1453:18:2;1495:30:1;;;;;;;1274:258::o;1665:92::-;1704:46;;160:42;;1728:21;1704:46;;;;;;;;;1728:21;160:42;1704:46;;;;;;;;;;;;;;;;;;;;;1665:92::o;1538:121::-;1600:10;160:42;1600:19;1592:38;;;;-1:-1:-1;;;1592:38:1;;2455:2:2;1592:38:1;;;2437:21:2;2494:1;2474:18;;;2467:29;-1:-1:-1;;;2512:18:2;;;2505:36;2558:18;;1592:38:1;;;;;;;;;1640:3;:12;1538:121::o;582:686::-;657:3;;644:9;:16;;636:33;;;;-1:-1:-1;;;636:33:1;;;;;;2123:2:2;2105:21;;;2162:1;2142:18;;;2135:29;-1:-1:-1;;;2195:2:2;2180:18;;2173:34;2239:2;2224:18;;1921:327;636:33:1;704:10;727:1;687:28;;;:16;:28;;;;;;-1:-1:-1;;;;;687:28:1;:42;679:63;;;;-1:-1:-1;;;679:63:1;;1787:2:2;679:63:1;;;1769:21:2;1826:1;1806:18;;;1799:29;-1:-1:-1;;;1844:18:2;;;1837:38;1892:18;;679:63:1;1585:331:2;679:63:1;752:21;776:34;;;;;;;;:::i;:::-;-1:-1:-1;;776:34:1;;;;;;;;;;;;;;;-1:-1:-1;820:12:1;872:16;887:1;872:12;:16;:::i;:::-;845:57;;;862:27;;845:57;;;647:19:2;-1:-1:-1;;891:10:1;704:2:2;700:15;696:53;682:12;;;675:75;766:12;;845:57:1;;;;;;;;;;;;835:68;;;;;;820:83;;913:17;1021:4;1010:8;1004:15;999:2;989:8;985:17;982:1;974:52;1045:49;;-1:-1:-1;;;1045:49:1;;1083:10;1045:49;;;935:51:2;961:65:1;;-1:-1:-1;;;;;;1045:37:1;;;;;908:18:2;;1045:49:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1121:10:1;1104:28;;;;:16;:28;;;;;:40;;-1:-1:-1;;;;;;1104:40:1;-1:-1:-1;;;;;1104:40:1;;;;;-1:-1:-1;1154:19:1;;-1:-1:-1;;;;;;1154:19:1;;-1:-1:-1;;1154:19:1;:::i;:::-;;;;;;;;1198:9;1183:11;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;1222:39:1;;;1239:10;1209:34:2;;-1:-1:-1;;;;;1279:15:2;;1274:2;1259:18;;1252:43;1222:39:1;;1144:18:2;1222:39:1;;;;;;;626:642;;;582:686::o;-1:-1:-1:-;;;;;;;;:::o;14:286:2:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:2;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:2:o;305:180::-;364:6;417:2;405:9;396:7;392:23;388:32;385:52;;;433:1;430;423:12;385:52;-1:-1:-1;456:23:2;;305:180;-1:-1:-1;305:180:2:o;2769:128::-;2809:3;2840:1;2836:6;2833:1;2830:13;2827:39;;;2846:18;;:::i;:::-;-1:-1:-1;2882:9:2;;2769:128::o;2902:125::-;2942:4;2970:1;2967;2964:8;2961:34;;;2975:18;;:::i;:::-;-1:-1:-1;3012:9:2;;2902:125::o;3032:135::-;3071:3;-1:-1:-1;;3092:17:2;;3089:43;;;3112:18;;:::i;:::-;-1:-1:-1;3159:1:2;3148:13;;3032:135::o;3172:127::-;3233:10;3228:3;3224:20;3221:1;3214:31;3264:4;3261:1;3254:15;3288:4;3285:1;3278:15

Swarm Source

ipfs://75bdcbcbc0af685d733669a7e5f6053c1d9c8792cae3db92f3ed07607e456d93
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.