Contract 0xAC23817f7E9Ec7EB6B7889BDd2b50e04a44470c5 6

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6d0ebc9b3b2c13b116c2fab23d16b7b8ca1bce1616b78d8beb6db0bbd8162122Mint400477642022-06-08 7:22:2329 days 9 hrs ago0xdde659510144fd68b50e2a73e3dc671e4db65bad IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.001894762077
0xb9d219e08bdf3bfa9927157a0b659068a8b5286e426022665fb1e2260c580685Mint400194662022-06-07 22:12:5329 days 18 hrs ago0x1a479b313241edb55fea322a1fe97c992016ac15 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.002029918978
0x6443181b6f237ecc3a4b8b7dabac5ee058c3df14e58c04b106c6e04620d76846Mint399987602022-06-07 15:32:2430 days 1 hr ago0xe264d8b12beb6bc8d88f3a86062162cba0e946d3 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.001197882185
0xd2d6245de42e522bb4e1a74ab3e58e5da0aef86905740ba89bf34abcc841e5d4Mint399156212022-06-06 12:31:4731 days 4 hrs ago0xe264d8b12beb6bc8d88f3a86062162cba0e946d3 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.001270114977
0xf1636bc1f8dc30fc3aa5a1dae3509fe29db162cd1e4ea5ff3caa8206481359d1Mint399054572022-06-06 9:21:1831 days 7 hrs ago0x8f96ffa35aa38b9118328ff3454f6abc0c90a4cf IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.001630550231
0x1064c8253e2c51fe32aa3304813547d415ae2abff36a22ceb020221414f71d7aMint398670202022-06-05 21:11:3931 days 19 hrs ago0x36d525132cda9b6836b2d86d02aae1a0317b843b IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.001846658
0x9484a582dd2909db1dc9c7db4b8e6b56464f0e5831523d0ac8f4f9cfdad4cdd3Mint398546762022-06-05 17:16:2931 days 23 hrs ago0x80673b190bf0db65d6b3aae43c91a2422ded0e6e IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.00091651773
0x22d594e776aa33b2424c412ff6b5f7ccbacd6e475fb9f077130e999bf2ce797aMint398325742022-06-05 10:04:5932 days 6 hrs ago0xfa0238b132ba592e1330f27297684b38aab3d7e1 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.001175622
0x17b7d7db67eb4ec201a20e9fbc744f8895db0ac40a9eb8fe56a472d174695c60Mint397919202022-06-04 21:05:5932 days 19 hrs ago0xaac2bd4f44c02d3a8a8f4ac88b87a91ab7ef0bf2 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.001343376
0x8d3c1628087b2476c142063b5a0e193449f808dc0d1669a99d615d4f157cf78dMint397584022022-06-04 10:10:0033 days 6 hrs ago0xd4ac35f8bd79d31c61d9704eabb3195185ec7b63 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.00074938053
0x534f4c656d3cc7ce9b40f37e22f06988017ea24ac0b689358febd35569a733a0Mint396534132022-06-03 0:59:4234 days 16 hrs ago0xdee43b42aa150242e60cdcc08cc7a9ceafc0e8bf IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.001546536396
0xbad084c127ebbc19a160f1ea5e53aaf447028d2b7cac9e8850f3989aecdab03cMint396533982022-06-03 0:59:2634 days 16 hrs ago0xdee43b42aa150242e60cdcc08cc7a9ceafc0e8bf IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.006723861609
0xbd8386e7f6fbe62c1482e23be0a9d7f70107d804fa9d505ed6d6358ada13e0b2Mint396533792022-06-03 0:59:0634 days 16 hrs ago0xdee43b42aa150242e60cdcc08cc7a9ceafc0e8bf IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.001665443202
0x0c4782338e0c36c520d84cc5a9fd8335805f4248238f6e83e58f418bea236c7fMint396269272022-06-02 16:36:5235 days 23 mins ago0xe264d8b12beb6bc8d88f3a86062162cba0e946d3 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.006315268161
0xd87b29134ab527a6a18a8be940c8bcc4d9a39edeb6440b35c2ba807b13c8b374Mint395885292022-06-02 3:48:1135 days 13 hrs ago0x853df01b3bcf200500db470d509040d12face0b3 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.002222992642
0x8da3c3ee3e1926e78850f1030f2e5d7edd49403d3c68f3393f2d86d207eca18aMint395701262022-06-01 21:54:5235 days 19 hrs ago0xd4ac35f8bd79d31c61d9704eabb3195185ec7b63 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.003037391053
0x7dc4506b2a7bae9664301e9f20200c8c1c9ee1f21f9a2497d6c35ec2165eed7eMint395643092022-06-01 19:59:4235 days 21 hrs ago0xdde659510144fd68b50e2a73e3dc671e4db65bad IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.002214183102
0x94a74cef2465fc189d87b6af33a2cec5badcc24157b5c9bf7110a3a0face629aMint395541502022-06-01 16:46:1936 days 14 mins ago0x9603269b9a60e27f482c89b31a89fb20930d844d IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.092534331257
0xcb6153ebde6de4258cd2e2857318afa489412440b03a07216697bc707c644118Mint395453842022-06-01 13:48:5036 days 3 hrs ago0xe264d8b12beb6bc8d88f3a86062162cba0e946d3 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.007582818571
0x4657bb4e4b3f9603ff6ae1ec6b543ce1af6b150ea63ea7d769cfcf550e99f9bbMint395449562022-06-01 13:36:0536 days 3 hrs ago0x853df01b3bcf200500db470d509040d12face0b3 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.00277281091
0xff18983857abb118e5fa7fc5d94a3f9d53a24272231ecc18269aa5d94d1c46c1Mint394682512022-05-31 12:49:5737 days 4 hrs ago0xe264d8b12beb6bc8d88f3a86062162cba0e946d3 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.003752322267
0x8c37fc9cfdfe6c52f409f1e723fb1839dfb25d5e1fe3908c57cd27dda9d917beMint394628462022-05-31 11:07:0237 days 5 hrs ago0x853df01b3bcf200500db470d509040d12face0b3 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.005403997772
0x92310c016d09195acd3281e1d3638b08c82212a90a5c8917e0fffa156a6f3c45Mint393954332022-05-30 12:53:5338 days 4 hrs ago0xaa39c98f385aec99611006b73171b02df2c64211 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.024360582522
0xe01f0ccff82cac1db227a33e1b8fdaf77030c0cb2c4997ea656d081fd794e93dMint393941392022-05-30 12:25:2638 days 4 hrs ago0x27d4a79f9096f1b337de23d089d27c0eca313979 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.024352612408
0x029f07bb8df13997d12e31ac3c6fa7c8c90c6baa5110ad75b023624dbd7e998aMint393561352022-05-29 23:52:4338 days 17 hrs ago0x070c50863920c7ad90cad084c80632a1df911129 IN  0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50 FTM0.000593858334
[ Download CSV Export 
Latest 7 internal transactions
Parent Txn Hash Block From To Value
0x17b7c650a6a630794fc303da6254fb63435adfeaf0e4b2986ca4a89965c5589a281767832022-01-16 21:55:29171 days 19 hrs ago 0x56b2a275bf05536fd16f76fb2fb622553b130672 0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c520 FTM
0xf1ec4ba6f060b573858ab7ac3634c8275b6654fdac5db3fd1365a48084e24ab0281629192022-01-16 18:39:54171 days 22 hrs ago 0x88bcda20db72ef38f381b214779a6dc1e836fa24 0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50.1 FTM
0x3d028d986660e980f946f8c715df5f2f4bee26f375bf357a0ecaefda32269f7a281627972022-01-16 18:38:14171 days 22 hrs ago 0x88bcda20db72ef38f381b214779a6dc1e836fa24 0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50.25 FTM
0x42c0299eee02e871c5c819e1de185dd418f2865a697ec0dc734b4cf960e33607281625082022-01-16 18:33:52171 days 22 hrs ago 0x88bcda20db72ef38f381b214779a6dc1e836fa24 0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50.25 FTM
0xd8cd911325f89c2f7b43754feb3e0cc7e23a7c1517cd7f6bd737180b278cdeb7220938212021-11-15 5:08:13234 days 11 hrs ago 0xfde4d18cbe2b26d4a6eefb36c6e2cc72c41674ee 0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c50.2 FTM
0x7a270c7c4eb8434694fd4514830dbb0ac0f3a1f45cd1a1e23eefee912a036fb4184754222021-10-07 0:20:03273 days 16 hrs ago 0x2c1145b0eb66f8498419991a9c434dae6d0ed1e9 0xac23817f7e9ec7eb6b7889bdd2b50e04a44470c52 FTM
0x7f183392b8a6225c7a46c1e346b5db12e513e789223d33a55bf0e982916c381074965372021-05-24 12:35:13409 days 4 hrs ago Ren: Deployer  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BasicAdapter

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2021-08-28
*/

/**

Deployed by Ren Project, https://renproject.io

Commit hash: 05c0aaf
Repository: https://github.com/renproject/gateway-sol
Issues: https://github.com/renproject/gateway-sol/issues

Licenses
@openzeppelin/contracts: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/LICENSE
gateway-sol: https://github.com/renproject/gateway-sol/blob/master/LICENSE

*/

pragma solidity ^0.5.17;


contract Initializable {

  
  bool private initialized;

  
  bool private initializing;

  
  modifier initializer() {
    require(initializing || isConstructor() || !initialized, "Contract instance has already been initialized");

    bool isTopLevelCall = !initializing;
    if (isTopLevelCall) {
      initializing = true;
      initialized = true;
    }

    _;

    if (isTopLevelCall) {
      initializing = false;
    }
  }

  
  function isConstructor() private view returns (bool) {
    
    
    
    
    
    address self = address(this);
    uint256 cs;
    assembly { cs := extcodesize(self) }
    return cs == 0;
  }

  
  uint256[50] private ______gap;
}

interface IRelayRecipient {
    
    function getHubAddr() external view returns (address);

    
    function acceptRelayedCall(
        address relay,
        address from,
        bytes calldata encodedFunction,
        uint256 transactionFee,
        uint256 gasPrice,
        uint256 gasLimit,
        uint256 nonce,
        bytes calldata approvalData,
        uint256 maxPossibleCharge
    )
        external
        view
        returns (uint256, bytes memory);

    
    function preRelayedCall(bytes calldata context) external returns (bytes32);

    
    function postRelayedCall(bytes calldata context, bool success, uint256 actualCharge, bytes32 preRetVal) external;
}

interface IRelayHub {
    

    
    function stake(address relayaddr, uint256 unstakeDelay) external payable;

    
    event Staked(address indexed relay, uint256 stake, uint256 unstakeDelay);

    
    function registerRelay(uint256 transactionFee, string calldata url) external;

    
    event RelayAdded(address indexed relay, address indexed owner, uint256 transactionFee, uint256 stake, uint256 unstakeDelay, string url);

    
    function removeRelayByOwner(address relay) external;

    
    event RelayRemoved(address indexed relay, uint256 unstakeTime);

    
    function unstake(address relay) external;

    
    event Unstaked(address indexed relay, uint256 stake);

    
    enum RelayState {
        Unknown, 
        Staked, 
        Registered, 
        Removed    
    }

    
    function getRelay(address relay) external view returns (uint256 totalStake, uint256 unstakeDelay, uint256 unstakeTime, address payable owner, RelayState state);

    

    
    function depositFor(address target) external payable;

    
    event Deposited(address indexed recipient, address indexed from, uint256 amount);

    
    function balanceOf(address target) external view returns (uint256);

    
    function withdraw(uint256 amount, address payable dest) external;

    
    event Withdrawn(address indexed account, address indexed dest, uint256 amount);

    

    
    function canRelay(
        address relay,
        address from,
        address to,
        bytes calldata encodedFunction,
        uint256 transactionFee,
        uint256 gasPrice,
        uint256 gasLimit,
        uint256 nonce,
        bytes calldata signature,
        bytes calldata approvalData
    ) external view returns (uint256 status, bytes memory recipientContext);

    
    enum PreconditionCheck {
        OK,                         
        WrongSignature,             
        WrongNonce,                 
        AcceptRelayedCallReverted,  
        InvalidRecipientStatusCode  
    }

    
    function relayCall(
        address from,
        address to,
        bytes calldata encodedFunction,
        uint256 transactionFee,
        uint256 gasPrice,
        uint256 gasLimit,
        uint256 nonce,
        bytes calldata signature,
        bytes calldata approvalData
    ) external;

    
    event CanRelayFailed(address indexed relay, address indexed from, address indexed to, bytes4 selector, uint256 reason);

    
    event TransactionRelayed(address indexed relay, address indexed from, address indexed to, bytes4 selector, RelayCallStatus status, uint256 charge);

    
    enum RelayCallStatus {
        OK,                      
        RelayedCallFailed,       
        PreRelayedFailed,        
        PostRelayedFailed,       
        RecipientBalanceChanged  
    }

    
    function requiredGas(uint256 relayedCallStipend) external view returns (uint256);

    
    function maxPossibleCharge(uint256 relayedCallStipend, uint256 gasPrice, uint256 transactionFee) external view returns (uint256);

     
     
    
    

    
    function penalizeRepeatedNonce(bytes calldata unsignedTx1, bytes calldata signature1, bytes calldata unsignedTx2, bytes calldata signature2) external;

    
    function penalizeIllegalTransaction(bytes calldata unsignedTx, bytes calldata signature) external;

    
    event Penalized(address indexed relay, address sender, uint256 amount);

    
    function getNonce(address from) external view returns (uint256);
}

contract Context is Initializable {
    
    
    constructor () internal { }
    

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; 
        return msg.data;
    }
}

