Contract 0xf0ea472fb04da831106940f58928b0e90e085bbb

Contract Overview

Balance:
190,107.736753871128875744 CRO

CRO Value:
$15,702.90 (@ $0.08/CRO)
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1ac76b85955839545543e48060b865e256369b027f5dc4e8bae2fd9f4bce9121Multi Release68593522023-02-07 21:30:347 mins ago0xc7629853c82d3f612ac5246681d3a828fe3fd8b4 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO5.434640568941 4,819.016083314
0xfd850706413258e67555644447035774160d6c47aadfaf735635c2399a57f22dMulti Release68589232023-02-07 20:49:5947 mins ago0x699ab281000994743c83feb123a28871a62aef61 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.40083289187 4,819.035212508
0xefdcb3f36d20425c6edae6847f61ef2f80839b9d18bc379dab24249cfb84db5dMulti Release68588032023-02-07 20:38:4258 mins ago0x8a555fdbf7854fe701545b8502551344c7a334f0 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.2850380684760
0x7458b1f6f2f077f644bfde364f2e0f5bf9fa56da572324fe3466f41d63111668Multi Release68586612023-02-07 20:25:151 hr 12 mins ago0x0144c8a1c8691c93da212609b7e1041e64210468 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.4006259463030
0x71b4ab11055adcc89bec1ae331ded6e752cc2364dee38d416fff2bfcc51df6e8Multi Release68582532023-02-07 19:46:511 hr 50 mins ago0x635370f2587a8453183345b910ae714a001a0f4c IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.342982532531 4,819.065538861
0xbadd4ca0507b4b52094dd5c3b888809d3673c23842f9c3a08b80114bc207c6dfMulti Release68576212023-02-07 18:47:192 hrs 50 mins ago0xd5c28d99e7a7078734c2e8d246366f0779000b22 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.400837773371 4,819.09390061
0x6ee94ed7b7c348c20120c4b3c2c2c54ea07065c1a54ef9da381247f8ea62d588Multi Release68572402023-02-07 18:11:263 hrs 26 mins ago0xa02ca966f95ce80c7f8c4c5a1780bbacc82aa023 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.2850421895590
0x3e5bddf6945ef212b807c25b45ae3248e44a223abeec0f5a347ee01d1ae707a3Multi Release68569962023-02-07 17:48:283 hrs 49 mins ago0x7f90769c878a48bd8b055d43de9dcfe053f51f87 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO1.962972573725 4,819.121041233
0x1fd068cdbb0cce3d8e9847c3202ab7db7ca41e6c7c8ba17eeb486af8354eea00Multi Release68567392023-02-07 17:24:174 hrs 13 mins ago0xc21b6cb04aa1997c8754f1d551905b90da532dfa IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.2850435231230
0x9e6cbc7fef0d1368321beb39dfdc60c55d0efd95abbe706f9e972f6876d3dc6dMulti Release68564342023-02-07 16:55:394 hrs 42 mins ago0x9cb51ea842d30ce8363b98487e552c191a5e968c IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.4006920605040
0x8ada43f4bb6dbf266d08794e5799b3827b350bf8c341180ea07b4b260f0af49bMulti Release68553152023-02-07 15:10:246 hrs 27 mins ago0x0e04f436d0a53328c1b7dae02daa724e86b66747 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.8054772848010
0x0e851fbfd58fa55fb6135682e0ab1ebc50f00310b3780cc4e06bd3b3af349134Multi Release68544922023-02-07 13:53:057 hrs 44 mins ago0x02b735b0c66a84ec6d041471c9d6f0c1980606ea IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.516617315593 4,819.236332364
0xecc243ba7bf71f3603fd22a25acf3b0eaedf83624adc11fdbb343a98df5783a1Multi Release68544652023-02-07 13:50:327 hrs 47 mins ago0x4e3a93a512b18cceeac05adabcc7af2e0d2814a4 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.3428746585080
0x1ede7acdb61f02e6f3fb5b253a5f588ef3d61803de0b0da254a848779852b4f3Multi Release68539672023-02-07 13:03:448 hrs 33 mins ago0x31a65f5d559fc3f1bea7798819640fe208d139b7 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.4450397858120
0x104050f04467fba1ca9af8b768d9963c0902417c5fda77919000ccec54d23a13Multi Release68535672023-02-07 12:26:099 hrs 11 mins ago0x767d957ea7f5d78b611eaeb84c3bf2443d26c9c5 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.805850939364 4,819.279123546
0x275f0682a7a19770416133d7d7e46b4782b587f8e374f0b8b9b720d7b2534490Multi Release68533562023-02-07 12:06:219 hrs 31 mins ago0x98dcf36e6966ac5d58c98cfaf11bbc80958bfea4 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.9211483013810
0x701a064b2f8278eeff4d4596ca69f8bb333de01117466bb468eb6ad01aebd2c2Multi Release68529232023-02-07 11:25:4410 hrs 11 mins ago0xde7317aa4e970d4d9efe8666e35650a172d98b5d IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.400913502672 4,819.309075392
0x85319065e22afe5406ea3b9c4376ea7b0c0c2c912bb8a5eb61c62d6838985968Multi Release68516002023-02-07 9:21:2612 hrs 16 mins ago0x19e3e29ec58b33b41d8394d338be2a20a6d28176 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.2850576109890
0x467f30dbb1abfeafe0eab5fdc039b2170e04b2c5c7a51729483cb94e0ef95a2cMulti Release68514522023-02-07 9:07:3212 hrs 30 mins ago0x7913ba8af0adca9396555e810410abeb30ccf3e6 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.342884635910
0x7270a7f15bc351f4ff45ae37051f9c23b27880db372d8a88d06c3fee46763b50Multi Release68512362023-02-07 8:47:1412 hrs 50 mins ago0xef809f81e0bd72fe637595177b53e5dd13d90d35 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.690137011563 4,818.887767085
0x66863345b4ea29a8640e315dffbe914934559a2ffb7fc734d321a39a1e8933f5Multi Release68498822023-02-07 6:40:0514 hrs 57 mins ago0x301a999d754ce960927cd55248717d7341589c7d IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.4007173414520
0x57706967f6a2b7579b6b83f17d542f7e86acfcd481a743cb201503de1be218f1Multi Release68486422023-02-07 4:43:3016 hrs 54 mins ago0xc7db3a3b78359fd221653ece076730b48a88ea02 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.285213677536 4,819.508229893
0xded7d4cd69dfd45cdec6c540e60ee44acec26d2cf45e9df75800f8925fae4f46Multi Release68482522023-02-07 4:06:5117 hrs 30 mins ago0x5f1565c6f992b50e9a530eae1e9f63835f8cb88f IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.4007236228330
0x2d1cf5fea7452c973fa74cb458b939813323962a6ba50c51a77b6299fd80e5f1Multi Release68481662023-02-07 3:58:4517 hrs 38 mins ago0x337edf5a11e214e132d12a3e934006822728d3c8 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO0.40093191225 4,819.530373617
0x45a23e091b49dddfdd46572e61ae462d275f236985d6162effeb4172c49273e6Multi Release68473552023-02-07 2:42:2718 hrs 55 mins ago0xd9da1f68700729c3c0a56b5f9eccb9606c448837 IN  0xf0ea472fb04da831106940f58928b0e90e085bbb0 CRO2.541574706165 4,819.567277903
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x1ac76b85955839545543e48060b865e256369b027f5dc4e8bae2fd9f4bce912168593522023-02-07 21:30:347 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0xc7629853c82d3f612ac5246681d3a828fe3fd8b4713.162228396603396602 CRO
0xfd850706413258e67555644447035774160d6c47aadfaf735635c2399a57f22d68589232023-02-07 20:49:5947 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x699ab281000994743c83feb123a28871a62aef618.126560939060939062 CRO
0xefdcb3f36d20425c6edae6847f61ef2f80839b9d18bc379dab24249cfb84db5d68588032023-02-07 20:38:4258 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x8a555fdbf7854fe701545b8502551344c7a334f05.520104895104895105 CRO
0x7458b1f6f2f077f644bfde364f2e0f5bf9fa56da572324fe3466f41d6311166868586612023-02-07 20:25:151 hr 12 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x0144c8a1c8691c93da212609b7e1041e6421046811.118881118881118882 CRO
0x71b4ab11055adcc89bec1ae331ded6e752cc2364dee38d416fff2bfcc51df6e868582532023-02-07 19:46:511 hr 50 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x635370f2587a8453183345b910ae714a001a0f4c71.403284215784215784 CRO
0xbadd4ca0507b4b52094dd5c3b888809d3673c23842f9c3a08b80114bc207c6df68576212023-02-07 18:47:192 hrs 50 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0xd5c28d99e7a7078734c2e8d246366f0779000b2254.004120879120879122 CRO
0x6ee94ed7b7c348c20120c4b3c2c2c54ea07065c1a54ef9da381247f8ea62d58868572402023-02-07 18:11:263 hrs 26 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0xa02ca966f95ce80c7f8c4c5a1780bbacc82aa02318.001373626373626374 CRO
0x3e5bddf6945ef212b807c25b45ae3248e44a223abeec0f5a347ee01d1ae707a368569962023-02-07 17:48:283 hrs 49 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x7f90769c878a48bd8b055d43de9dcfe053f51f8738.44592907092907093 CRO
0x1fd068cdbb0cce3d8e9847c3202ab7db7ca41e6c7c8ba17eeb486af8354eea0068567392023-02-07 17:24:174 hrs 13 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0xc21b6cb04aa1997c8754f1d551905b90da532dfa37.997002997002997003 CRO
0x9e6cbc7fef0d1368321beb39dfdc60c55d0efd95abbe706f9e972f6876d3dc6d68564342023-02-07 16:55:394 hrs 42 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x9cb51ea842d30ce8363b98487e552c191a5e968c31.02436625874125874 CRO
0x8ada43f4bb6dbf266d08794e5799b3827b350bf8c341180ea07b4b260f0af49b68553152023-02-07 15:10:246 hrs 27 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x0e04f436d0a53328c1b7dae02daa724e86b667472,204.30093344155844156 CRO
0x0e851fbfd58fa55fb6135682e0ab1ebc50f00310b3780cc4e06bd3b3af34913468544922023-02-07 13:53:057 hrs 44 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x02b735b0c66a84ec6d041471c9d6f0c1980606ea259.60398976023976024 CRO
0xecc243ba7bf71f3603fd22a25acf3b0eaedf83624adc11fdbb343a98df5783a168544652023-02-07 13:50:327 hrs 47 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x4e3a93a512b18cceeac05adabcc7af2e0d2814a4103.841595904095904096 CRO
0x1ede7acdb61f02e6f3fb5b253a5f588ef3d61803de0b0da254a848779852b4f368539672023-02-07 13:03:448 hrs 33 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x31a65f5d559fc3f1bea7798819640fe208d139b720.087256493506493507 CRO
0x104050f04467fba1ca9af8b768d9963c0902417c5fda77919000ccec54d23a1368535672023-02-07 12:26:099 hrs 11 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x767d957ea7f5d78b611eaeb84c3bf2443d26c9c551.4547952047952048 CRO
0x275f0682a7a19770416133d7d7e46b4782b587f8e374f0b8b9b720d7b253449068533562023-02-07 12:06:219 hrs 31 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x98dcf36e6966ac5d58c98cfaf11bbc80958bfea4103.319805194805194808 CRO
0x701a064b2f8278eeff4d4596ca69f8bb333de01117466bb468eb6ad01aebd2c268529232023-02-07 11:25:4410 hrs 11 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0xde7317aa4e970d4d9efe8666e35650a172d98b5d23.582199050949050949 CRO
0x85319065e22afe5406ea3b9c4376ea7b0c0c2c912bb8a5eb61c62d683898596868516002023-02-07 9:21:2612 hrs 16 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x19e3e29ec58b33b41d8394d338be2a20a6d2817619.698894855144855145 CRO
0x467f30dbb1abfeafe0eab5fdc039b2170e04b2c5c7a51729483cb94e0ef95a2c68514522023-02-07 9:07:3212 hrs 30 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x7913ba8af0adca9396555e810410abeb30ccf3e688.369786463536463536 CRO
0x7270a7f15bc351f4ff45ae37051f9c23b27880db372d8a88d06c3fee46763b5068512362023-02-07 8:47:1412 hrs 50 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0xef809f81e0bd72fe637595177b53e5dd13d90d3582.73164335664335664 CRO
0x66863345b4ea29a8640e315dffbe914934559a2ffb7fc734d321a39a1e8933f568498822023-02-07 6:40:0514 hrs 57 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x301a999d754ce960927cd55248717d7341589c7d548.174591033966033966 CRO
0x57706967f6a2b7579b6b83f17d542f7e86acfcd481a743cb201503de1be218f168486422023-02-07 4:43:3016 hrs 54 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0xc7db3a3b78359fd221653ece076730b48a88ea0221.600899100899100899 CRO
0xded7d4cd69dfd45cdec6c540e60ee44acec26d2cf45e9df75800f8925fae4f4668482522023-02-07 4:06:5117 hrs 30 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x5f1565c6f992b50e9a530eae1e9f63835f8cb88f10.561625874125874126 CRO
0x2d1cf5fea7452c973fa74cb458b939813323962a6ba50c51a77b6299fd80e5f168481662023-02-07 3:58:4517 hrs 38 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0x337edf5a11e214e132d12a3e934006822728d3c815.43643856143856144 CRO
0x45a23e091b49dddfdd46572e61ae462d275f236985d6162effeb4172c49273e668473552023-02-07 2:42:2718 hrs 55 mins ago 0xf0ea472fb04da831106940f58928b0e90e085bbb0xd9da1f68700729c3c0a56b5f9eccb9606c448837205.8191808191808192 CRO
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BoomerDistribution

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 6 : BoomerDistribution.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (finance/PaymentSplitter.sol)

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/utils/Address.sol";
import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/access//Ownable.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";

