ETH Price: $3,307.38 (-0.08%)

Contract

0x7bC3e11C6Ce1D3110E5D45ade5D9879FeB0f194F
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deliver131263012021-08-30 10:24:341229 days ago1630319074IN
0x7bC3e11C...FeB0f194F
0 ETH0.0041381859.95107589
Deliver131262172021-08-30 10:05:341229 days ago1630317934IN
0x7bC3e11C...FeB0f194F
0 ETH0.0047922164.92279287
Deliver131262042021-08-30 10:02:231229 days ago1630317743IN
0x7bC3e11C...FeB0f194F
0 ETH0.0042240257.2252556
Cross131255772021-08-30 7:38:361229 days ago1630309116IN
0x7bC3e11C...FeB0f194F
0 ETH0.0045495959.62150009
Cross131128182021-08-28 8:32:031231 days ago1630139523IN
0x7bC3e11C...FeB0f194F
0 ETH0.0056486669.65402678
Deliver131127742021-08-28 8:23:251231 days ago1630139005IN
0x7bC3e11C...FeB0f194F
0 ETH0.005028468.13376074
Deliver131082632021-08-27 15:37:031231 days ago1630078623IN
0x7bC3e11C...FeB0f194F
0 ETH0.0071470496.84081183
Deliver131082172021-08-27 15:26:411231 days ago1630078001IN
0x7bC3e11C...FeB0f194F
0 ETH0.0072510398.24990726
Deliver130356072021-08-16 10:04:101243 days ago1629108250IN
0x7bC3e11C...FeB0f194F
0 ETH0.0031821843.11080019
Cross130354222021-08-16 9:21:421243 days ago1629105702IN
0x7bC3e11C...FeB0f194F
0 ETH0.0031215338.49179965
Cross130312442021-08-15 17:58:341243 days ago1629050314IN
0x7bC3e11C...FeB0f194F
0 ETH0.0038966939.68282566
_set Courier130303032021-08-15 14:30:231243 days ago1629037823IN
0x7bC3e11C...FeB0f194F
0 ETH0.0014213640
Cross130112382021-08-12 15:43:411246 days ago1628783021IN
0x7bC3e11C...FeB0f194F
0 ETH0.0029359436.2033836
Cross130104202021-08-12 12:44:171246 days ago1628772257IN
0x7bC3e11C...FeB0f194F
0 ETH0.002794634.46047956
Cross130051832021-08-11 17:26:051247 days ago1628702765IN
0x7bC3e11C...FeB0f194F
0 ETH0.0050633962.43700933
Cross129224532021-07-29 19:06:171260 days ago1627585577IN
0x7bC3e11C...FeB0f194F
0 ETH0.0023842229.4
Cross129143642021-07-28 12:12:311261 days ago1627474351IN
0x7bC3e11C...FeB0f194F
0 ETH0.0017845927
Cross129130442021-07-28 7:12:061262 days ago1627456326IN
0x7bC3e11C...FeB0f194F
0 ETH0.0021490426.5
Cross129068112021-07-27 7:22:031263 days ago1627370523IN
0x7bC3e11C...FeB0f194F
0 ETH0.0012164415
Cross129025452021-07-26 15:09:511263 days ago1627312191IN
0x7bC3e11C...FeB0f194F
0 ETH0.003892648
Cross129024152021-07-26 14:38:341263 days ago1627310314IN
0x7bC3e11C...FeB0f194F
0 ETH0.0031221938.5
Cross129011222021-07-26 9:44:521264 days ago1627292692IN
0x7bC3e11C...FeB0f194F
0 ETH0.0010656616.12300072
Cross129009252021-07-26 8:59:381264 days ago1627289978IN
0x7bC3e11C...FeB0f194F
0 ETH0.0012975316.00000145
Cross128185182021-07-13 11:30:101276 days ago1626175810IN
0x7bC3e11C...FeB0f194F
0 ETH0.001865223.00000145
Cross128126862021-07-12 13:28:041277 days ago1626096484IN
0x7bC3e11C...FeB0f194F
0 ETH0.0027099341
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BridgeProxy

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : BridgeProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.6;

import "./ProxyStorage.sol";

