Contract 0xE7597F774fD0a15A617894dc39d45A28B97AFa4f

 
Txn Hash Method
Block
From
To
Value
0xec131f902d980427f3b6ce4104edecdbb7bf5f7ff90b0b9e334f46f042e080bcWrite118057602021-02-06 23:34:07135 days 21 hrs ago0x34da8ad494cf29bfbbe325d3125aff16e2281b57 IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f4.0217 Ether0.075265985155
0xb2c2e5adfa9eb3a589bfe421387106fbb90aeb7847100994dae79e8652a66f88Write117727802021-02-01 21:30:57140 days 23 hrs ago0xc4156a6bc9b96b63f159f42fd5db95fb4c82cac7 IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f9.01064 Ether0.055342136152
0x676bccbeed4326592f42eb89bbb34ad7ad6fd3ffb9d327269135f9aec20bc7d3Write115351522020-12-27 10:01:38177 days 11 hrs ago0xe7e7d8def7d6187d8ee38f3b4a2c031a8455d0da IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f4.00672 Ether0.02001085359
0xfd6469666e21b2420b12bd92639cfd6b50b6659daa9ebbff0cedf085a982073aWrite115342892020-12-27 6:47:30177 days 14 hrs ago0xe96d65ec7c8856114878300697a3e5052de194ff IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00336 Ether0.02035345242
0x8847071a45535d531f3e470fbcb79a3496dd9b45cb35cdcc316094cd20adcf1aWrite115219472020-12-25 9:23:54179 days 11 hrs ago0xff54a13c0d24924f6de81a87573c4461781fb09a IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f2.00644 Ether0.0348776692
0x6fb7aac63847314c528c8579c21b5236ef03ca96cea1c512583f4038ee4adcdaWrite114139992020-12-08 19:30:13196 days 1 hr ago0xe7e7d8def7d6187d8ee38f3b4a2c031a8455d0da IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f11.007 Ether0.01313536527
0x85cd340c503e76ffb65261898473afb5da47a869af3569fb53d4c3b1460a556fWrite112529232020-11-14 1:40:15220 days 19 hrs ago0xcc7a5bc84f70486ae1377df8ecff15baed73ef05 IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f1.00259 Ether0.01307309937
0xedbfb2e6d87eb9dc4f0500bcc425deb8f6b48b8e304c0fe38fa6f5672d9c267fWrite111580422020-10-30 12:08:15235 days 9 hrs ago0x765da2a4ce77ce8cb5f91acfa2fe2c793165633c IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.01413 Ether0.01996058559
0x075ad514e51c39b1c3934f36ea1daf9501ff64ac96e7b0819637edb46b2bb4d0Write111523132020-10-29 14:47:48236 days 6 hrs ago0x9b8de05aea62c82f422e0116268e2423de455b0e IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.20798 Ether0.037991856112
0x374945fdf66cc88bcc9d64225a7977029fa9b355602392d4406f7aeab5ea7700Write111523102020-10-29 14:46:14236 days 6 hrs ago0x9b8de05aea62c82f422e0116268e2423de455b0e IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.30798 Ether0.048762369133.4
0x9125d6e36a65eabd10a405a7104f5ce905d2581bbcf4345378737b6c5f06aeacWrite109865132020-10-04 1:50:30261 days 19 hrs ago0x91f7fdd0cd1a8960f52dd739f40339830fbba0c9 IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.07341 Ether0.01843032357
0x0513d542eccdc0de0e936181406d2fcdc8ec1b413b57861a806c05f9cd549045Write109770852020-10-02 14:14:07263 days 7 hrs ago0x33b495480cdfab66790300d853f56452f9f96eed IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00609 Ether0.0427251393
0x43245d2046a6641c98e22c09dd14cd2d91415cca5dcf92328b8aa89a185dede7Write109770852020-10-02 14:14:07263 days 7 hrs ago0x33b495480cdfab66790300d853f56452f9f96eed IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.0056 Ether0.02591075676
0xd8e42f1d89d2015ff363649501a65b7f9cd534f5ed15209a49ca4655f26cca46Write109343632020-09-25 21:58:30269 days 23 hrs ago0x33b495480cdfab66790300d853f56452f9f96eed IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00497 Ether0.02530722459
0xdd8510879fb15ba963fed8128810812e8993662fce07a10ec1edbecdda2e8d74Write109068862020-09-21 16:30:36274 days 4 hrs ago0x036716117e83da70fdac74f243f4b7f27f92abf1 IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f1.02177 Ether0.10519264311
0x6d4ef4e2e80836de857639c6a72389d6d7bc34edca4afad3db9eeee18fe49a42Write108890812020-09-18 23:18:08276 days 22 hrs ago0x33b495480cdfab66790300d853f56452f9f96eed IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f31.01239 Ether0.057221976177
0xb26fd8754e34cecc143a49cb6262752bd5dd31e89f7daa1522d1c722fae2ecbeWrite107523002020-08-29 0:01:54297 days 21 hrs ago0x33b495480cdfab66790300d853f56452f9f96eed IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00553 Ether0.03025439379
0xcee4ffba4f7a753b556e9b8ed3a075a46d8a6dc3440cbbe34277e5fe59f81a58Write107483002020-08-28 9:15:33298 days 12 hrs ago0x33b495480cdfab66790300d853f56452f9f96eed IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f41.00994 Ether0.02875735261
0xdf101ff5b95bc15cc67cfa5271c3e0fe7826c549f9d0c6ce4b155434f561b429Write107247762020-08-24 18:43:40302 days 2 hrs ago0x5decf28155e3dff65ef018d7b4fb2f62cf451135 IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.01008 Ether0.054223632144
0x6801e4e23cc61b8079104ef39b580fbbe5eebfa18ab5b81f575d04f15fc64ae9Write107144352020-08-23 4:35:38303 days 16 hrs ago0x9d83db66cc05bdb94df21867ddb4f85069859414 IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f3.00539 Ether0.02613934477
0x95d5f8b59b01038bb61909ed80846214e0d855f5f7f9a29f03928f53a0ed83c9Write107114152020-08-22 17:32:43304 days 3 hrs ago0x7e0099ed7a5ed2bb9d046c2c95f24565cb204a72 IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00749 Ether0.040291171107
0xe7946d6c44a446c48a1d2723a074cd3a974aec3e7169ce4c3e57845520cb8abfWrite107111702020-08-22 16:35:16304 days 4 hrs ago0x467875e5fc6ba14dd0dd93d49ed02a9c183f4fbe IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00735 Ether0.043570065105
0x2820443d2efcbec4098e495c119ab9aa11a9cb85238976f6dd362748701e6b31Write106930702020-08-19 21:49:07306 days 23 hrs ago0x7e0099ed7a5ed2bb9d046c2c95f24565cb204a72 IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00819 Ether0.044058105117
0x6877c98fef9d24aff513fabbfbb1eaa26c5219279c4c45d48cc293ffdf638c03Write106878922020-08-19 2:36:09307 days 18 hrs ago0x9fb14bb9c5ba00b46d8eaaccc232a51f6516dc2c IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00749 Ether0.040289887107
0x80cc5900ea33e2969d485ddbb791bf220637c7d96c0f492e594812bd65193334Write106862542020-08-18 20:35:18308 days 43 mins agoENS Name dduarte.eth IN  0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00693 Ether0.02961050499
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xec131f902d980427f3b6ce4104edecdbb7bf5f7ff90b0b9e334f46f042e080bc118057602021-02-06 23:34:07135 days 21 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x: Exchange v30.0217 Ether
0xec131f902d980427f3b6ce4104edecdbb7bf5f7ff90b0b9e334f46f042e080bc118057602021-02-06 23:34:07135 days 21 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x1ffa728ac22519a3c1e610b6c98f510a2a22eb674 Ether
0xb2c2e5adfa9eb3a589bfe421387106fbb90aeb7847100994dae79e8652a66f88117727802021-02-01 21:30:57140 days 23 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x: Exchange v30.01064 Ether
0xb2c2e5adfa9eb3a589bfe421387106fbb90aeb7847100994dae79e8652a66f88117727802021-02-01 21:30:57140 days 23 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x6c95f40e7e52fcfdaee1ad607e86c63f8af2e71d9 Ether
0x676bccbeed4326592f42eb89bbb34ad7ad6fd3ffb9d327269135f9aec20bc7d3115351522020-12-27 10:01:38177 days 11 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f0xe7e7d8def7d6187d8ee38f3b4a2c031a8455d0da0.00259 Ether
0x676bccbeed4326592f42eb89bbb34ad7ad6fd3ffb9d327269135f9aec20bc7d3115351522020-12-27 10:01:38177 days 11 hrs ago 0x: Exchange v3 0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00259 Ether
0x676bccbeed4326592f42eb89bbb34ad7ad6fd3ffb9d327269135f9aec20bc7d3115351522020-12-27 10:01:38177 days 11 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x: Exchange v30.00672 Ether
0x676bccbeed4326592f42eb89bbb34ad7ad6fd3ffb9d327269135f9aec20bc7d3115351522020-12-27 10:01:38177 days 11 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0xab1eb1bd4943bb3f8c3c8d7db0d75369192594c34 Ether
0xfd6469666e21b2420b12bd92639cfd6b50b6659daa9ebbff0cedf085a982073a115342892020-12-27 6:47:30177 days 14 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f0xe96d65ec7c8856114878300697a3e5052de194ff0.00042 Ether
0xfd6469666e21b2420b12bd92639cfd6b50b6659daa9ebbff0cedf085a982073a115342892020-12-27 6:47:30177 days 14 hrs ago 0x: Exchange v3 0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00042 Ether
0xfd6469666e21b2420b12bd92639cfd6b50b6659daa9ebbff0cedf085a982073a115342892020-12-27 6:47:30177 days 14 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x: Exchange v30.00336 Ether
0x8847071a45535d531f3e470fbcb79a3496dd9b45cb35cdcc316094cd20adcf1a115219472020-12-25 9:23:54179 days 11 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x: Exchange v30.00644 Ether
0x8847071a45535d531f3e470fbcb79a3496dd9b45cb35cdcc316094cd20adcf1a115219472020-12-25 9:23:54179 days 11 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x1fa02c8606a5074c433c5b3c05528befc36a341e2 Ether
0x6fb7aac63847314c528c8579c21b5236ef03ca96cea1c512583f4038ee4adcda114139992020-12-08 19:30:13196 days 1 hr ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f0xe7e7d8def7d6187d8ee38f3b4a2c031a8455d0da0.00322 Ether
0x6fb7aac63847314c528c8579c21b5236ef03ca96cea1c512583f4038ee4adcda114139992020-12-08 19:30:13196 days 1 hr ago 0x: Exchange v3 0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00322 Ether
0x6fb7aac63847314c528c8579c21b5236ef03ca96cea1c512583f4038ee4adcda114139992020-12-08 19:30:13196 days 1 hr ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x: Exchange v30.007 Ether
0x6fb7aac63847314c528c8579c21b5236ef03ca96cea1c512583f4038ee4adcda114139992020-12-08 19:30:13196 days 1 hr ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x7ce64063c6f2cb1ae466d97f9bd044098717d10811 Ether
0x85cd340c503e76ffb65261898473afb5da47a869af3569fb53d4c3b1460a556f112529232020-11-14 1:40:15220 days 19 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x: Exchange v30.00259 Ether
0x85cd340c503e76ffb65261898473afb5da47a869af3569fb53d4c3b1460a556f112529232020-11-14 1:40:15220 days 19 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x84e6aef46a951e547be408634c56a5625ef62e091 Ether
0xedbfb2e6d87eb9dc4f0500bcc425deb8f6b48b8e304c0fe38fa6f5672d9c267f111580422020-10-30 12:08:15235 days 9 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x: Exchange v30.00413 Ether
0xedbfb2e6d87eb9dc4f0500bcc425deb8f6b48b8e304c0fe38fa6f5672d9c267f111580422020-10-30 12:08:15235 days 9 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x5c1d9f5e72f0fc5229d64c2956c74b4efe5bbcf60.01 Ether
0x075ad514e51c39b1c3934f36ea1daf9501ff64ac96e7b0819637edb46b2bb4d0111523132020-10-29 14:47:48236 days 6 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f0x9b8de05aea62c82f422e0116268e2423de455b0e0.00014 Ether
0x075ad514e51c39b1c3934f36ea1daf9501ff64ac96e7b0819637edb46b2bb4d0111523132020-10-29 14:47:48236 days 6 hrs ago 0x: Exchange v3 0xe7597f774fd0a15a617894dc39d45a28b97afa4f0.00014 Ether
0x075ad514e51c39b1c3934f36ea1daf9501ff64ac96e7b0819637edb46b2bb4d0111523132020-10-29 14:47:48236 days 6 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0x: Exchange v30.00798 Ether
0x075ad514e51c39b1c3934f36ea1daf9501ff64ac96e7b0819637edb46b2bb4d0111523132020-10-29 14:47:48236 days 6 hrs ago 0xe7597f774fd0a15a617894dc39d45a28b97afa4f 0xed0a3d34fadd4bf43557e18990d37f5e20c427440.2 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ACOWriter

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: ACOWriter.sol
pragma solidity ^0.6.6;
pragma experimental ABIEncoderV2;