interface BoomR {
    function ownerOf(uint256 _tokenId) external view returns (address);
}

contract BoomerDistribution is Context, Ownable, ReentrancyGuard {
    event PaymentReleased(address to, uint256 amount);
    event PaymentReceived(address from, uint256 amount);

    uint256 private _totalShares;
    uint256 private _totalReleased;
    address private _braddress;
    uint256 private _shares;

    mapping(uint256 => uint256) private _released;

    BoomR public Boomr;

    constructor(uint256 maxids, address braddress) payable {
        require(maxids > 0, "RetirementFund: no ids");
        require(
            braddress != address(0),
            "RetirementFund: account is the zero address"
        );
        _shares = 1;
        _totalShares = maxids;
        Boomr = BoomR(braddress);
    }

    function totalShares() public view returns (uint256) {
        return _totalShares;
    }

    receive() external payable virtual {
        emit PaymentReceived(_msgSender(), msg.value);
    }

    function totalReleased() public view returns (uint256) {
        return _totalReleased;
    }

    function shares() public pure returns (uint256) {
        return 1;
    }

    function released(uint256 index) public view returns (uint256) {
        return _released[index];
    }

    function _pendingPayment(uint256 totalReceived, uint256 alreadyReleased)
        private
        view
        returns (uint256)
    {
        return
            SafeMath.sub(
                SafeMath.div(
                    (SafeMath.mul(totalReceived, _shares)),
                    _totalShares
                ),
                alreadyReleased
            );
    }

    //Emergency Withdrawl
    function EMwithdraw() public payable onlyOwner {
        (bool success, ) = payable(msg.sender).call{
            value: address(this).balance
        }("");
        require(success);
    }

    function multiRelease(uint256[] memory id, address payable account)
        public
        virtual
        nonReentrant
    {
        require(
            account == msg.sender,
            "RetirementFund: Caller Account Doesnt Match Supplied Account."
        );
        require(id.length > 0, "RetirementFund: Id Length Invalid");
        require(id.length < 501, "RetirementFund: Limit 500 Tokens");
        //Loop For ID Check
        uint256 totalID = id.length;
        uint256 idChecked = 0;
        uint256 ucount = 0;
        for (uint256 i = 0; i < id.length; i++) {
            require(Boomr.ownerOf(id[i]) == msg.sender, "RetirementFund: Not The Owner of Boomer In List");
            ucount = Boomr.ownerOf(id[i]) == msg.sender
                ? uint256(1)
                : uint256(0);
            idChecked = idChecked + ucount;
        }

        require(
            totalID == idChecked,
            "RetirementFund: Caller does not own All the tokens being claimed for."
        );

        uint256 totalReceived = address(this).balance + totalReleased();
        uint256 payment = 0;
        uint256 pay = 0;
        //Loop For Payment
        for (uint256 i = 0; i < id.length; i++) {
            pay = _pendingPayment(totalReceived, released(id[i]));

            payment = payment + pay;
            _released[id[i]] += pay;
        }

        require(payment != 0, "RetirementFund: account is not due payment");

        _totalReleased += payment;

        Address.sendValue(account, payment);
        emit PaymentReleased(account, payment);
    }


    //update Boomer Squad contract address
    function updateBRID(address _bridaddr) public onlyOwner {
        Boomr = BoomR(_bridaddr);
    }

    //check how much is owed for a given token ID array
    function mymultiPAYOUT(uint256[] memory id) public view returns (uint256) {
        require(id.length < 501, "RetirementFund: Limit 500 Tokens");
        uint256 totalReceived = address(this).balance + totalReleased();
        uint256 payment = 0;
        uint256 pay = 0;
        //Loop For Payment
        for (uint256 i = 0; i < id.length; i++) {
            pay = _pendingPayment(totalReceived, released(id[i]));

            payment = payment + pay;
        }

        return payment;
    }

}

