Overview
POL Balance
0 POL
POL Value
$0.00More Info
Private Name Tags
ContractCreator
Sponsored
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 40786244 | 558 days ago | IN | 0 POL | 0.12328415 |
Loading...
Loading
Contract Name:
cryptopay
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "IERC20.sol"; import "IExchange.sol"; import "IConnext.sol"; contract cryptopay { // define DEX address (UniswapV2-like exchange and functions) // will be used to swap tokens to USDC before bridging through Connext // (Connext only supports crosschain USDC transfers) address public DEX_ADDRESS; // define token addresses address public WETH_ADDRESS; address public USDC_ADDRESS; // UniswapV2 style interface DEX object, used to execute swaps IExchange public DEX; // Connext bridge contract IConnext public connext; // domainIds identify which chain to bridge tokens to through Connext // mapping allows for easy domainId fetching, e.g. give it "gnosis" and it will return connext's gnosis domainId mapping(string => uint32) chainNameToDomainId; // maps chainName to web3pay contract address on specific chain // contract addresses must be updated through setContractAddress() function after all contracts have been deployed mapping(string => address) chainNameToContractAddress; address owner; // e.g. if network is optimism, 'thisChainName' will be 'optimism' string thisChainName; constructor( address connextAddress, address dexAddress, address wethAddress, address usdcAddress, string memory _thisChainName ) { DEX_ADDRESS = dexAddress; WETH_ADDRESS = wethAddress; USDC_ADDRESS = usdcAddress; // define chainName => domainId mappings chainNameToDomainId["gnosis"] = 6778479; chainNameToDomainId["polygon"] = 1886350457; thisChainName = _thisChainName; // define DEX object DEX = IExchange(DEX_ADDRESS); // define connext object connext = IConnext(connextAddress); owner = msg.sender; } // once web3pay contracts are deployed on all 3 chains, get addresses for all contracts and update them here function updateContractAddresses( address gnosisCA, address polygonCA ) external { require(msg.sender == owner); chainNameToContractAddress["gnosis"] = gnosisCA; chainNameToContractAddress["polygon"] = polygonCA; } event USDCTransferToMerchantInitiated( address indexed _merchantAddress, string indexed _toChainName, address indexed _sender, uint256 _amountUSDC ); event USDCTransferToMerchantConfirmed( address indexed _merchantAddress, string indexed _toChainName, address indexed _sender, uint256 _amountUSDC ); /** * @dev function transfers USDC to merchant on any chain through Connext * @dev payment may be completed in ether or any ERC20 token as long as it has a liquidity pool on a predetermined exchange * @param toChainName name of chain where tokens will be transferred to * @param usdcAmount amount of USDC to transfer to merchant * @param merchantAddress address where to send USDC * @param inEther determines whether payment is being completed in ERC20 or ether. If true, tokenAddress will be ignored * @param tokenAddress address of ERC20 token in which payment is being completed * @param tokenAmount amount of ether or ERC20 with which payment is being completed in * @param relayFee amount of ether to send to connext to sucesfully complete cross chain transfer * */ function sendUSDCToMerchant( string memory toChainName, uint256 usdcAmount, address merchantAddress, bool inEther, //**payment may be completed in any token with a liquidity pool on predetermined exchange */ //**if a non-USDC token is sent, it will be swapped to USDC */ //**if payment is being completed in ether, tokenAddress will be ignored */ address tokenAddress, uint256 tokenAmount, uint256 relayFee ) external payable { if (inEther == false) { // if payment is being completed in ERC20, transfer tokens to contract from user require( IERC20(tokenAddress).allowance(msg.sender, address(this)) >= tokenAmount, "User needs to increase allowance" ); IERC20(tokenAddress).transferFrom( msg.sender, address(this), tokenAmount ); } if (tokenAddress == USDC_ADDRESS) { // if token is USDC, bridge USDC outright without executing swap require( IERC20(USDC_ADDRESS).balanceOf(address(this)) >= usdcAmount, "Not enough USDC in contract" ); bridgeUSDCToMerchant( toChainName, merchantAddress, usdcAmount, msg.sender, relayFee ); emit USDCTransferToMerchantInitiated( merchantAddress, toChainName, msg.sender, usdcAmount ); } else { // if token is not USDC, execute swap and then execute transfer swapTokensForUSDC(inEther, tokenAddress, tokenAmount); require( IERC20(USDC_ADDRESS).balanceOf(address(this)) >= usdcAmount, "Not enough USDC in contract" ); bridgeUSDCToMerchant( toChainName, merchantAddress, usdcAmount, msg.sender, relayFee ); emit USDCTransferToMerchantInitiated( merchantAddress, toChainName, msg.sender, usdcAmount ); } } /** * @dev swaps tokens to USDC * @param inEther determines if token is ether or ERC20. If true, tokenAddress is ignored * @param tokenAddress address of token which will be swapped to USDC * @param tokenInAmount amount of tokens to swap to USDC */ function swapTokensForUSDC( /** identifies whether to swap ether => USDC or ERC20 => USDC */ bool inEther, /** set to blank if inEther is true */ address tokenAddress, uint256 tokenInAmount ) internal { require(tokenAddress != USDC_ADDRESS, "Cannot swap USDC => USDC"); // if token is ether, swap ether to usdc if (inEther) { // define path address[] memory path; path[0] = WETH_ADDRESS; path[1] = USDC_ADDRESS; // swap tokens DEX.swapExactETHForTokensSupportingFeeOnTransferTokens{ value: tokenInAmount }( // amount of USDC to be received after trade DEX.getAmountsOut(tokenInAmount, path)[1], path, // tokens will be sent to contract address address(this), block.timestamp + 60 ); } else { // approve tokens to DEX IERC20(tokenAddress).approve(DEX_ADDRESS, tokenInAmount); // if token is weth (or WXDAI, WMATIC, depends on chain) swap weth for usdc if (tokenAddress == WETH_ADDRESS) { address[] memory path; path[0] = WETH_ADDRESS; path[1] = USDC_ADDRESS; // execute swap DEX.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenInAmount, // get amount of USDC to be received after trade DEX.getAmountsOut(tokenInAmount, path)[1], path, address(this), block.timestamp + 60 ); // if token is not ether or weth, create ERC20 => WETH => USDC path and swap tokens } else { // define path address[] memory path; path[0] = tokenAddress; path[1] = WETH_ADDRESS; path[2] = USDC_ADDRESS; // execute swap DEX.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenInAmount, DEX.getAmountsOut(tokenInAmount, path)[2], path, address(this), block.timestamp + 60 ); } } } /** * @dev Transfers 'amountUSDC' USDC to 'merchantAddress' on 'chainName' through connext * @param toChainName name of chain on which USDC will be transferred to merchant. If 'toChainName' == 'thisChainName', this means that the current chain is the same chain on which merchant is accepting payment which means bridging is unnecessary * @param merchantAddress address where USDC will be transferred * @param amountUSDC amount of USDC to transfer * @param senderAddress address of sender of USDC * @param relayFee amount of ether to pay so that Connext sucesfully completes transfer */ function bridgeUSDCToMerchant( string memory toChainName, address merchantAddress, uint256 amountUSDC, address senderAddress, uint256 relayFee ) internal { // if tokens are being bridged to the current chain, transfer usdc without bridging if ( keccak256(abi.encode(thisChainName)) == keccak256(abi.encode(toChainName)) ) { IERC20(USDC_ADDRESS).transfer(merchantAddress, amountUSDC); emit USDCTransferToMerchantConfirmed( merchantAddress, toChainName, msg.sender, amountUSDC ); } else { // bridge tokens connext.xcall{value: relayFee}( chainNameToDomainId[toChainName], chainNameToContractAddress[toChainName], USDC_ADDRESS, msg.sender, amountUSDC, 300, abi.encode(merchantAddress, amountUSDC, senderAddress) ); } } // estimates tokens needed to swap to USDC and sucesfully execute crosschain connext transfer. accounts for 3% connext transfer slippage fee function estimateTokensNeeded( uint256 usdcAmount, address[] memory path ) public view returns (uint256) { uint256 tokenAmountIn = DEX.getAmountsIn( (usdcAmount * 103093) / 100000, path )[0]; return (tokenAmountIn * 10005) / 10000; } function xReceive( bytes32 _transferId, uint256 _amount, address _asset, address _originSender, uint32 _origin, bytes memory _callData ) external returns (bytes memory) { ( address merchantAddress, uint256 amountUSDC, address senderAddress ) = abi.decode(_callData, (address, uint256, address)); IERC20(USDC_ADDRESS).transfer(merchantAddress, amountUSDC); emit USDCTransferToMerchantConfirmed( merchantAddress, thisChainName, senderAddress, amountUSDC ); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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); /** * @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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // standard UniswapV2 style DEX interface IExchange { function getAmountsIn( uint256 amountOut, address[] memory path ) external view returns (uint256[] memory amounts); function getAmountsOut( uint256 amountIn, address[] memory path ) external view returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] memory path, address to, uint256 deadline ) external payable; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] memory path, address to, uint256 deadline ) external payable; function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] memory path, address to, uint256 deadline ) external; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] memory path, address to, uint256 deadline ) external; }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; import {ExecuteArgs, TransferInfo, DestinationTransferStatus} from "LibConnextStorage.sol"; import {TokenId} from "TokenId.sol"; interface IConnext { // ============ BRIDGE ============== function xcall( uint32 _destination, address _to, address _asset, address _delegate, uint256 _amount, uint256 _slippage, bytes calldata _callData ) external payable returns (bytes32); function xcallIntoLocal( uint32 _destination, address _to, address _asset, address _delegate, uint256 _amount, uint256 _slippage, bytes calldata _callData ) external payable returns (bytes32); function execute( ExecuteArgs calldata _args ) external returns (bytes32 transferId); function forceUpdateSlippage( TransferInfo calldata _params, uint256 _slippage ) external; function forceReceiveLocal(TransferInfo calldata _params) external; function bumpTransfer(bytes32 _transferId) external payable; function routedTransfers( bytes32 _transferId ) external view returns (address[] memory); function transferStatus( bytes32 _transferId ) external view returns (DestinationTransferStatus); function remote(uint32 _domain) external view returns (address); function domain() external view returns (uint256); function nonce() external view returns (uint256); function approvedSequencers( address _sequencer ) external view returns (bool); function xAppConnectionManager() external view returns (address); // ============ ROUTERS ============== function LIQUIDITY_FEE_NUMERATOR() external view returns (uint256); function LIQUIDITY_FEE_DENOMINATOR() external view returns (uint256); function getRouterApproval(address _router) external view returns (bool); function getRouterRecipient( address _router ) external view returns (address); function getRouterOwner(address _router) external view returns (address); function getProposedRouterOwner( address _router ) external view returns (address); function getProposedRouterOwnerTimestamp( address _router ) external view returns (uint256); function maxRoutersPerTransfer() external view returns (uint256); function routerBalances( address _router, address _asset ) external view returns (uint256); function getRouterApprovalForPortal( address _router ) external view returns (bool); function initializeRouter(address _owner, address _recipient) external; function setRouterRecipient(address _router, address _recipient) external; function proposeRouterOwner(address _router, address _proposed) external; function acceptProposedRouterOwner(address _router) external; function addRouterLiquidityFor( uint256 _amount, address _local, address _router ) external payable; function addRouterLiquidity( uint256 _amount, address _local ) external payable; function removeRouterLiquidityFor( TokenId memory _canonical, uint256 _amount, address payable _to, address _router ) external; function removeRouterLiquidity( TokenId memory _canonical, uint256 _amount, address payable _to ) external; }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; /** * @notice Enum representing status of destination transfer * @dev Status is only assigned on the destination domain, will always be "none" for the * origin domains * @return uint - Index of value in enum */ enum DestinationTransferStatus { None, // 0 Reconciled, // 1 Executed, // 2 Completed // 3 - executed + reconciled } /** * @notice These are the parameters that will remain constant between the * two chains. They are supplied on `xcall` and should be asserted on `execute` * @property to - The account that receives funds, in the event of a crosschain call, * will receive funds if the call fails. * * @param originDomain - The originating domain (i.e. where `xcall` is called) * @param destinationDomain - The final domain (i.e. where `execute` / `reconcile` are called)\ * @param canonicalDomain - The canonical domain of the asset you are bridging * @param to - The address you are sending funds (and potentially data) to * @param delegate - An address who can execute txs on behalf of `to`, in addition to allowing relayers * @param receiveLocal - If true, will use the local asset on the destination instead of adopted. * @param callData - The data to execute on the receiving chain. If no crosschain call is needed, then leave empty. * @param slippage - Slippage user is willing to accept from original amount in expressed in BPS (i.e. if * a user takes 1% slippage, this is expressed as 1_000) * @param originSender - The msg.sender of the xcall * @param bridgedAmt - The amount sent over the bridge (after potential AMM on xcall) * @param normalizedIn - The amount sent to `xcall`, normalized to 18 decimals * @param nonce - The nonce on the origin domain used to ensure the transferIds are unique * @param canonicalId - The unique identifier of the canonical token corresponding to bridge assets */ struct TransferInfo { uint32 originDomain; uint32 destinationDomain; uint32 canonicalDomain; address to; address delegate; bool receiveLocal; bytes callData; uint256 slippage; address originSender; uint256 bridgedAmt; uint256 normalizedIn; uint256 nonce; bytes32 canonicalId; } /** * @notice * @param params - The TransferInfo. These are consistent across sending and receiving chains. * @param routers - The routers who you are sending the funds on behalf of. * @param routerSignatures - Signatures belonging to the routers indicating permission to use funds * for the signed transfer ID. * @param sequencer - The sequencer who assigned the router path to this transfer. * @param sequencerSignature - Signature produced by the sequencer for path assignment accountability * for the path that was signed. */ struct ExecuteArgs { TransferInfo params; address[] routers; bytes[] routerSignatures; address sequencer; bytes sequencerSignature; }
// SPDX-License-Identifier: MIT OR Apache-2.0 pragma solidity ^0.8.0; // ============= Structs ============= // Tokens are identified by a TokenId: // domain - 4 byte chain ID of the chain from which the token originates // id - 32 byte identifier of the token address on the origin chain, in that chain's address format struct TokenId { uint32 domain; bytes32 id; }
{ "evmVersion": "istanbul", "optimizer": { "enabled": true, "runs": 200 }, "libraries": { "cryptopay.sol": {} }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"connextAddress","type":"address"},{"internalType":"address","name":"dexAddress","type":"address"},{"internalType":"address","name":"wethAddress","type":"address"},{"internalType":"address","name":"usdcAddress","type":"address"},{"internalType":"string","name":"_thisChainName","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_merchantAddress","type":"address"},{"indexed":true,"internalType":"string","name":"_toChainName","type":"string"},{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amountUSDC","type":"uint256"}],"name":"USDCTransferToMerchantConfirmed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_merchantAddress","type":"address"},{"indexed":true,"internalType":"string","name":"_toChainName","type":"string"},{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amountUSDC","type":"uint256"}],"name":"USDCTransferToMerchantInitiated","type":"event"},{"inputs":[],"name":"DEX","outputs":[{"internalType":"contract IExchange","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEX_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"connext","outputs":[{"internalType":"contract IConnext","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"usdcAmount","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"estimateTokensNeeded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"toChainName","type":"string"},{"internalType":"uint256","name":"usdcAmount","type":"uint256"},{"internalType":"address","name":"merchantAddress","type":"address"},{"internalType":"bool","name":"inEther","type":"bool"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"relayFee","type":"uint256"}],"name":"sendUSDCToMerchant","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"gnosisCA","type":"address"},{"internalType":"address","name":"polygonCA","type":"address"}],"name":"updateContractAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_transferId","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_asset","type":"address"},{"internalType":"address","name":"_originSender","type":"address"},{"internalType":"uint32","name":"_origin","type":"uint32"},{"internalType":"bytes","name":"_callData","type":"bytes"}],"name":"xReceive","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001ac138038062001ac1833981016040819052620000349162000162565b600080546001600160a01b038681166001600160a01b0319928316179092556001805486841690831617905560028054928516929091169190911790556040805165676e6f73697360d01b81526005600682018190528251918290036026018220805462676e6f63ffffffff1991821617909155663837b63cb3b7b760c91b835260078301919091529151908190036027019020805463706f6c7992169190911790556008620000e5828262000311565b5050600054600380546001600160a01b03199081166001600160a01b03938416179091556004805496909216958116959095179055505060078054909216331790915550620003dd565b80516001600160a01b03811681146200014757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156200017b57600080fd5b62000186866200012f565b94506020620001978188016200012f565b9450620001a7604088016200012f565b9350620001b7606088016200012f565b60808801519093506001600160401b0380821115620001d557600080fd5b818901915089601f830112620001ea57600080fd5b815181811115620001ff57620001ff6200014c565b604051601f8201601f19908116603f011681019083821181831017156200022a576200022a6200014c565b816040528281528c868487010111156200024357600080fd5b600093505b8284101562000267578484018601518185018701529285019262000248565b60008684830101528096505050505050509295509295909350565b600181811c908216806200029757607f821691505b602082108103620002b857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200030c57600081815260208120601f850160051c81016020861015620002e75750805b601f850160051c820191505b818110156200030857828155600101620002f3565b5050505b505050565b81516001600160401b038111156200032d576200032d6200014c565b62000345816200033e845462000282565b84620002be565b602080601f8311600181146200037d5760008415620003645750858301515b600019600386901b1c1916600185901b17855562000308565b600085815260208120601f198616915b82811015620003ae578886015182559484019460019091019084016200038d565b5085821015620003cd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6116d480620003ed6000396000f3fe6080604052600436106100865760003560e01c806380935aa91161005957806380935aa91461012b578063a7cb399d1461014b578063bb09d9b71461016b578063de4b05481461018b578063fd614f41146101ab57600080fd5b8063040141e51461008b5780631ff6dc5b146100c857806337e2d0d9146100ea5780633d690a3514610118575b600080fd5b34801561009757600080fd5b506001546100ab906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100d457600080fd5b506100e86100e3366004610f2a565b6101d8565b005b3480156100f657600080fd5b5061010a610105366004610fce565b610269565b6040519081526020016100bf565b6100e86101263660046110df565b61033e565b34801561013757600080fd5b506003546100ab906001600160a01b031681565b34801561015757600080fd5b506000546100ab906001600160a01b031681565b34801561017757600080fd5b506002546100ab906001600160a01b031681565b34801561019757600080fd5b506004546100ab906001600160a01b031681565b3480156101b757600080fd5b506101cb6101c6366004611186565b6106f8565b6040516100bf919061127a565b6007546001600160a01b031633146101ef57600080fd5b81600660405161020b9065676e6f73697360d01b815260060190565b9081526040805191829003602001822080546001600160a01b039485166001600160a01b031991821617909155663837b63cb3b7b760c91b835260066007840152905191829003602701909120805493909216921691909117905550565b60035460009081906001600160a01b0316631f00ca74620186a061029087620192b56112aa565b61029a91906112c1565b856040518363ffffffff1660e01b81526004016102b8929190611327565b600060405180830381865afa1580156102d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102fd9190810190611348565b60008151811061030f5761030f6113d9565b602002602001015190506127108161271561032a91906112aa565b61033491906112c1565b9150505b92915050565b83151560000361048457604051636eb1769f60e11b815233600482015230602482015282906001600160a01b0385169063dd62ed3e90604401602060405180830381865afa158015610394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b891906113ef565b101561040b5760405162461bcd60e51b815260206004820181905260248201527f55736572206e6565647320746f20696e63726561736520616c6c6f77616e636560448201526064015b60405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038416906323b872dd906064016020604051808303816000875af115801561045e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104829190611408565b505b6002546001600160a01b03908116908416036105c1576002546040516370a0823160e01b815230600482015287916001600160a01b0316906370a0823190602401602060405180830381865afa1580156104e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050691906113ef565b10156105545760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f756768205553444320696e20636f6e747261637400000000006044820152606401610402565b6105618786883385610806565b6040513390610571908990611425565b6040518091039020866001600160a01b03167f2e15ce660666bc326ef5f4ae646953c81f86895a56fbb2f0d7ceb0d4a836bb29896040516105b491815260200190565b60405180910390a46106ef565b6105cc848484610a43565b6002546040516370a0823160e01b815230600482015287916001600160a01b0316906370a0823190602401602060405180830381865afa158015610614573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063891906113ef565b10156106865760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f756768205553444320696e20636f6e747261637400000000006044820152606401610402565b6106938786883385610806565b60405133906106a3908990611425565b6040518091039020866001600160a01b03167f2e15ce660666bc326ef5f4ae646953c81f86895a56fbb2f0d7ceb0d4a836bb29896040516106e691815260200190565b60405180910390a45b50505050505050565b60606000806000848060200190518101906107139190611441565b60025460405163a9059cbb60e01b81526001600160a01b03808616600483015260248201859052949750929550909350919091169063a9059cbb906044016020604051808303816000875af1158015610770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107949190611408565b50806001600160a01b031660086040516107ae91906114be565b6040518091039020846001600160a01b03167fe0fe148f01d667248c68d236a9e286515cc7f70c66b7eb0f94c2fe1243a7a465856040516107f191815260200190565b60405180910390a45050509695505050505050565b84604051602001610817919061127a565b60405160208183030381529060405280519060200120600860405160200161083f9190611534565b60405160208183030381529060405280519060200120036109325760025460405163a9059cbb60e01b81526001600160a01b038681166004830152602482018690529091169063a9059cbb906044016020604051808303816000875af11580156108ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d19190611408565b5060405133906108e2908790611425565b6040518091039020856001600160a01b03167fe0fe148f01d667248c68d236a9e286515cc7f70c66b7eb0f94c2fe1243a7a4658660405161092591815260200190565b60405180910390a4610a3c565b6004546040516001600160a01b0390911690638aac16ba90839060059061095a908a90611425565b9081526040519081900360200181205463ffffffff169060069061097f908b90611425565b9081526040805160209281900383018120546002546001600160a01b038d8116958401959095529282018b905289841660608301528316929091169033908a9061012c906080016040516020818303038152906040526040518963ffffffff1660e01b81526004016109f797969594939291906115bf565b60206040518083038185885af1158015610a15573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a3a91906113ef565b505b5050505050565b6002546001600160a01b0390811690831603610aa15760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420737761702055534443203d3e205553444300000000000000006044820152606401610402565b8215610c0a576001546060805190916001600160a01b0316908290600090610acb57610acb6113d9565b6001600160a01b039283166020918202929092010152600254825191169082906001908110610afc57610afc6113d9565b6001600160a01b03928316602091820292909201015260035460405163d06ca61f60e01b815291169063b6f9de95908490839063d06ca61f90610b459084908890600401611327565b600060405180830381865afa158015610b62573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b8a9190810190611348565b600181518110610b9c57610b9c6113d9565b6020026020010151843042603c610bb3919061161a565b6040518663ffffffff1660e01b8152600401610bd2949392919061162d565b6000604051808303818588803b158015610beb57600080fd5b505af1158015610bff573d6000803e3d6000fd5b505050505050505050565b60005460405163095ea7b360e01b81526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015610c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c819190611408565b506001546001600160a01b0390811690831603610dfc576001546060805190916001600160a01b0316908290600090610cbc57610cbc6113d9565b6001600160a01b039283166020918202929092010152600254825191169082906001908110610ced57610ced6113d9565b6001600160a01b03928316602091820292909201015260035460405163d06ca61f60e01b8152911690635c11d795908490839063d06ca61f90610d369084908890600401611327565b600060405180830381865afa158015610d53573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d7b9190810190611348565b600181518110610d8d57610d8d6113d9565b6020026020010151843042603c610da4919061161a565b6040518663ffffffff1660e01b8152600401610dc4959493929190611662565b600060405180830381600087803b158015610dde57600080fd5b505af1158015610df2573d6000803e3d6000fd5b5050505050505050565b60608281600081518110610e1257610e126113d9565b6001600160a01b0392831660209182029290920101526001805483519216918391908110610e4257610e426113d9565b6001600160a01b0392831660209182029290920101526002805483519216918391908110610e7257610e726113d9565b6001600160a01b03928316602091820292909201015260035460405163d06ca61f60e01b8152911690635c11d795908490839063d06ca61f90610ebb9084908890600401611327565b600060405180830381865afa158015610ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f009190810190611348565b600281518110610d8d57610d8d6113d9565b6001600160a01b0381168114610f2757600080fd5b50565b60008060408385031215610f3d57600080fd5b8235610f4881610f12565b91506020830135610f5881610f12565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610fa257610fa2610f63565b604052919050565b600067ffffffffffffffff821115610fc457610fc4610f63565b5060051b60200190565b60008060408385031215610fe157600080fd5b8235915060208084013567ffffffffffffffff81111561100057600080fd5b8401601f8101861361101157600080fd5b803561102461101f82610faa565b610f79565b81815260059190911b8201830190838101908883111561104357600080fd5b928401925b8284101561106a57833561105b81610f12565b82529284019290840190611048565b80955050505050509250929050565b600067ffffffffffffffff83111561109357611093610f63565b6110a6601f8401601f1916602001610f79565b90508281528383830111156110ba57600080fd5b828260208301376000602084830101529392505050565b8015158114610f2757600080fd5b600080600080600080600060e0888a0312156110fa57600080fd5b873567ffffffffffffffff81111561111157600080fd5b8801601f81018a1361112257600080fd5b6111318a823560208401611079565b97505060208801359550604088013561114981610f12565b94506060880135611159816110d1565b9350608088013561116981610f12565b9699959850939692959460a0840135945060c09093013592915050565b60008060008060008060c0878903121561119f57600080fd5b863595506020870135945060408701356111b881610f12565b935060608701356111c881610f12565b9250608087013563ffffffff811681146111e157600080fd5b915060a087013567ffffffffffffffff8111156111fd57600080fd5b8701601f8101891361120e57600080fd5b61121d89823560208401611079565b9150509295509295509295565b60005b8381101561124557818101518382015260200161122d565b50506000910152565b6000815180845261126681602086016020860161122a565b601f01601f19169290920160200192915050565b60208152600061128d602083018461124e565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761033857610338611294565b6000826112de57634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b8381101561131c5781516001600160a01b0316875295820195908201906001016112f7565b509495945050505050565b82815260406020820152600061134060408301846112e3565b949350505050565b6000602080838503121561135b57600080fd5b825167ffffffffffffffff81111561137257600080fd5b8301601f8101851361138357600080fd5b805161139161101f82610faa565b81815260059190911b820183019083810190878311156113b057600080fd5b928401925b828410156113ce578351825292840192908401906113b5565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561140157600080fd5b5051919050565b60006020828403121561141a57600080fd5b815161128d816110d1565b6000825161143781846020870161122a565b9190910192915050565b60008060006060848603121561145657600080fd5b835161146181610f12565b60208501516040860151919450925061147981610f12565b809150509250925092565b600181811c9082168061149857607f821691505b6020821081036114b857634e487b7160e01b600052602260045260246000fd5b50919050565b60008083546114cc81611484565b600182811680156114e457600181146114f957611528565b60ff1984168752821515830287019450611528565b8760005260208060002060005b8581101561151f5781548a820152908401908201611506565b50505082870194505b50929695505050505050565b600060208083526000845461154881611484565b808487015260406001808416600081146115695760018114611583576115b1565b60ff1985168984015283151560051b8901830195506115b1565b896000528660002060005b858110156115a95781548b820186015290830190880161158e565b8a0184019650505b509398975050505050505050565b63ffffffff881681526001600160a01b0387811660208301528681166040830152851660608201526080810184905260a0810183905260e060c0820181905260009061160d9083018461124e565b9998505050505050505050565b8082018082111561033857610338611294565b84815260806020820152600061164660808301866112e3565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a06040820152600061168160a08301866112e3565b6001600160a01b039490941660608301525060800152939250505056fea2646970667358221220c0e62ea6e9d4ee3a1e72ee8acb2258f7f33e9597049784c6e34322925290658d64736f6c6343000811003300000000000000000000000011984dc4465481512eb5b777e44061c158cf22590000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b479975060000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf12700000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000007706f6c79676f6e00000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100865760003560e01c806380935aa91161005957806380935aa91461012b578063a7cb399d1461014b578063bb09d9b71461016b578063de4b05481461018b578063fd614f41146101ab57600080fd5b8063040141e51461008b5780631ff6dc5b146100c857806337e2d0d9146100ea5780633d690a3514610118575b600080fd5b34801561009757600080fd5b506001546100ab906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100d457600080fd5b506100e86100e3366004610f2a565b6101d8565b005b3480156100f657600080fd5b5061010a610105366004610fce565b610269565b6040519081526020016100bf565b6100e86101263660046110df565b61033e565b34801561013757600080fd5b506003546100ab906001600160a01b031681565b34801561015757600080fd5b506000546100ab906001600160a01b031681565b34801561017757600080fd5b506002546100ab906001600160a01b031681565b34801561019757600080fd5b506004546100ab906001600160a01b031681565b3480156101b757600080fd5b506101cb6101c6366004611186565b6106f8565b6040516100bf919061127a565b6007546001600160a01b031633146101ef57600080fd5b81600660405161020b9065676e6f73697360d01b815260060190565b9081526040805191829003602001822080546001600160a01b039485166001600160a01b031991821617909155663837b63cb3b7b760c91b835260066007840152905191829003602701909120805493909216921691909117905550565b60035460009081906001600160a01b0316631f00ca74620186a061029087620192b56112aa565b61029a91906112c1565b856040518363ffffffff1660e01b81526004016102b8929190611327565b600060405180830381865afa1580156102d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102fd9190810190611348565b60008151811061030f5761030f6113d9565b602002602001015190506127108161271561032a91906112aa565b61033491906112c1565b9150505b92915050565b83151560000361048457604051636eb1769f60e11b815233600482015230602482015282906001600160a01b0385169063dd62ed3e90604401602060405180830381865afa158015610394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b891906113ef565b101561040b5760405162461bcd60e51b815260206004820181905260248201527f55736572206e6565647320746f20696e63726561736520616c6c6f77616e636560448201526064015b60405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b038416906323b872dd906064016020604051808303816000875af115801561045e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104829190611408565b505b6002546001600160a01b03908116908416036105c1576002546040516370a0823160e01b815230600482015287916001600160a01b0316906370a0823190602401602060405180830381865afa1580156104e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050691906113ef565b10156105545760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f756768205553444320696e20636f6e747261637400000000006044820152606401610402565b6105618786883385610806565b6040513390610571908990611425565b6040518091039020866001600160a01b03167f2e15ce660666bc326ef5f4ae646953c81f86895a56fbb2f0d7ceb0d4a836bb29896040516105b491815260200190565b60405180910390a46106ef565b6105cc848484610a43565b6002546040516370a0823160e01b815230600482015287916001600160a01b0316906370a0823190602401602060405180830381865afa158015610614573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063891906113ef565b10156106865760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f756768205553444320696e20636f6e747261637400000000006044820152606401610402565b6106938786883385610806565b60405133906106a3908990611425565b6040518091039020866001600160a01b03167f2e15ce660666bc326ef5f4ae646953c81f86895a56fbb2f0d7ceb0d4a836bb29896040516106e691815260200190565b60405180910390a45b50505050505050565b60606000806000848060200190518101906107139190611441565b60025460405163a9059cbb60e01b81526001600160a01b03808616600483015260248201859052949750929550909350919091169063a9059cbb906044016020604051808303816000875af1158015610770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107949190611408565b50806001600160a01b031660086040516107ae91906114be565b6040518091039020846001600160a01b03167fe0fe148f01d667248c68d236a9e286515cc7f70c66b7eb0f94c2fe1243a7a465856040516107f191815260200190565b60405180910390a45050509695505050505050565b84604051602001610817919061127a565b60405160208183030381529060405280519060200120600860405160200161083f9190611534565b60405160208183030381529060405280519060200120036109325760025460405163a9059cbb60e01b81526001600160a01b038681166004830152602482018690529091169063a9059cbb906044016020604051808303816000875af11580156108ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d19190611408565b5060405133906108e2908790611425565b6040518091039020856001600160a01b03167fe0fe148f01d667248c68d236a9e286515cc7f70c66b7eb0f94c2fe1243a7a4658660405161092591815260200190565b60405180910390a4610a3c565b6004546040516001600160a01b0390911690638aac16ba90839060059061095a908a90611425565b9081526040519081900360200181205463ffffffff169060069061097f908b90611425565b9081526040805160209281900383018120546002546001600160a01b038d8116958401959095529282018b905289841660608301528316929091169033908a9061012c906080016040516020818303038152906040526040518963ffffffff1660e01b81526004016109f797969594939291906115bf565b60206040518083038185885af1158015610a15573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a3a91906113ef565b505b5050505050565b6002546001600160a01b0390811690831603610aa15760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420737761702055534443203d3e205553444300000000000000006044820152606401610402565b8215610c0a576001546060805190916001600160a01b0316908290600090610acb57610acb6113d9565b6001600160a01b039283166020918202929092010152600254825191169082906001908110610afc57610afc6113d9565b6001600160a01b03928316602091820292909201015260035460405163d06ca61f60e01b815291169063b6f9de95908490839063d06ca61f90610b459084908890600401611327565b600060405180830381865afa158015610b62573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b8a9190810190611348565b600181518110610b9c57610b9c6113d9565b6020026020010151843042603c610bb3919061161a565b6040518663ffffffff1660e01b8152600401610bd2949392919061162d565b6000604051808303818588803b158015610beb57600080fd5b505af1158015610bff573d6000803e3d6000fd5b505050505050505050565b60005460405163095ea7b360e01b81526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015610c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c819190611408565b506001546001600160a01b0390811690831603610dfc576001546060805190916001600160a01b0316908290600090610cbc57610cbc6113d9565b6001600160a01b039283166020918202929092010152600254825191169082906001908110610ced57610ced6113d9565b6001600160a01b03928316602091820292909201015260035460405163d06ca61f60e01b8152911690635c11d795908490839063d06ca61f90610d369084908890600401611327565b600060405180830381865afa158015610d53573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d7b9190810190611348565b600181518110610d8d57610d8d6113d9565b6020026020010151843042603c610da4919061161a565b6040518663ffffffff1660e01b8152600401610dc4959493929190611662565b600060405180830381600087803b158015610dde57600080fd5b505af1158015610df2573d6000803e3d6000fd5b5050505050505050565b60608281600081518110610e1257610e126113d9565b6001600160a01b0392831660209182029290920101526001805483519216918391908110610e4257610e426113d9565b6001600160a01b0392831660209182029290920101526002805483519216918391908110610e7257610e726113d9565b6001600160a01b03928316602091820292909201015260035460405163d06ca61f60e01b8152911690635c11d795908490839063d06ca61f90610ebb9084908890600401611327565b600060405180830381865afa158015610ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f009190810190611348565b600281518110610d8d57610d8d6113d9565b6001600160a01b0381168114610f2757600080fd5b50565b60008060408385031215610f3d57600080fd5b8235610f4881610f12565b91506020830135610f5881610f12565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610fa257610fa2610f63565b604052919050565b600067ffffffffffffffff821115610fc457610fc4610f63565b5060051b60200190565b60008060408385031215610fe157600080fd5b8235915060208084013567ffffffffffffffff81111561100057600080fd5b8401601f8101861361101157600080fd5b803561102461101f82610faa565b610f79565b81815260059190911b8201830190838101908883111561104357600080fd5b928401925b8284101561106a57833561105b81610f12565b82529284019290840190611048565b80955050505050509250929050565b600067ffffffffffffffff83111561109357611093610f63565b6110a6601f8401601f1916602001610f79565b90508281528383830111156110ba57600080fd5b828260208301376000602084830101529392505050565b8015158114610f2757600080fd5b600080600080600080600060e0888a0312156110fa57600080fd5b873567ffffffffffffffff81111561111157600080fd5b8801601f81018a1361112257600080fd5b6111318a823560208401611079565b97505060208801359550604088013561114981610f12565b94506060880135611159816110d1565b9350608088013561116981610f12565b9699959850939692959460a0840135945060c09093013592915050565b60008060008060008060c0878903121561119f57600080fd5b863595506020870135945060408701356111b881610f12565b935060608701356111c881610f12565b9250608087013563ffffffff811681146111e157600080fd5b915060a087013567ffffffffffffffff8111156111fd57600080fd5b8701601f8101891361120e57600080fd5b61121d89823560208401611079565b9150509295509295509295565b60005b8381101561124557818101518382015260200161122d565b50506000910152565b6000815180845261126681602086016020860161122a565b601f01601f19169290920160200192915050565b60208152600061128d602083018461124e565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761033857610338611294565b6000826112de57634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b8381101561131c5781516001600160a01b0316875295820195908201906001016112f7565b509495945050505050565b82815260406020820152600061134060408301846112e3565b949350505050565b6000602080838503121561135b57600080fd5b825167ffffffffffffffff81111561137257600080fd5b8301601f8101851361138357600080fd5b805161139161101f82610faa565b81815260059190911b820183019083810190878311156113b057600080fd5b928401925b828410156113ce578351825292840192908401906113b5565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561140157600080fd5b5051919050565b60006020828403121561141a57600080fd5b815161128d816110d1565b6000825161143781846020870161122a565b9190910192915050565b60008060006060848603121561145657600080fd5b835161146181610f12565b60208501516040860151919450925061147981610f12565b809150509250925092565b600181811c9082168061149857607f821691505b6020821081036114b857634e487b7160e01b600052602260045260246000fd5b50919050565b60008083546114cc81611484565b600182811680156114e457600181146114f957611528565b60ff1984168752821515830287019450611528565b8760005260208060002060005b8581101561151f5781548a820152908401908201611506565b50505082870194505b50929695505050505050565b600060208083526000845461154881611484565b808487015260406001808416600081146115695760018114611583576115b1565b60ff1985168984015283151560051b8901830195506115b1565b896000528660002060005b858110156115a95781548b820186015290830190880161158e565b8a0184019650505b509398975050505050505050565b63ffffffff881681526001600160a01b0387811660208301528681166040830152851660608201526080810184905260a0810183905260e060c0820181905260009061160d9083018461124e565b9998505050505050505050565b8082018082111561033857610338611294565b84815260806020820152600061164660808301866112e3565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a06040820152600061168160a08301866112e3565b6001600160a01b039490941660608301525060800152939250505056fea2646970667358221220c0e62ea6e9d4ee3a1e72ee8acb2258f7f33e9597049784c6e34322925290658d64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000011984dc4465481512eb5b777e44061c158cf22590000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b479975060000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf12700000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000007706f6c79676f6e00000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : connextAddress (address): 0x11984dc4465481512eb5b777E44061C158CF2259
Arg [1] : dexAddress (address): 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
Arg [2] : wethAddress (address): 0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270
Arg [3] : usdcAddress (address): 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
Arg [4] : _thisChainName (string): polygon
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 00000000000000000000000011984dc4465481512eb5b777e44061c158cf2259
Arg [1] : 0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506
Arg [2] : 0000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf1270
Arg [3] : 0000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa84174
Arg [4] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [6] : 706f6c79676f6e00000000000000000000000000000000000000000000000000
Loading...
Loading
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.