import "./IACOToken.sol";
import "./IWETH.sol";

/**
 * @title ACOWriter
 * @dev Contract to write ACO tokens. Minting them and then selling through the 0x protocol.
 */
contract ACOWriter {
    
    /**
     * @dev The WETH address.
     */
    address immutable public weth;
    
    /**
     * @dev Address for 0x ERC20 proxy.
     */
    address immutable public erc20proxy;
    
    /**
     * @dev Selector for ERC20 balanceOf function.
     */
    bytes4 immutable internal _balanceOfSelector;
    
    /**
     * @dev Selector for ERC20 transfer function.
     */
    bytes4 immutable internal _transferSelector;
    
    /**
     * @dev Selector for ERC20 transferFrom function.
     */
    bytes4 immutable internal _transferFromSelector;
    
    /**
     * @dev Selector for ERC20 approve function.
     */
    bytes4 immutable internal _approveSelector;
    
    /**
     * @dev Internal data to control the exchange address.
     */
    address internal _exchange;
    
    /**
     * @dev Internal data to control the reentrancy.
     */
    bool internal _notEntered;
    
    /**
     * @dev Modifier to handle with the exchange address during the transaction.
     */
    modifier setExchange(address exchange) {
        _exchange = exchange;
        _;
        _exchange = address(0);
    }
    
    /**
     * @dev Modifier to prevents a contract from calling itself during the function execution.
     */
    modifier nonReentrant() {
        require(_notEntered, "ACOWriter::Reentry");
        _notEntered = false;
        _;
        _notEntered = true;
    }
    
    constructor(address _weth, address _erc20proxy) public {
        weth =_weth;
        erc20proxy = _erc20proxy;
        
        _balanceOfSelector = bytes4(keccak256(bytes("balanceOf(address)")));
        _transferSelector = bytes4(keccak256(bytes("transfer(address,uint256)")));
        _transferFromSelector = bytes4(keccak256(bytes("transferFrom(address,address,uint256)")));
        _approveSelector = bytes4(keccak256(bytes("approve(address,uint256)")));
        
        _notEntered = true;
    }
    
    /**
     * @dev Function to guarantee that the contract will receive ether only from the exchange.
     */
    receive() external payable {
        if (msg.sender != _exchange) {
            revert();
        }
    }
    
    /**
     * @dev Function to write ACO tokens.
     * The tokens are minted then sold on the 0x exchange. The transaction sender receive the premium. 
     * @param acoToken Address of the ACO token.
     * @param collateralAmount Amount of collateral deposited.
     * @param exchangeAddress Address to sell the tokens.
     * @param exchangeData Data to be sent to the exchange.
     */
    function write(
        address acoToken, 
        uint256 collateralAmount, 
        address exchangeAddress, 
        bytes memory exchangeData
    ) 
        nonReentrant 
        setExchange(exchangeAddress) 
        public 
        payable 
    {
        require(msg.value > 0,  "ACOWriter::write: Invalid msg value");
        require(collateralAmount > 0,  "ACOWriter::write: Invalid collateral amount");
        
        address _collateral = IACOToken(acoToken).collateral();
        if (_isEther(_collateral)) {
            IACOToken(acoToken).mintToPayable{value: collateralAmount}(msg.sender);
        } else {
            _transferFromERC20(_collateral, msg.sender, address(this), collateralAmount);
            _approveERC20(_collateral, acoToken, collateralAmount);
            IACOToken(acoToken).mintTo(msg.sender, collateralAmount);
        }
        
        _sellACOTokens(acoToken, exchangeData);
    }
    
    /**
     * @dev Internal function to sell the ACO tokens and transfer the premium to the transaction sender.
     * @param acoToken Address of the ACO token.
     * @param exchangeData Data to be sent to the exchange.
     */
    function _sellACOTokens(address acoToken, bytes memory exchangeData) internal {
        uint256 acoBalance = _balanceOfERC20(acoToken, address(this));
        _approveERC20(acoToken, erc20proxy, acoBalance);
        (bool success,) = _exchange.call{value: address(this).balance}(exchangeData);
        require(success, "ACOWriter::_sellACOTokens: Error on call the exchange");
        
        address token = IACOToken(acoToken).strikeAsset();
        if(_isEther(token)) {
            uint256 wethBalance = _balanceOfERC20(weth, address(this));
            if (wethBalance > 0) {
                IWETH(weth).withdraw(wethBalance);
            }
        } else {
            _transferERC20(token, msg.sender, _balanceOfERC20(token, address(this)));
        }
        
        if (address(this).balance > 0) {
            msg.sender.transfer(address(this).balance);
        }
    }
    
    /**
     * @dev Internal function to get if the address is for Ethereum (0x0).
     * @param _address Address to be checked.
     * @return Whether the address is for Ethereum.
     */ 
    function _isEther(address _address) internal pure returns(bool) {
        return _address == address(0);
    } 
    
    /**
     * @dev Internal function to get balance of ERC20 tokens.
     * @param token Address of the token.
     * @param owner Address of the owner.
     * @return The token balance of the owner.
     */
    function _balanceOfERC20(address token, address owner) internal view returns(uint256) {
        (bool success, bytes memory returndata) = token.staticcall(abi.encodeWithSelector(_balanceOfSelector, owner));
        require(success, "ACOWriter::_balanceOfERC20");
        return abi.decode(returndata, (uint256));
    }
    
    /**
     * @dev Internal function to approve ERC20 tokens.
     * @param token Address of the token.
     * @param spender Authorized address.
     * @param amount Amount to transfer.
     */
    function _approveERC20(address token, address spender, uint256 amount) internal {
        (bool success, bytes memory returndata) = token.call(abi.encodeWithSelector(_approveSelector, spender, amount));
        require(success && (returndata.length == 0 || abi.decode(returndata, (bool))), "ACOWriter::_approveERC20");
    }
    
    /**
     * @dev Internal function to call transferFrom on ERC20 tokens.
     * @param token Address of the token.
     * @param sender Address of the sender.
     * @param recipient Address of the transfer destination.
     * @param amount Amount to transfer.
     */
     function _transferFromERC20(address token, address sender, address recipient, uint256 amount) internal {
        (bool success, bytes memory returndata) = token.call(abi.encodeWithSelector(_transferFromSelector, sender, recipient, amount));
        require(success && (returndata.length == 0 || abi.decode(returndata, (bool))), "ACOWriter::_transferFromERC20");
    }
    
    /**
     * @dev Internal function to transfer ERC20 tokens.
     * @param token Address of the token.
     * @param recipient Address of the transfer destination.
     * @param amount Amount to transfer.
     */
    function _transferERC20(address token, address recipient, uint256 amount) internal {
        (bool success, bytes memory returndata) = token.call(abi.encodeWithSelector(_transferSelector, recipient, amount));
        require(success && (returndata.length == 0 || abi.decode(returndata, (bool))), "ACOWriter::_transferERC20");
    }
}

