Contract 0xF12EBB3F1135D6afE03016ACf595d2942161C9f5

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x767c3d8a369a7c618b664cc948aecec69d14a398de204efe0ccb65795846c485Transfer311395542022-02-16 13:13:54406 days 6 hrs ago0xe0d01efee7a9740f8e702f086dd4fcae87926abf IN  0xf12ebb3f1135d6afe03016acf595d2942161c9f50 FTM0.007166884783
0x081a8158b91278f1b23fcbc6291f1de493d8ed6a6346f456969fad772c93f82eTransfer Ownersh...306597122022-02-11 16:00:49411 days 3 hrs ago0x8b43eb774bae835b20ac8a222c5a91dcd339f376 IN  0xf12ebb3f1135d6afe03016acf595d2942161c9f50 FTM0.00853700093
0x03c1415a62a6eae854885e896baaf5b4e0d7009f8be8e94cce8511b2f8a3dc7d0x60806040306596902022-02-11 16:00:31411 days 3 hrs ago0x8b43eb774bae835b20ac8a222c5a91dcd339f376 IN  Create: CommunityOfferingNRT0 FTM0.14854984869
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x03c1415a62a6eae854885e896baaf5b4e0d7009f8be8e94cce8511b2f8a3dc7d306596902022-02-11 16:00:31411 days 3 hrs ago 0x8b43eb774bae835b20ac8a222c5a91dcd339f376  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CommunityOfferingNRT

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at FtmScan.com on 2022-02-11
*/

pragma solidity 0.8.5;

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