File 2 of 6 : SafeMath.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

File 3 of 6 : Context.sol
// SPDX-License-Identifier: MIT
// 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 4 of 6 : Address.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

File 5 of 6 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

File 6 of 6 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.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);
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "london",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"maxids","type":"uint256"},{"internalType":"address","name":"braddress","type":"address"}],"stateMutability":"payable","type":"constructor"},{"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":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReleased","type":"event"},{"inputs":[],"name":"Boomr","outputs":[{"internalType":"contract BoomR","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EMwithdraw","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"id","type":"uint256[]"},{"internalType":"address payable","name":"account","type":"address"}],"name":"multiRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"id","type":"uint256[]"}],"name":"mymultiPAYOUT","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":"uint256","name":"index","type":"uint256"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_bridaddr","type":"address"}],"name":"updateBRID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040516110713803806110718339810160408190526100229161016a565b61002b3361011a565b60018055816100815760405162461bcd60e51b815260206004820152601660248201527f5265746972656d656e7446756e643a206e6f206964730000000000000000000060448201526064015b60405180910390fd5b6001600160a01b0381166100eb5760405162461bcd60e51b815260206004820152602b60248201527f5265746972656d656e7446756e643a206163636f756e7420697320746865207a60448201526a65726f206164647265737360a81b6064820152608401610078565b6001600555600291909155600780546001600160a01b0319166001600160a01b039092169190911790556101a7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806040838503121561017d57600080fd5b825160208401519092506001600160a01b038116811461019c57600080fd5b809150509250929050565b610ebb806101b66000396000f3fe6080604052600436106100ab5760003560e01c8063c13ce1b211610064578063c13ce1b2146101c7578063d67e7290146101e7578063de102b40146101ef578063e33b7de31461020f578063f2fde38b14610224578063f67b7aea1461024457600080fd5b806303314efa146100f95780633a98ef391461011c578063715018a614610131578063828b07bd146101485780638da5cb5b14610168578063a94d373b1461019a57600080fd5b366100f4577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b34801561010557600080fd5b5060015b6040519081526020015b60405180910390f35b34801561012857600080fd5b50600254610109565b34801561013d57600080fd5b50610146610264565b005b34801561015457600080fd5b50610146610163366004610cb7565b6102a3565b34801561017457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610113565b3480156101a657600080fd5b506101096101b5366004610d09565b60009081526006602052604090205490565b3480156101d357600080fd5b506101466101e2366004610d22565b610813565b61014661085f565b3480156101fb57600080fd5b50600754610182906001600160a01b031681565b34801561021b57600080fd5b50600354610109565b34801561023057600080fd5b5061014661023f366004610d22565b6108e1565b34801561025057600080fd5b5061010961025f366004610d3f565b610979565b6000546001600160a01b031633146102975760405162461bcd60e51b815260040161028e90610d7c565b60405180910390fd5b6102a16000610a36565b565b600260015414156102f65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161028e565b60026001556001600160a01b03811633146103795760405162461bcd60e51b815260206004820152603d60248201527f5265746972656d656e7446756e643a2043616c6c6572204163636f756e74204460448201527f6f65736e74204d6174636820537570706c696564204163636f756e742e000000606482015260840161028e565b60008251116103d45760405162461bcd60e51b815260206004820152602160248201527f5265746972656d656e7446756e643a204964204c656e67746820496e76616c696044820152601960fa1b606482015260840161028e565b6101f58251106104265760405162461bcd60e51b815260206004820181905260248201527f5265746972656d656e7446756e643a204c696d69742035303020546f6b656e73604482015260640161028e565b8151600080805b85518110156105fc57600754865133916001600160a01b031690636352211e9089908590811061045f5761045f610db1565b60200260200101516040518263ffffffff1660e01b815260040161048591815260200190565b602060405180830381865afa1580156104a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c69190610dc7565b6001600160a01b0316146105345760405162461bcd60e51b815260206004820152602f60248201527f5265746972656d656e7446756e643a204e6f7420546865204f776e6572206f6660448201526e08109bdbdb595c88125b88131a5cdd608a1b606482015260840161028e565b600754865133916001600160a01b031690636352211e9089908590811061055d5761055d610db1565b60200260200101516040518263ffffffff1660e01b815260040161058391815260200190565b602060405180830381865afa1580156105a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c49190610dc7565b6001600160a01b0316146105d95760006105dc565b60015b91506105e88284610dfa565b9250806105f481610e12565b91505061042d565b508183146106805760405162461bcd60e51b815260206004820152604560248201527f5265746972656d656e7446756e643a2043616c6c657220646f6573206e6f742060448201527f6f776e20416c6c2074686520746f6b656e73206265696e6720636c61696d6564606482015264103337b91760d91b608482015260a40161028e565b600061068b60035490565b6106959047610dfa565b905060008060005b8851811015610740576106de846106d98b84815181106106bf576106bf610db1565b602002602001015160009081526006602052604090205490565b610a86565b91506106ea8284610dfa565b925081600660008b848151811061070357610703610db1565b6020026020010151815260200190815260200160002060008282546107289190610dfa565b9091555081905061073881610e12565b91505061069d565b50816107a15760405162461bcd60e51b815260206004820152602a60248201527f5265746972656d656e7446756e643a206163636f756e74206973206e6f7420646044820152691d59481c185e5b595b9d60b21b606482015260840161028e565b81600360008282546107b39190610dfa565b909155506107c390508783610aaf565b604080516001600160a01b0389168152602081018490527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a1505060018055505050505050565b6000546001600160a01b0316331461083d5760405162461bcd60e51b815260040161028e90610d7c565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108895760405162461bcd60e51b815260040161028e90610d7c565b604051600090339047908381818185875af1925050503d80600081146108cb576040519150601f19603f3d011682016040523d82523d6000602084013e6108d0565b606091505b50509050806108de57600080fd5b50565b6000546001600160a01b0316331461090b5760405162461bcd60e51b815260040161028e90610d7c565b6001600160a01b0381166109705760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161028e565b6108de81610a36565b60006101f58251106109cd5760405162461bcd60e51b815260206004820181905260248201527f5265746972656d656e7446756e643a204c696d69742035303020546f6b656e73604482015260640161028e565b60006109d860035490565b6109e29047610dfa565b905060008060005b8551811015610a2c57610a0c846106d98884815181106106bf576106bf610db1565b9150610a188284610dfa565b925080610a2481610e12565b9150506109ea565b5090949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610aa8610aa2610a9a85600554610bcd565b600254610bd9565b83610be5565b9392505050565b80471015610aff5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161028e565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610b4c576040519150601f19603f3d011682016040523d82523d6000602084013e610b51565b606091505b5050905080610bc85760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161028e565b505050565b6000610aa88284610e2d565b6000610aa88284610e4c565b6000610aa88284610e6e565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610c1857600080fd5b8135602067ffffffffffffffff80831115610c3557610c35610bf1565b8260051b604051601f19603f83011681018181108482111715610c5a57610c5a610bf1565b604052938452858101830193838101925087851115610c7857600080fd5b83870191505b84821015610c9757813583529183019190830190610c7e565b979650505050505050565b6001600160a01b03811681146108de57600080fd5b60008060408385031215610cca57600080fd5b823567ffffffffffffffff811115610ce157600080fd5b610ced85828601610c07565b9250506020830135610cfe81610ca2565b809150509250929050565b600060208284031215610d1b57600080fd5b5035919050565b600060208284031215610d3457600080fd5b8135610aa881610ca2565b600060208284031215610d5157600080fd5b813567ffffffffffffffff811115610d6857600080fd5b610d7484828501610c07565b949350505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610dd957600080fd5b8151610aa881610ca2565b634e487b7160e01b600052601160045260246000fd5b60008219821115610e0d57610e0d610de4565b500190565b6000600019821415610e2657610e26610de4565b5060010190565b6000816000190483118215151615610e4757610e47610de4565b500290565b600082610e6957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610e8057610e80610de4565b50039056fea264697066735822122047db34df7be3b68061dc7720bbfb7e7ccb8ee68be791b3ce88a92732291e755864736f6c634300080a00330000000000000000000000000000000000000000000000000000000000001f48000000000000000000000000b650279e3d726b0c75c984caa55341cb87a7f501

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

0000000000000000000000000000000000000000000000000000000000001f48000000000000000000000000b650279e3d726b0c75c984caa55341cb87a7f501

-----Decoded View---------------
Arg [0] : maxids (uint256): 8008
Arg [1] : braddress (address): 0xb650279e3d726b0c75c984caa55341cb87a7f501

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000001f48
Arg [1] : 000000000000000000000000b650279e3d726b0c75c984caa55341cb87a7f501


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.