File 2 of 4: IACOToken.sol
pragma solidity ^0.6.6;

import "./IERC20.sol";

interface IACOToken is IERC20 {
    function name() external view returns(string memory);
    function symbol() external view returns(string memory);
    function decimals() external view returns(uint8);
    function underlying() external view returns (address);
    function strikeAsset() external view returns (address);
    function feeDestination() external view returns (address);
    function isCall() external view returns (bool);
    function strikePrice() external view returns (uint256);
    function expiryTime() external view returns (uint256);
    function totalCollateral() external view returns (uint256);
    function acoFee() external view returns (uint256);
    function underlyingSymbol() external view returns (string memory);
    function strikeAssetSymbol() external view returns (string memory);
    function underlyingDecimals() external view returns (uint8);
    function strikeAssetDecimals() external view returns (uint8);
    function currentCollateral(address account) external view returns(uint256);
    function unassignableCollateral(address account) external view returns(uint256);
    function assignableCollateral(address account) external view returns(uint256);
    function currentCollateralizedTokens(address account) external view returns(uint256);
    function unassignableTokens(address account) external view returns(uint256);
    function assignableTokens(address account) external view returns(uint256);
    function getCollateralAmount(uint256 tokenAmount) external view returns(uint256);
    function getTokenAmount(uint256 collateralAmount) external view returns(uint256);
    function getExerciseData(uint256 tokenAmount) external view returns(address, uint256);
    function getCollateralOnExercise(uint256 tokenAmount) external view returns(uint256, uint256);
    function collateral() external view returns(address);
    function mintPayable() external payable;
    function mintToPayable(address account) external payable;
    function mint(uint256 collateralAmount) external;
    function mintTo(address account, uint256 collateralAmount) external;
    function burn(uint256 tokenAmount) external;
    function burnFrom(address account, uint256 tokenAmount) external;
    function redeem() external;
    function redeemFrom(address account) external;
    function exercise(uint256 tokenAmount) external payable;
    function exerciseFrom(address account, uint256 tokenAmount) external payable;
    function exerciseAccounts(uint256 tokenAmount, address[] calldata accounts) external payable;
    function exerciseAccountsFrom(address account, uint256 tokenAmount, address[] calldata accounts) external payable;
    function clear() external;
    function clearFrom(address account) external;
}