contract GSNRecipient is Initializable, IRelayRecipient, Context {
    function initialize() public initializer {
        if (_relayHub == address(0)) {
            setDefaultRelayHub();
        }
    }

    function setDefaultRelayHub() public {
        _upgradeRelayHub(0xD216153c06E857cD7f72665E0aF1d7D82172F494);
    }

    
    address private _relayHub;

    uint256 constant private RELAYED_CALL_ACCEPTED = 0;
    uint256 constant private RELAYED_CALL_REJECTED = 11;

    
    uint256 constant internal POST_RELAYED_CALL_MAX_GAS = 100000;

    
    event RelayHubChanged(address indexed oldRelayHub, address indexed newRelayHub);

    
    function getHubAddr() public view returns (address) {
        return _relayHub;
    }

    
    function _upgradeRelayHub(address newRelayHub) internal {
        address currentRelayHub = _relayHub;
        require(newRelayHub != address(0), "GSNRecipient: new RelayHub is the zero address");
        require(newRelayHub != currentRelayHub, "GSNRecipient: new RelayHub is the current one");

        emit RelayHubChanged(currentRelayHub, newRelayHub);

        _relayHub = newRelayHub;
    }

    
    
    
    function relayHubVersion() public view returns (string memory) {
        this; 
        return "1.0.0";
    }

    
    function _withdrawDeposits(uint256 amount, address payable payee) internal {
        IRelayHub(_relayHub).withdraw(amount, payee);
    }

    
    
    
    

    
    function _msgSender() internal view returns (address payable) {
        if (msg.sender != _relayHub) {
            return msg.sender;
        } else {
            return _getRelayedCallSender();
        }
    }

    
    function _msgData() internal view returns (bytes memory) {
        if (msg.sender != _relayHub) {
            return msg.data;
        } else {
            return _getRelayedCallData();
        }
    }

    
    

    
    function preRelayedCall(bytes calldata context) external returns (bytes32) {
        require(msg.sender == getHubAddr(), "GSNRecipient: caller is not RelayHub");
        return _preRelayedCall(context);
    }

    
    function _preRelayedCall(bytes memory context) internal returns (bytes32);

    
    function postRelayedCall(bytes calldata context, bool success, uint256 actualCharge, bytes32 preRetVal) external {
        require(msg.sender == getHubAddr(), "GSNRecipient: caller is not RelayHub");
        _postRelayedCall(context, success, actualCharge, preRetVal);
    }

    
    function _postRelayedCall(bytes memory context, bool success, uint256 actualCharge, bytes32 preRetVal) internal;

    
    function _approveRelayedCall() internal pure returns (uint256, bytes memory) {
        return _approveRelayedCall("");
    }

    
    function _approveRelayedCall(bytes memory context) internal pure returns (uint256, bytes memory) {
        return (RELAYED_CALL_ACCEPTED, context);
    }

    
    function _rejectRelayedCall(uint256 errorCode) internal pure returns (uint256, bytes memory) {
        return (RELAYED_CALL_REJECTED + errorCode, "");
    }

    
    function _computeCharge(uint256 gas, uint256 gasPrice, uint256 serviceFee) internal pure returns (uint256) {
        
        
        return (gas * gasPrice * (100 + serviceFee)) / 100;
    }

    function _getRelayedCallSender() private pure returns (address payable result) {
        
        
        
        
        

        
        

        
        bytes memory array = msg.data;
        uint256 index = msg.data.length;

        
        assembly {
            
            result := and(mload(add(array, index)), 0xffffffffffffffffffffffffffffffffffffffff)
        }
        return result;
    }

    function _getRelayedCallData() private pure returns (bytes memory) {
        
        

        uint256 actualDataLength = msg.data.length - 20;
        bytes memory actualData = new bytes(actualDataLength);

        for (uint256 i = 0; i < actualDataLength; ++i) {
            actualData[i] = msg.data[i];
        }

        return actualData;
    }
}