/**
 * @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;
    }
}

// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)





/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// SPDX-License-Identifier: AGPL-3.0-or-later




//NRT is like a private stock
//can only be traded with the issuer who remains in control of the market
//until he opens the redemption window
contract CommunityOfferingNRT is Ownable {
    uint256 private _issuedSupply;
    uint256 private _outstandingSupply;
    uint256 private _decimals;
    string private _symbol;

    mapping(address => uint256) private _balances;

    event Issued(address account, uint256 amount);
    event Redeemed(address account, uint256 amount);

    constructor(string memory __symbol, uint256 __decimals) {
        _symbol = __symbol;
        _decimals = __decimals;
        _issuedSupply = 0;
        _outstandingSupply = 0;
    }

    // Creates amount NRT and assigns them to account
    function issue(address account, uint256 amount) public onlyOwner {
        require(account != address(0), "zero address");

        _issuedSupply += amount;
        _outstandingSupply += amount;
        _balances[account] += amount;

        emit Issued(account, amount);
    }

    //redeem, caller handles transfer of created value
    function redeem(address account, uint256 amount) public onlyOwner {
        require(account != address(0), "zero address");
        require(_balances[account] >= amount, "Insufficent balance");

        _balances[account] -= amount;
        _outstandingSupply -= amount;

        emit Redeemed(account, amount);
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint256) {
        return _decimals;
    }

    function issuedSupply() public view returns (uint256) {
        return _issuedSupply;
    }

    function outstandingSupply() public view returns (uint256) {
        return _outstandingSupply;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"__symbol","type":"string"},{"internalType":"uint256","name":"__decimals","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Issued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Redeemed","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"issue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"issuedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"outstandingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620009d6380380620009d683398101604081905262000034916200015f565b6200003f3362000069565b815162000054906004906020850190620000b9565b50600355506000600181905560025562000297565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620000c79062000244565b90600052602060002090601f016020900481019282620000eb576000855562000136565b82601f106200010657805160ff191683800117855562000136565b8280016001018555821562000136579182015b828111156200013657825182559160200191906001019062000119565b506200014492915062000148565b5090565b5b8082111562000144576000815560010162000149565b600080604083850312156200017357600080fd5b82516001600160401b03808211156200018b57600080fd5b818501915085601f830112620001a057600080fd5b815181811115620001b557620001b562000281565b604051601f8201601f19908116603f01168101908382118183101715620001e057620001e062000281565b81604052828152602093508884848701011115620001fd57600080fd5b600091505b8282101562000221578482018401518183018501529083019062000202565b82821115620002335760008484830101525b969092015195979596505050505050565b600181811c908216806200025957607f821691505b602082108114156200027b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61072f80620002a76000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063867904b411610066578063867904b4146101085780638da5cb5b1461011b57806395d89b4114610136578063caacafe21461014b578063f2fde38b1461015357600080fd5b80631e9a6950146100a3578063313ce567146100b85780636291f572146100cf57806370a08231146100d7578063715018a614610100575b600080fd5b6100b66100b13660046105c5565b610166565b005b6003545b6040519081526020015b60405180910390f35b6001546100bc565b6100bc6100e53660046105a3565b6001600160a01b031660009081526005602052604090205490565b6100b66102c9565b6100b66101163660046105c5565b6102ff565b6000546040516001600160a01b0390911681526020016100c6565b61013e61040a565b6040516100c691906105ef565b6002546100bc565b6100b66101613660046105a3565b61049c565b6000546001600160a01b031633146101995760405162461bcd60e51b815260040161019090610644565b60405180910390fd5b6001600160a01b0382166101de5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401610190565b6001600160a01b03821660009081526005602052604090205481111561023c5760405162461bcd60e51b8152602060048201526013602482015272496e737566666963656e742062616c616e636560681b6044820152606401610190565b6001600160a01b03821660009081526005602052604081208054839290610264908490610691565b92505081905550806002600082825461027d9190610691565b9091555050604080516001600160a01b0384168152602081018390527f4896181ff8f4543cc00db9fe9b6fb7e6f032b7eb772c72ab1ec1b4d2e03b936991015b60405180910390a15050565b6000546001600160a01b031633146102f35760405162461bcd60e51b815260040161019090610644565b6102fd6000610537565b565b6000546001600160a01b031633146103295760405162461bcd60e51b815260040161019090610644565b6001600160a01b03821661036e5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401610190565b80600160008282546103809190610679565b9250508190555080600260008282546103999190610679565b90915550506001600160a01b038216600090815260056020526040812080548392906103c6908490610679565b9091555050604080516001600160a01b0384168152602081018390527fa59f12e354e8cd10bb74c559844c2dd69a5458e31fe56c7594c62ca57480509a91016102bd565b606060048054610419906106a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610445906106a8565b80156104925780601f1061046757610100808354040283529160200191610492565b820191906000526020600020905b81548152906001019060200180831161047557829003601f168201915b5050505050905090565b6000546001600160a01b031633146104c65760405162461bcd60e51b815260040161019090610644565b6001600160a01b03811661052b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610190565b61053481610537565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461059e57600080fd5b919050565b6000602082840312156105b557600080fd5b6105be82610587565b9392505050565b600080604083850312156105d857600080fd5b6105e183610587565b946020939093013593505050565b600060208083528351808285015260005b8181101561061c57858101830151858201604001528201610600565b8181111561062e576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561068c5761068c6106e3565b500190565b6000828210156106a3576106a36106e3565b500390565b600181811c908216806106bc57607f821691505b602082108114156106dd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220c548e73f029b03dcc4a2871eddb78041bfbd7bf78a203a86c307f8607f34092e64736f6c634300080500330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000066146726f636b0000000000000000000000000000000000000000000000000000

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000066146726f636b0000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : __symbol (string): aFrock
Arg [1] : __decimals (uint256): 9

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [3] : 6146726f636b0000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

3493:1795:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4442:325;;;;;;:::i;:::-;;:::i;:::-;;4988:85;5056:9;;4988:85;;;3334:25:1;;;3322:2;3307:18;4988:85:0;;;;;;;;5081:93;5153:13;;5081:93;;4775:110;;;;;;:::i;:::-;-1:-1:-1;;;;;4859:18:0;4832:7;4859:18;;;:9;:18;;;;;;;4775:110;2475:103;;;:::i;4093:285::-;;;;;;:::i;:::-;;:::i;1824:87::-;1870:7;1897:6;1824:87;;-1:-1:-1;;;;;1897:6:0;;;788:51:1;;776:2;761:18;1824:87:0;743:102:1;4893:87:0;;;:::i;:::-;;;;;;;:::i;5182:103::-;5259:18;;5182:103;;2733:201;;;;;;:::i;:::-;;:::i;4442:325::-;1870:7;1897:6;-1:-1:-1;;;;;1897:6:0;706:10;2044:23;2036:68;;;;-1:-1:-1;;;2036:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;4527:21:0;::::1;4519:46;;;::::0;-1:-1:-1;;;4519:46:0;;3049:2:1;4519:46:0::1;::::0;::::1;3031:21:1::0;3088:2;3068:18;;;3061:30;-1:-1:-1;;;3107:18:1;;;3100:42;3159:18;;4519:46:0::1;3021:162:1::0;4519:46:0::1;-1:-1:-1::0;;;;;4584:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;:28;-1:-1:-1;4584:28:0::1;4576:60;;;::::0;-1:-1:-1;;;4576:60:0;;2340:2:1;4576:60:0::1;::::0;::::1;2322:21:1::0;2379:2;2359:18;;;2352:30;-1:-1:-1;;;2398:18:1;;;2391:49;2457:18;;4576:60:0::1;2312:169:1::0;4576:60:0::1;-1:-1:-1::0;;;;;4649:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;4671:6;;4649:18;:28:::1;::::0;4671:6;;4649:28:::1;:::i;:::-;;;;;;;;4710:6;4688:18;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;4734:25:0::1;::::0;;-1:-1:-1;;;;;1042:32:1;;1024:51;;1106:2;1091:18;;1084:34;;;4734:25:0::1;::::0;997:18:1;4734:25:0::1;;;;;;;;4442:325:::0;;:::o;2475:103::-;1870:7;1897:6;-1:-1:-1;;;;;1897:6:0;706:10;2044:23;2036:68;;;;-1:-1:-1;;;2036:68:0;;;;;;;:::i;:::-;2540:30:::1;2567:1;2540:18;:30::i;:::-;2475:103::o:0;4093:285::-;1870:7;1897:6;-1:-1:-1;;;;;1897:6:0;706:10;2044:23;2036:68;;;;-1:-1:-1;;;2036:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4177:21:0;::::1;4169:46;;;::::0;-1:-1:-1;;;4169:46:0;;3049:2:1;4169:46:0::1;::::0;::::1;3031:21:1::0;3088:2;3068:18;;;3061:30;-1:-1:-1;;;3107:18:1;;;3100:42;3159:18;;4169:46:0::1;3021:162:1::0;4169:46:0::1;4245:6;4228:13;;:23;;;;;;;:::i;:::-;;;;;;;;4284:6;4262:18;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;4301:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;4323:6;;4301:18;:28:::1;::::0;4323:6;;4301:28:::1;:::i;:::-;::::0;;;-1:-1:-1;;4347:23:0::1;::::0;;-1:-1:-1;;;;;1042:32:1;;1024:51;;1106:2;1091:18;;1084:34;;;4347:23:0::1;::::0;997:18:1;4347:23:0::1;979:145:1::0;4893:87:0;4932:13;4965:7;4958:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4893:87;:::o;2733:201::-;1870:7;1897:6;-1:-1:-1;;;;;1897:6:0;706:10;2044:23;2036:68;;;;-1:-1:-1;;;2036:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2822:22:0;::::1;2814:73;;;::::0;-1:-1:-1;;;2814:73:0;;1933:2:1;2814:73:0::1;::::0;::::1;1915:21:1::0;1972:2;1952:18;;;1945:30;2011:34;1991:18;;;1984:62;-1:-1:-1;;;2062:18:1;;;2055:36;2108:19;;2814:73:0::1;1905:228:1::0;2814:73:0::1;2898:28;2917:8;2898:18;:28::i;:::-;2733:201:::0;:::o;3094:191::-;3168:16;3187:6;;-1:-1:-1;;;;;3204:17:0;;;-1:-1:-1;;;;;;3204:17:0;;;;;;3237:40;;3187:6;;;;;;;3237:40;;3168:16;3237:40;3157:128;3094:191;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;320:1;317;310:12;272:2;343:29;362:9;343:29;:::i;:::-;333:39;262:116;-1:-1:-1;;;262:116:1:o;383:254::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:2;;;528:1;525;518:12;480:2;551:29;570:9;551:29;:::i;:::-;541:39;627:2;612:18;;;;599:32;;-1:-1:-1;;;470:167:1:o;1129:597::-;1241:4;1270:2;1299;1288:9;1281:21;1331:6;1325:13;1374:6;1369:2;1358:9;1354:18;1347:34;1399:1;1409:140;1423:6;1420:1;1417:13;1409:140;;;1518:14;;;1514:23;;1508:30;1484:17;;;1503:2;1480:26;1473:66;1438:10;;1409:140;;;1567:6;1564:1;1561:13;1558:2;;;1637:1;1632:2;1623:6;1612:9;1608:22;1604:31;1597:42;1558:2;-1:-1:-1;1710:2:1;1689:15;-1:-1:-1;;1685:29:1;1670:45;;;;1717:2;1666:54;;1250:476;-1:-1:-1;;;1250:476:1:o;2486:356::-;2688:2;2670:21;;;2707:18;;;2700:30;2766:34;2761:2;2746:18;;2739:62;2833:2;2818:18;;2660:182::o;3370:128::-;3410:3;3441:1;3437:6;3434:1;3431:13;3428:2;;;3447:18;;:::i;:::-;-1:-1:-1;3483:9:1;;3418:80::o;3503:125::-;3543:4;3571:1;3568;3565:8;3562:2;;;3576:18;;:::i;:::-;-1:-1:-1;3613:9:1;;3552:76::o;3633:380::-;3712:1;3708:12;;;;3755;;;3776:2;;3830:4;3822:6;3818:17;3808:27;;3776:2;3883;3875:6;3872:14;3852:18;3849:38;3846:2;;;3929:10;3924:3;3920:20;3917:1;3910:31;3964:4;3961:1;3954:15;3992:4;3989:1;3982:15;3846:2;;3688:325;;;:::o;4018:127::-;4079:10;4074:3;4070:20;4067:1;4060:31;4110:4;4107:1;4100:15;4134:4;4131:1;4124:15

Swarm Source

ipfs://c548e73f029b03dcc4a2871eddb78041bfbd7bf78a203a86c307f8607f34092e
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.