contract BridgeProxy is ProxyStorage {

    event NewAdmin(address oldAdmin, address newAdmin);
    event NewImplementation(address oldImplementation, address newImplementation);

    constructor(
        address bridgeImplementation_,
        address _courier,
        address _guardian,
        address _bridgeToken,
        uint _fee,
        uint[] memory _newRoutes
    ) {
        // Set admin to caller
        admin = msg.sender;

        _setImplementation(bridgeImplementation_);

        // First delegate gets to initialize the delegator (i.e. storage contract)
        delegateTo(implementation, abi.encodeWithSignature("initialize(address,address,address,uint256,uint256[])",
            _courier,
            _guardian,
            _bridgeToken,
            _fee,
            _newRoutes)
        );
    }

    /**
     * @notice Internal method to delegate execution to another contract
     * @dev It returns to the external caller whatever the implementation returns or forwards reverts
     * @param callee The contract to delegatecall
     * @param data The raw data to delegatecall
     * @return The returned bytes from the delegatecall
     */
    function delegateTo(address callee, bytes memory data) internal returns (bytes memory) {
        (bool success, bytes memory returnData) = callee.delegatecall(data);
        assembly {
            if eq(success, 0) {
                revert(add(returnData, 0x20), returndatasize())
            }
        }
        return returnData;
    }

    function delegateAndReturn() internal returns (bytes memory) {
        (bool success, ) = implementation.delegatecall(msg.data);

        assembly {
            let free_mem_ptr := mload(0x40)
            returndatacopy(free_mem_ptr, 0, returndatasize())

            switch success
            case 0 { revert(free_mem_ptr, returndatasize()) }
            default { return(free_mem_ptr, returndatasize()) }
        }
    }

    /**
     * @notice Delegates execution to an implementation contract
     * @dev It returns to the external caller whatever the implementation returns or forwards reverts
     */
    fallback() external {
        // delegate all other functions to current implementation
        delegateAndReturn();
    }

    function setImplementation(address newImplementation) external returns (bool) {
        require(msg.sender == admin, 'BridgeProxy: Only admin can set implementation');

        address oldImplementation = implementation;
        _setImplementation(newImplementation);

        emit NewImplementation(oldImplementation, implementation);

        return true;
    }

    function _setPendingAdmin(address newPendingAdmin) public returns (bool) {
        // Check caller = admin
        require(msg.sender == admin, 'BridgeProxy: Only admin can set pending admin');

        // Store pendingAdmin with value newPendingAdmin
        pendingAdmin = newPendingAdmin;

        return true;
    }

    function _acceptAdmin() public returns (bool) {
        // Check caller is pendingAdmin
        require(msg.sender == pendingAdmin, 'BridgeProxy: Only pendingAdmin can accept admin');

        address oldAdmin = admin;

        // Store admin with value pendingAdmin
        admin = pendingAdmin;

        // Clear the pending value
        pendingAdmin = address(0);

        emit NewAdmin(oldAdmin, admin);

        return true;
    }

    function _setImplementation(address implementation_) internal {
        implementation = implementation_;
    }
}

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