File 3 of 4: IERC20.sol
pragma solidity ^0.6.6;

// Contract on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 4 of 4: IWETH.sol
pragma solidity ^0.6.6;

interface IWETH {
    function deposit() external payable;
    function transfer(address to, uint value) external returns (bool);
    function withdraw(uint) external;
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_weth","type":"address"},{"internalType":"address","name":"_erc20proxy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"erc20proxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acoToken","type":"address"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"internalType":"address","name":"exchangeAddress","type":"address"},{"internalType":"bytes","name":"exchangeData","type":"bytes"}],"name":"write","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

61014060405234801561001157600080fd5b50604051610f93380380610f938339810160408190526100309161013d565b606082811b6001600160601b031990811660805282821b1660a052604080518082018252601281527162616c616e63654f6628616464726573732960701b6020918201526370a0823160e01b60c05281518083018352601981527f7472616e7366657228616464726573732c75696e7432353629000000000000009082015263a9059cbb60e01b60e0528151928301909152602580835290610f6e9083013980516020918201206001600160e01b0319166101005260408051808201909152601881527f617070726f766528616464726573732c75696e74323536290000000000000000910152505063095ea7b360e01b610120526000805460ff60a01b1916600160a01b17905561018e565b6000806040838503121561014f578182fd5b825161015a81610176565b602084015190925061016b81610176565b809150509250929050565b6001600160a01b038116811461018b57600080fd5b50565b60805160601c60a05160601c60c05160e01c60e01b60e05160e01c60e01b6101005160e01c60e01b6101205160e01c60e01b610d6a610204600039806104385250806103265250806108835250806107865250806102e7528061054b5250806102c3528061067d52806106c15250610d6a6000f3fe6080604052600436106100385760003560e01c80631c86323b1461005b5780633fc8cef31461006e5780636a3b87731461009957610056565b36610056576000546001600160a01b0316331461005457600080fd5b005b600080fd5b61005461006936600461099e565b6100ae565b34801561007a57600080fd5b506100836102c1565b6040516100909190610ad7565b60405180910390f35b3480156100a557600080fd5b506100836102e5565b600054600160a01b900460ff166100e05760405162461bcd60e51b81526004016100d790610b96565b60405180910390fd5b600080546001600160a81b0319166001600160a01b03841617905581346101195760405162461bcd60e51b81526004016100d790610c17565b600084116101395760405162461bcd60e51b81526004016100d790610c5a565b6000856001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b15801561017457600080fd5b505afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac919061097b565b90506101b781610309565b156102215760405163b0df1cc760e01b81526001600160a01b0387169063b0df1cc79087906101ea903390600401610ad7565b6000604051808303818588803b15801561020357600080fd5b505af1158015610217573d6000803e3d6000fd5b5050505050610299565b61022d81333088610316565b610238818787610428565b6040516308934a5f60e31b81526001600160a01b0387169063449a52f8906102669033908990600401610aeb565b600060405180830381600087803b15801561028057600080fd5b505af1158015610294573d6000803e3d6000fd5b505050505b6102a38684610537565b5050600080546001600160a81b031916600160a01b17905550505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03161590565b60006060856001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000086868660405160240161035a93929190610b04565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516103989190610a9e565b6000604051808303816000865af19150503d80600081146103d5576040519150601f19603f3d011682016040523d82523d6000602084013e6103da565b606091505b50915091508180156104045750805115806104045750808060200190518101906104049190610a66565b6104205760405162461bcd60e51b81526004016100d790610cdc565b505050505050565b60006060846001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000858560405160240161046a929190610aeb565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516104a89190610a9e565b6000604051808303816000865af19150503d80600081146104e5576040519150601f19603f3d011682016040523d82523d6000602084013e6104ea565b606091505b50915091508180156105145750805115806105145750808060200190518101906105149190610a66565b6105305760405162461bcd60e51b81526004016100d790610ca5565b5050505050565b60006105438330610775565b9050610570837f000000000000000000000000000000000000000000000000000000000000000083610428565b600080546040516001600160a01b03909116904790610590908690610a9e565b60006040518083038185875af1925050503d80600081146105cd576040519150601f19603f3d011682016040523d82523d6000602084013e6105d2565b606091505b50509050806105f35760405162461bcd60e51b81526004016100d790610bc2565b6000846001600160a01b03166317d69bc86040518163ffffffff1660e01b815260040160206040518083038186803b15801561062e57600080fd5b505afa158015610642573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610666919061097b565b905061067181610309565b1561072f5760006106a27f000000000000000000000000000000000000000000000000000000000000000030610775565b9050801561072957604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906106f6908490600401610d13565b600060405180830381600087803b15801561071057600080fd5b505af1158015610724573d6000803e3d6000fd5b505050505b50610743565b610743813361073e8430610775565b610873565b47156105305760405133904780156108fc02916000818181858888f19350505050158015610420573d6000803e3d6000fd5b6000806060846001600160a01b03167f0000000000000000000000000000000000000000000000000000000000000000856040516024016107b69190610ad7565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516107f49190610a9e565b600060405180830381855afa9150503d806000811461082f576040519150601f19603f3d011682016040523d82523d6000602084013e610834565b606091505b5091509150816108565760405162461bcd60e51b81526004016100d790610b5f565b8080602001905181019061086a9190610a86565b95945050505050565b60006060846001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000085856040516024016108b5929190610aeb565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516108f39190610a9e565b6000604051808303816000865af19150503d8060008114610930576040519150601f19603f3d011682016040523d82523d6000602084013e610935565b606091505b509150915081801561095f57508051158061095f57508080602001905181019061095f9190610a66565b6105305760405162461bcd60e51b81526004016100d790610b28565b60006020828403121561098c578081fd5b815161099781610d1c565b9392505050565b600080600080608085870312156109b3578283fd5b84356109be81610d1c565b9350602085810135935060408601356109d681610d1c565b9250606086013567ffffffffffffffff808211156109f2578384fd5b81880189601f820112610a03578485fd5b8035925081831115610a13578485fd5b604051601f8401601f1916810185018381118282101715610a32578687fd5b60405283815281840185018b1015610a48578586fd5b83858301868301379283019093019390935294979396509194505050565b600060208284031215610a77578081fd5b81518015158114610997578182fd5b600060208284031215610a97578081fd5b5051919050565b60008251815b81811015610abe5760208186018101518583015201610aa4565b81811115610acc5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208082526019908201527f41434f5772697465723a3a5f7472616e73666572455243323000000000000000604082015260600190565b6020808252601a908201527f41434f5772697465723a3a5f62616c616e63654f664552433230000000000000604082015260600190565b60208082526012908201527141434f5772697465723a3a5265656e74727960701b604082015260600190565b60208082526035908201527f41434f5772697465723a3a5f73656c6c41434f546f6b656e733a204572726f72604082015274206f6e2063616c6c207468652065786368616e676560581b606082015260800190565b60208082526023908201527f41434f5772697465723a3a77726974653a20496e76616c6964206d73672076616040820152626c756560e81b606082015260800190565b6020808252602b908201527f41434f5772697465723a3a77726974653a20496e76616c696420636f6c6c617460408201526a195c985b08185b5bdd5b9d60aa1b606082015260800190565b60208082526018908201527f41434f5772697465723a3a5f617070726f766545524332300000000000000000604082015260600190565b6020808252601d908201527f41434f5772697465723a3a5f7472616e7366657246726f6d4552433230000000604082015260600190565b90815260200190565b6001600160a01b0381168114610d3157600080fd5b5056fea26469706673582212205ddd33bc87693ef2cc475b3c03ba594c46ca0db98440ea4e60dec8714af4ad9e64736f6c634300060600337472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000095e6f48254609a6ee006f7d493c8e5fb97094cef

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