interface IMintGateway {
    function mint(
        bytes32 _pHash,
        uint256 _amount,
        bytes32 _nHash,
        bytes calldata _sig
    ) external returns (uint256);

    function mintFee() external view returns (uint256);
}

interface IBurnGateway {
    function burn(bytes calldata _to, uint256 _amountScaled)
        external
        returns (uint256);

    function burnFee() external view returns (uint256);
}

interface IGateway {
    
    function mint(
        bytes32 _pHash,
        uint256 _amount,
        bytes32 _nHash,
        bytes calldata _sig
    ) external returns (uint256);

    function mintFee() external view returns (uint256);

    
    function burn(bytes calldata _to, uint256 _amountScaled)
        external
        returns (uint256);

    function burnFee() external view returns (uint256);
}

interface IERC20 {
    
    function totalSupply() external view returns (uint256);

    
    function balanceOf(address account) external view returns (uint256);

    
    function transfer(address recipient, uint256 amount) external returns (bool);

    
    function allowance(address owner, address spender) external view returns (uint256);

    
    function approve(address spender, uint256 amount) external returns (bool);

    
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    
    event Transfer(address indexed from, address indexed to, uint256 value);

    
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IGatewayRegistry {
    
    
    event LogGatewayRegistered(
        string _symbol,
        string indexed _indexedSymbol,
        address indexed _tokenAddress,
        address indexed _gatewayAddress
    );
    event LogGatewayDeregistered(
        string _symbol,
        string indexed _indexedSymbol,
        address indexed _tokenAddress,
        address indexed _gatewayAddress
    );
    event LogGatewayUpdated(
        address indexed _tokenAddress,
        address indexed _currentGatewayAddress,
        address indexed _newGatewayAddress
    );

    
    function getGateways(address _start, uint256 _count)
        external
        view
        returns (address[] memory);

    
    function getRenTokens(address _start, uint256 _count)
        external
        view
        returns (address[] memory);

    
    
    
    
    function getGatewayByToken(address _tokenAddress)
        external
        view
        returns (IGateway);

    
    
    
    
    function getGatewayBySymbol(string calldata _tokenSymbol)
        external
        view
        returns (IGateway);

    
    
    
    
    function getTokenBySymbol(string calldata _tokenSymbol)
        external
        view
        returns (IERC20);
}

contract BasicAdapter is GSNRecipient {
    IGatewayRegistry registry;

    constructor(IGatewayRegistry _registry) public {
        GSNRecipient.initialize();
        registry = _registry;
    }

    function mint(
        
        string calldata _symbol,
        address _recipient,
        
        uint256 _amount,
        bytes32 _nHash,
        bytes calldata _sig
    ) external {
        bytes32 payloadHash = keccak256(abi.encode(_symbol, _recipient));
        uint256 amount = registry.getGatewayBySymbol(_symbol).mint(
            payloadHash,
            _amount,
            _nHash,
            _sig
        );
        registry.getTokenBySymbol(_symbol).transfer(_recipient, amount);
    }

    function burn(
        string calldata _symbol,
        bytes calldata _to,
        uint256 _amount
    ) external {
        require(
            registry.getTokenBySymbol(_symbol).transferFrom(
                _msgSender(),
                address(this),
                _amount
            ),
            "token transfer failed"
        );
        registry.getGatewayBySymbol(_symbol).burn(_to, _amount);
    }

    

    function acceptRelayedCall(
        address relay,
        address from,
        bytes calldata encodedFunction,
        uint256 transactionFee,
        uint256 gasPrice,
        uint256 gasLimit,
        uint256 nonce,
        bytes calldata approvalData,
        uint256 maxPossibleCharge
    ) external view returns (uint256, bytes memory) {
        return _approveRelayedCall();
    }

    
    function _preRelayedCall(bytes memory context) internal returns (bytes32) {}

    function _postRelayedCall(
        bytes memory context,
        bool,
        uint256 actualCharge,
        bytes32
    ) internal {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IGatewayRegistry","name":"_registry","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldRelayHub","type":"address"},{"indexed":true,"internalType":"address","name":"newRelayHub","type":"address"}],"name":"RelayHubChanged","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"relay","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"bytes","name":"encodedFunction","type":"bytes"},{"internalType":"uint256","name":"transactionFee","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"approvalData","type":"bytes"},{"internalType":"uint256","name":"maxPossibleCharge","type":"uint256"}],"name":"acceptRelayedCall","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"bytes","name":"_to","type":"bytes"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getHubAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_nHash","type":"bytes32"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"actualCharge","type":"uint256"},{"internalType":"bytes32","name":"preRetVal","type":"bytes32"}],"name":"postRelayedCall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes","name":"context","type":"bytes"}],"name":"preRelayedCall","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"relayHubVersion","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setDefaultRelayHub","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200133f3803806200133f833981810160405260208110156200003757600080fd5b50516200004f62000075602090811b6200092717901c565b603480546001600160a01b0319166001600160a01b039290921691909117905562000280565b600054610100900460ff16806200009a57506200009a6001600160e01b036200014c16565b80620000a9575060005460ff16155b620000e65760405162461bcd60e51b815260040180806020018281038252602e815260200180620012e4602e913960400191505060405180910390fd5b600054610100900460ff1615801562000112576000805460ff1961ff0019909116610100171660011790555b6033546001600160a01b03166200013657620001366001600160e01b036200015216565b801562000149576000805461ff00191690555b50565b303b1590565b6200017a73d216153c06e857cd7f72665e0af1d7d82172f4946001600160e01b036200017c16565b565b6033546001600160a01b03908116908216620001ca5760405162461bcd60e51b815260040180806020018281038252602e815260200180620012b6602e913960400191505060405180910390fd5b806001600160a01b0316826001600160a01b031614156200021d5760405162461bcd60e51b815260040180806020018281038252602d81526020018062001312602d913960400191505060405180910390fd5b816001600160a01b0316816001600160a01b03167fb9f84b8e65164b14439ae3620df0a4d8786d896996c0282b683f9d8c08f046e860405160405180910390a350603380546001600160a01b0319166001600160a01b0392909216919091179055565b61102680620002906000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638129fc1c116100665780638129fc1c1461021f57806383947ea014610227578063ad61ccd514610394578063b0ba3c5a14610411578063e06e0e22146104cf57610093565b80631220e2ff1461009857806374e861d6146100a257806377f61403146100c657806380274db71461019f575b600080fd5b6100a061054b565b005b6100aa61056a565b604080516001600160a01b039092168252519081900360200190f35b6100a0600480360360a08110156100dc57600080fd5b810190602081018135600160201b8111156100f657600080fd5b82018360208201111561010857600080fd5b803590602001918460018302840111600160201b8311171561012957600080fd5b919390926001600160a01b03833516926020810135926040820135929091608081019060600135600160201b81111561016157600080fd5b82018360208201111561017357600080fd5b803590602001918460018302840111600160201b8311171561019457600080fd5b50909250905061057a565b61020d600480360360208110156101b557600080fd5b810190602081018135600160201b8111156101cf57600080fd5b8201836020820111156101e157600080fd5b803590602001918460018302840111600160201b8311171561020257600080fd5b509092509050610888565b60408051918252519081900360200190f35b6100a0610927565b610315600480360361012081101561023e57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561027157600080fd5b82018360208201111561028357600080fd5b803590602001918460018302840111600160201b831117156102a457600080fd5b9193909282359260208101359260408201359260608301359260a081019060800135600160201b8111156102d757600080fd5b8201836020820111156102e957600080fd5b803590602001918460018302840111600160201b8311171561030a57600080fd5b9193509150356109e1565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610358578181015183820152602001610340565b50505050905090810190601f1680156103855780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61039c610a01565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d65781810151838201526020016103be565b50505050905090810190601f1680156104035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100a06004803603606081101561042757600080fd5b810190602081018135600160201b81111561044157600080fd5b82018360208201111561045357600080fd5b803590602001918460018302840111600160201b8311171561047457600080fd5b919390929091602081019035600160201b81111561049157600080fd5b8201836020820111156104a357600080fd5b803590602001918460018302840111600160201b831117156104c457600080fd5b919350915035610a20565b6100a0600480360360808110156104e557600080fd5b810190602081018135600160201b8111156104ff57600080fd5b82018360208201111561051157600080fd5b803590602001918460018302840111600160201b8311171561053257600080fd5b9193509150803515159060208101359060400135610cef565b61056873d216153c06e857cd7f72665e0af1d7d82172f494610d91565b565b6033546001600160a01b03165b90565b60008787876040516020018080602001836001600160a01b03166001600160a01b031681526020018281038252858582818152602001925080828437600081840152601f19601f8201169050808301925050509450505050506040516020818303038152906040528051906020012090506000603460009054906101000a90046001600160a01b03166001600160a01b03166364936b1e8a8a6040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920195506020945090925050508083038186803b15801561067157600080fd5b505afa158015610685573d6000803e3d6000fd5b505050506040513d602081101561069b57600080fd5b505160405163159ab14d60e01b8152600481018481526024820189905260448201889052608060648301908152608483018790526001600160a01b039093169263159ab14d9286928b928b928b928b92909160a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561072f57600080fd5b505af1158015610743573d6000803e3d6000fd5b505050506040513d602081101561075957600080fd5b505160345460405163efa74f1f60e01b8152602060048201908152602482018c90529293506001600160a01b039091169163efa74f1f918c918c918190604401848480828437600083820152604051601f909101601f191690920195506020945090925050508083038186803b1580156107d257600080fd5b505afa1580156107e6573d6000803e3d6000fd5b505050506040513d60208110156107fc57600080fd5b50516040805163a9059cbb60e01b81526001600160a01b038a81166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561085157600080fd5b505af1158015610865573d6000803e3d6000fd5b505050506040513d602081101561087b57600080fd5b5050505050505050505050565b600061089261056a565b6001600160a01b0316336001600160a01b0316146108e15760405162461bcd60e51b8152600401808060200182810382526024815260200180610fce6024913960400191505060405180910390fd5b61092083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610e9192505050565b9392505050565b600054610100900460ff16806109405750610940610e97565b8061094e575060005460ff16155b6109895760405162461bcd60e51b815260040180806020018281038252602e815260200180610f73602e913960400191505060405180910390fd5b600054610100900460ff161580156109b4576000805460ff1961ff0019909116610100171660011790555b6033546001600160a01b03166109cc576109cc61054b565b80156109de576000805461ff00191690555b50565b600060606109ed610e9d565b915091509b509b9950505050505050505050565b6040805180820190915260058152640312e302e360dc1b602082015290565b60345460405163efa74f1f60e01b8152602060048201908152602482018790526001600160a01b039092169163efa74f1f91889188918190604401848480828437600083820152604051601f909101601f191690920195506020945090925050508083038186803b158015610a9457600080fd5b505afa158015610aa8573d6000803e3d6000fd5b505050506040513d6020811015610abe57600080fd5b50516001600160a01b03166323b872dd610ad6610ec1565b604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152306024830152604482018590525160648083019260209291908290030181600087803b158015610b2a57600080fd5b505af1158015610b3e573d6000803e3d6000fd5b505050506040513d6020811015610b5457600080fd5b5051610b9f576040805162461bcd60e51b81526020600482015260156024820152741d1bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604482015290519081900360640190fd5b603454604051633249b58f60e11b8152602060048201908152602482018790526001600160a01b03909216916364936b1e91889188918190604401848480828437600083820152604051601f909101601f191690920195506020945090925050508083038186803b158015610c1357600080fd5b505afa158015610c27573d6000803e3d6000fd5b505050506040513d6020811015610c3d57600080fd5b5051604080516338463cff60e01b81526024810184905260048101918252604481018590526001600160a01b03909216916338463cff918691869186918190606401858580828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b158015610cbc57600080fd5b505af1158015610cd0573d6000803e3d6000fd5b505050506040513d6020811015610ce657600080fd5b50505050505050565b610cf761056a565b6001600160a01b0316336001600160a01b031614610d465760405162461bcd60e51b8152600401808060200182810382526024815260200180610fce6024913960400191505060405180910390fd5b610d8a85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150859050610eec565b5050505050565b6033546001600160a01b03908116908216610ddd5760405162461bcd60e51b815260040180806020018281038252602e815260200180610f45602e913960400191505060405180910390fd5b806001600160a01b0316826001600160a01b03161415610e2e5760405162461bcd60e51b815260040180806020018281038252602d815260200180610fa1602d913960400191505060405180910390fd5b816001600160a01b0316816001600160a01b03167fb9f84b8e65164b14439ae3620df0a4d8786d896996c0282b683f9d8c08f046e860405160405180910390a350603380546001600160a01b0319166001600160a01b0392909216919091179055565b50600090565b303b1590565b60006060610eb960405180602001604052806000815250610ef2565b915091509091565b6033546000906001600160a01b03163314610edd575033610577565b610ee5610ef7565b9050610577565b50505050565b600091565b600060606000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169291505056fe47534e526563697069656e743a206e65772052656c617948756220697320746865207a65726f2061646472657373436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656447534e526563697069656e743a206e65772052656c6179487562206973207468652063757272656e74206f6e6547534e526563697069656e743a2063616c6c6572206973206e6f742052656c6179487562a265627a7a72315820e484716aa8f5e7e3a42a23fa1a0806b1575f8df9b0782026b19232c971dd45b264736f6c6343000511003247534e526563697069656e743a206e65772052656c617948756220697320746865207a65726f2061646472657373436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656447534e526563697069656e743a206e65772052656c6179487562206973207468652063757272656e74206f6e6500000000000000000000000021c482f153d0317fe85c60be1f7fa079019fcebd

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

00000000000000000000000021c482f153d0317fe85c60be1f7fa079019fcebd

-----Decoded View---------------
Arg [0] : _registry (address): 0x21c482f153d0317fe85c60be1f7fa079019fcebd

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000021c482f153d0317fe85c60be1f7fa079019fcebd


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

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

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