contract ProxyStorage {
    address public implementation;
    address public admin;
    address public pendingAdmin;
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"bridgeImplementation_","type":"address"},{"internalType":"address","name":"_courier","type":"address"},{"internalType":"address","name":"_guardian","type":"address"},{"internalType":"address","name":"_bridgeToken","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"uint256[]","name":"_newRoutes","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"_acceptAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setPendingAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"setImplementation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051610c4c380380610c4c833981810160405260c081101561003357600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051604051939291908464010000000082111561008557600080fd5b8382019150602082018581111561009b57600080fd5b82518660208202830111640100000000821117156100b857600080fd5b8083526020830192505050908051906020019060200280838360005b838110156100ef5780820151818401526020810190506100d4565b5050505090500160405250505033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061014c866102b860201b60201c565b6102ac60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168686868686604051602401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156102155780820151818401526020810190506101fa565b5050505090500196505050505050506040516020818303038152906040527fb009d171000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506102fb60201b60201c565b505050505050506103d0565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040518082805190602001908083835b6020831061034b5780518252602082019150602081019050602083039250610328565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146103ab576040519150601f19603f3d011682016040523d82523d6000602084013e6103b0565b606091505b509150915060008214156103c5573d60208201fd5b809250505092915050565b61086d806103df6000396000f3fe608060405234801561001057600080fd5b50600436106100665760003560e01c806326782247146100725780635c60da1b146100a6578063b71d1a0c146100da578063d784d42614610134578063e9c714f21461018e578063f851a440146101ae57610067565b5b61006f6101e2565b50005b61007a610293565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100ae6102b9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61011c600480360360208110156100f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102dd565b60405180821515815260200191505060405180910390f35b6101766004803603602081101561014a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103cf565b60405180821515815260200191505060405180910390f35b61019661053b565b60405180821515815260200191505060405180910390f35b6101b6610744565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600036604051808383808284378083019250505092505050600060405180830381855af49150503d8060008114610271576040519150601f19603f3d011682016040523d82523d6000602084013e610276565b606091505b505090506040513d6000823e816000811461028f573d82f35b3d82fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061080b602d913960400191505060405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806107dd602e913960400191505060405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506104a68361076a565b7fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a8160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a16001915050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806107ae602f913960400191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc81600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600191505090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe42726964676550726f78793a204f6e6c792070656e64696e6741646d696e2063616e206163636570742061646d696e42726964676550726f78793a204f6e6c792061646d696e2063616e2073657420696d706c656d656e746174696f6e42726964676550726f78793a204f6e6c792061646d696e2063616e207365742070656e64696e672061646d696ea2646970667358221220fce91c49ad374ad63a95fa9d6e00420e2cd66fcdf74ab72ca3cba78906f0ed2f64736f6c6343000706003300000000000000000000000017571bea9cbabd3a6998575c59ce284ebf037cb2000000000000000000000000c0f936c5f4668e9a4e01dd9a3b39d619b75c46880000000000000000000000006ebd066e2891922f3c1bfd426b2a49d5d0bc11c8000000000000000000000000a8b61cff52564758a204f841e636265bebc8db9b000000000000000000000000000000000000000000000001158e460913d0000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000038

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100665760003560e01c806326782247146100725780635c60da1b146100a6578063b71d1a0c146100da578063d784d42614610134578063e9c714f21461018e578063f851a440146101ae57610067565b5b61006f6101e2565b50005b61007a610293565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100ae6102b9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61011c600480360360208110156100f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102dd565b60405180821515815260200191505060405180910390f35b6101766004803603602081101561014a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103cf565b60405180821515815260200191505060405180910390f35b61019661053b565b60405180821515815260200191505060405180910390f35b6101b6610744565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600036604051808383808284378083019250505092505050600060405180830381855af49150503d8060008114610271576040519150601f19603f3d011682016040523d82523d6000602084013e610276565b606091505b505090506040513d6000823e816000811461028f573d82f35b3d82fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061080b602d913960400191505060405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806107dd602e913960400191505060405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506104a68361076a565b7fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a8160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a16001915050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806107ae602f913960400191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc81600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600191505090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe42726964676550726f78793a204f6e6c792070656e64696e6741646d696e2063616e206163636570742061646d696e42726964676550726f78793a204f6e6c792061646d696e2063616e2073657420696d706c656d656e746174696f6e42726964676550726f78793a204f6e6c792061646d696e2063616e207365742070656e64696e672061646d696ea2646970667358221220fce91c49ad374ad63a95fa9d6e00420e2cd66fcdf74ab72ca3cba78906f0ed2f64736f6c63430007060033

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

00000000000000000000000017571bea9cbabd3a6998575c59ce284ebf037cb2000000000000000000000000c0f936c5f4668e9a4e01dd9a3b39d619b75c46880000000000000000000000006ebd066e2891922f3c1bfd426b2a49d5d0bc11c8000000000000000000000000a8b61cff52564758a204f841e636265bebc8db9b000000000000000000000000000000000000000000000001158e460913d0000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000038

-----Decoded View---------------
Arg [0] : bridgeImplementation_ (address): 0x17571BEA9cbaBd3A6998575c59CE284eBF037CB2
Arg [1] : _courier (address): 0xc0F936C5f4668E9A4e01dd9A3B39D619b75C4688
Arg [2] : _guardian (address): 0x6EBD066e2891922f3c1BfD426B2a49D5D0bc11C8
Arg [3] : _bridgeToken (address): 0xa8B61CfF52564758A204F841E636265bEBC8db9B
Arg [4] : _fee (uint256): 20000000000000000000
Arg [5] : _newRoutes (uint256[]): 56

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 00000000000000000000000017571bea9cbabd3a6998575c59ce284ebf037cb2
Arg [1] : 000000000000000000000000c0f936c5f4668e9a4e01dd9a3b39d619b75c4688
Arg [2] : 0000000000000000000000006ebd066e2891922f3c1bfd426b2a49d5d0bc11c8
Arg [3] : 000000000000000000000000a8b61cff52564758a204f841e636265bebc8db9b
Arg [4] : 000000000000000000000000000000000000000000000001158e460913d00000
Arg [5] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000038


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.