000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000095e6f48254609a6ee006f7d493c8e5fb97094cef

-----Decoded View---------------
Arg [0] : _weth (address): 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : _erc20proxy (address): 0x95e6f48254609a6ee006f7d493c8e5fb97094cef

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : 00000000000000000000000095e6f48254609a6ee006f7d493c8e5fb97094cef


Deployed ByteCode Sourcemap

239:7378:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:9;;-1:-1:-1;;;;;2416:9:0;2402:10;:23;2398:64;;12:1:-1;9;2:12;2398:64:0;239:7378;;12:1:-1;9;2:12;2881:946:0;;;;;;;;;:::i;320:29::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;320:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;421:35;;5:9:-1;2:2;;;27:1;24;17:12;2:2;421:35:0;;;:::i;2881:946::-;1596:11;;-1:-1:-1;;;1596:11:0;;;;1588:42;;;;-1:-1:-1;;;1588:42:0;;;;;;;;;;;;;;;;;1655:5;1641:19;;-1:-1:-1;;;;;;1354:20:0;-1:-1:-1;;;;;1354:20:0;::::1;;::::0;;;3160:9:::2;3152:62;;;;-1:-1:-1::0;;;3152:62:0::2;;;;;;;;;3252:1;3233:16;:20;3225:77;;;;-1:-1:-1::0;;;3225:77:0::2;;;;;;;;;3323:19;3355:8;-1:-1:-1::0;;;;;3345:30:0::2;;:32;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;3345:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;3345:32:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3345:32:0;;;;;;;;;3323:54;;3392:21;3401:11;3392:8;:21::i;:::-;3388:373;;;3430:70;::::0;-1:-1:-1;;;3430:70:0;;-1:-1:-1;;;;;3430:33:0;::::2;::::0;::::2;::::0;3471:16;;3430:70:::2;::::0;3489:10:::2;::::0;3430:70:::2;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;3430:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;3430:70:0;;;;;3388:373;;;3533:76;3552:11;3565:10;3585:4;3592:16;3533:18;:76::i;:::-;3624:54;3638:11;3651:8;3661:16;3624:13;:54::i;:::-;3693:56;::::0;-1:-1:-1;;;3693:56:0;;-1:-1:-1;;;;;3693:26:0;::::2;::::0;::::2;::::0;:56:::2;::::0;3720:10:::2;::::0;3732:16;;3693:56:::2;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;3693:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;3693:56:0;;;;3388:373;3781:38;3796:8;3806:12;3781:14;:38::i;:::-;-1:-1:-1::0;;1417:1:0::1;1397:22:::0;;-1:-1:-1;;;;;;1683:18:0;-1:-1:-1;;;1683:18:0;;;-1:-1:-1;;;;2881:946:0:o;320:29::-;;;:::o;421:35::-;;;:::o;5181:112::-;-1:-1:-1;;;;;5263:22:0;;;5181:112::o;6676:370::-;6791:12;6805:23;6832:5;-1:-1:-1;;;;;6832:10:0;6866:21;6889:6;6897:9;6908:6;6843:72;;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;6843:72:0;;;49:4:-1;25:18;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;6843:72:0;;;179:29:-1;;;;160:49;;;6832:84:0;;;;6843:72;6832:84;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;6790:126:0;;;;6935:7;:69;;;;-1:-1:-1;6947:17:0;;:22;;:56;;;6984:10;6973:30;;;;;;;;;;;;;;6927:111;;;;-1:-1:-1;;;6927:111:0;;;;;;;;;6676:370;;;;;;:::o;6057:327::-;6149:12;6163:23;6190:5;-1:-1:-1;;;;;6190:10:0;6224:16;6242:7;6251:6;6201:57;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;6201:57:0;;;49:4:-1;25:18;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;6201:57:0;;;179:29:-1;;;;160:49;;;6190:69:0;;;;6201:57;6190:69;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;6148:111:0;;;;6278:7;:69;;;;-1:-1:-1;6290:17:0;;:22;;:56;;;6327:10;6316:30;;;;;;;;;;;;;;6270:106;;;;-1:-1:-1;;;6270:106:0;;;;;;;;;6057:327;;;;;:::o;4074:900::-;4163:18;4184:40;4200:8;4218:4;4184:15;:40::i;:::-;4163:61;;4235:47;4249:8;4259:10;4271;4235:13;:47::i;:::-;4294:12;4311:9;;:58;;-1:-1:-1;;;;;4311:9:0;;;;4333:21;;4311:58;;4356:12;;4311:58;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;4293:76:0;;;4388:7;4380:73;;;;-1:-1:-1;;;4380:73:0;;;;;;;;;4474:13;4500:8;-1:-1:-1;;;;;4490:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4490:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4490:33:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4490:33:0;;;;;;;;;4474:49;;4537:15;4546:5;4537:8;:15::i;:::-;4534:313;;;4569:19;4591:36;4607:4;4621;4591:15;:36::i;:::-;4569:58;-1:-1:-1;4646:15:0;;4642:89;;4682:33;;-1:-1:-1;;;4682:33:0;;-1:-1:-1;;;;;4688:4:0;4682:20;;;;:33;;4703:11;;4682:33;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4682:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4682:33:0;;;;4642:89;4534:313;;;;4763:72;4778:5;4785:10;4797:37;4813:5;4828:4;4797:15;:37::i;:::-;4763:14;:72::i;:::-;4871:21;:25;4867:100;;4913:42;;:10;;4933:21;4913:42;;;;;;;;;4933:21;4913:10;:42;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5521:322:0;5598:7;5619:12;5633:23;5660:5;-1:-1:-1;;;;;5660:16:0;5700:18;5720:5;5677:49;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;5677::0;;;49:4:-1;25:18;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;5677:49:0;;;179:29:-1;;;;160:49;;;5660:67:0;;;;5677:49;5660:67;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;5618:109:0;;;;5746:7;5738:46;;;;-1:-1:-1;;;5738:46:0;;;;;;;;;5813:10;5802:33;;;;;;;;;;;;;;5795:40;5521:322;-1:-1:-1;;;;;5521:322:0:o;7280:334::-;7375:12;7389:23;7416:5;-1:-1:-1;;;;;7416:10:0;7450:17;7469:9;7480:6;7427:60;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;7427:60:0;;;49:4:-1;25:18;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;7427:60:0;;;179:29:-1;;;;160:49;;;7416:72:0;;;;7427:60;7416:72;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;7374:114:0;;;;7507:7;:69;;;;-1:-1:-1;7519:17:0;;:22;;:56;;;7556:10;7545:30;;;;;;;;;;;;;;7499:107;;;;-1:-1:-1;;;7499:107:0;;;;;;;;1145:263:-1;;1260:2;1248:9;1239:7;1235:23;1231:32;1228:2;;;-1:-1;;1266:12;1228:2;226:6;220:13;238:33;265:5;238:33;;;1318:74;1222:186;-1:-1;;;1222:186;1415:721;;;;;1579:3;1567:9;1558:7;1554:23;1550:33;1547:2;;;-1:-1;;1586:12;1547:2;85:6;72:20;97:33;124:5;97:33;;;1638:63;-1:-1;1738:2;1777:22;;;934:20;;-1:-1;1846:2;1885:22;;72:20;97:33;72:20;97:33;;;1854:63;-1:-1;1982:2;1967:18;;1954:32;2006:18;1995:30;;;1992:2;;;-1:-1;;2028:12;1992:2;2103:6;2092:9;2088:22;520:3;513:4;505:6;501:17;497:27;487:2;;-1:-1;;528:12;487:2;575:6;562:20;548:34;;2006:18;12040:6;12037:30;12034:2;;;-1:-1;;12070:12;12034:2;1846;11698:9;12143;12124:17;;-1:-1;;12120:33;11730:17;;;;11790:34;;;11826:22;;;11787:62;11784:2;;;-1:-1;;11852:12;11784:2;1846;11871:22;667:21;;;767:16;;;;;764:25;-1:-1;761:2;;;-1:-1;;792:12;761:2;13544:6;1738:2;709:6;705:17;1738:2;743:5;739:16;13521:30;13582:16;;;;;;13575:27;;;;1541:595;;;;-1:-1;1541:595;;-1:-1;;;1541:595;2143:257;;2255:2;2243:9;2234:7;2230:23;2226:32;2223:2;;;-1:-1;;2261:12;2223:2;364:6;358:13;14098:5;12850:13;12843:21;14076:5;14073:32;14063:2;;-1:-1;;14109:12;2407:263;;2522:2;2510:9;2501:7;2497:23;2493:32;2490:2;;;-1:-1;;2528:12;2490:2;-1:-1;1082:13;;2484:186;-1:-1;2484:186;6265:262;;3106:5;12320:12;-1:-1;13689:101;13703:6;13700:1;13697:13;13689:101;;;3250:4;13770:11;;;;;13764:18;13751:11;;;13744:39;13718:10;13689:101;;;13805:6;13802:1;13799:13;13796:2;;;-1:-1;13861:6;13856:3;13852:16;13845:27;13796:2;-1:-1;3281:16;;;;;6390:137;-1:-1;;6390:137;6534:213;-1:-1;;;;;12938:54;;;;2897:37;;6652:2;6637:18;;6623:124;6990:340;-1:-1;;;;;12938:54;;;;2756:58;;7316:2;7301:18;;6216:37;7144:2;7129:18;;7115:215;7337:435;-1:-1;;;;;12938:54;;;2897:37;;12938:54;;;;7675:2;7660:18;;2897:37;7758:2;7743:18;;6216:37;;;;7511:2;7496:18;;7482:290;8110:407;8301:2;8315:47;;;3534:2;8286:18;;;12618:19;3570:27;12658:14;;;3550:48;3617:12;;;8272:245;8524:407;8715:2;8729:47;;;3868:2;8700:18;;;12618:19;3904:28;12658:14;;;3884:49;3952:12;;;8686:245;8938:407;9129:2;9143:47;;;4203:2;9114:18;;;12618:19;-1:-1;;;12658:14;;;4219:41;4279:12;;;9100:245;9352:407;9543:2;9557:47;;;4530:2;9528:18;;;12618:19;4566:34;12658:14;;;4546:55;-1:-1;;;4621:12;;;4614:45;4678:12;;;9514:245;9766:407;9957:2;9971:47;;;4929:2;9942:18;;;12618:19;4965:34;12658:14;;;4945:55;-1:-1;;;5020:12;;;5013:27;5059:12;;;9928:245;10180:407;10371:2;10385:47;;;5310:2;10356:18;;;12618:19;5346:34;12658:14;;;5326:55;-1:-1;;;5401:12;;;5394:35;5448:12;;;10342:245;10594:407;10785:2;10799:47;;;5699:2;10770:18;;;12618:19;5735:26;12658:14;;;5715:47;5781:12;;;10756:245;11008:407;11199:2;11213:47;;;6032:2;11184:18;;;12618:19;6068:31;12658:14;;;6048:52;6119:12;;;11170:245;11422:213;6216:37;;;11540:2;11525:18;;11511:124;13893:117;-1:-1;;;;;12938:54;;13952:35;;13942:2;;14001:1;;13991:12;13942:2;13936:74;

Swarm Source

ipfs://5ddd33bc87693ef2cc475b3c03ba594c46ca0db98440ea4e60dec8714af4ad9e
Block Transaction Difficulty Gas Used Reward
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.