Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 28 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Pay ERC20Benefic... | 19437023 | 111 days ago | IN | 0 ETH | 0.00194716 | ||||
Pay ERC20Benefic... | 19237153 | 139 days ago | IN | 0 ETH | 0.00132524 | ||||
Pay ETH Benefici... | 19082423 | 161 days ago | IN | 0 ETH | 0.00046341 | ||||
Pay ERC20Benefic... | 19038314 | 167 days ago | IN | 0 ETH | 0.00153376 | ||||
Pay ERC20Benefic... | 18838724 | 195 days ago | IN | 0 ETH | 0.00144549 | ||||
Pay ERC20Benefic... | 18641957 | 223 days ago | IN | 0 ETH | 0.00166897 | ||||
Pay ERC20Benefic... | 18460284 | 248 days ago | IN | 0 ETH | 0.0005625 | ||||
Pay ERC20Benefic... | 18253007 | 277 days ago | IN | 0 ETH | 0.00030713 | ||||
Pay ETH Benefici... | 18086240 | 301 days ago | IN | 0 ETH | 0.00174267 | ||||
Pay ERC20Benefic... | 18084297 | 301 days ago | IN | 0 ETH | 0.0004721 | ||||
Pay ERC20Benefic... | 18035366 | 308 days ago | IN | 0 ETH | 0.00104 | ||||
Pay ERC20Benefic... | 17893497 | 328 days ago | IN | 0 ETH | 0.00076141 | ||||
Pay ETH Benefici... | 17882382 | 329 days ago | IN | 0 ETH | 0.00044981 | ||||
Pay ETH Benefici... | 17881978 | 329 days ago | IN | 0 ETH | 0.00060409 | ||||
Pay ERC20Benefic... | 17837319 | 336 days ago | IN | 0 ETH | 0.00077848 | ||||
Pay ERC20Benefic... | 17634768 | 364 days ago | IN | 0 ETH | 0.00080022 | ||||
Pay ERC20Benefic... | 17435952 | 392 days ago | IN | 0 ETH | 0.00094793 | ||||
Pay ETH Benefici... | 17319451 | 408 days ago | IN | 0 ETH | 0.00160321 | ||||
Pay ERC20Benefic... | 17246823 | 419 days ago | IN | 0 ETH | 0.0019205 | ||||
Pay ERC20Benefic... | 17040365 | 448 days ago | IN | 0 ETH | 0.00191357 | ||||
Pay ETH Benefici... | 16958899 | 459 days ago | IN | 0 ETH | 0.00066413 | ||||
Pay ERC20Benefic... | 16844253 | 475 days ago | IN | 0 ETH | 0.00058054 | ||||
Pay ERC20Benefic... | 16652661 | 502 days ago | IN | 0 ETH | 0.00124051 | ||||
Pay ETH Benefici... | 16530428 | 520 days ago | IN | 0 ETH | 0.00074068 | ||||
Pay ERC20Benefic... | 16430036 | 534 days ago | IN | 0 ETH | 0.00169536 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
19082423 | 161 days ago | 86.416657 ETH | ||||
18867916 | 191 days ago | 0.50425049 ETH | ||||
18867915 | 191 days ago | 0.46085894 ETH | ||||
18867914 | 191 days ago | 0.46501936 ETH | ||||
18867913 | 191 days ago | 0.03989915 ETH | ||||
18867912 | 191 days ago | 0.48378568 ETH | ||||
18867911 | 191 days ago | 0.5584688 ETH | ||||
18867910 | 191 days ago | 0.42025252 ETH | ||||
18867909 | 191 days ago | 0.50814822 ETH | ||||
18867908 | 191 days ago | 0.55901156 ETH | ||||
18867907 | 191 days ago | 0.46370383 ETH | ||||
18867906 | 191 days ago | 0.44100123 ETH | ||||
18867905 | 191 days ago | 0.46173691 ETH | ||||
18867904 | 191 days ago | 0.52101331 ETH | ||||
18867903 | 191 days ago | 0.46615521 ETH | ||||
18867902 | 191 days ago | 0.49966339 ETH | ||||
18867900 | 191 days ago | 0.50243521 ETH | ||||
18867899 | 191 days ago | 0.52929593 ETH | ||||
18867898 | 191 days ago | 0.47965606 ETH | ||||
18867897 | 191 days ago | 0.43950945 ETH | ||||
18867896 | 191 days ago | 0.46292306 ETH | ||||
18867895 | 191 days ago | 0.45878691 ETH | ||||
18867894 | 191 days ago | 0.45985935 ETH | ||||
18867893 | 191 days ago | 0.55128173 ETH | ||||
18867892 | 191 days ago | 0.48639352 ETH |
Loading...
Loading
Contract Name:
TokenTypeSplitter
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.13; import {ERC20} from './ERC20.sol'; import {SafeTransferLib} from "./SafeTransferLib.sol"; contract TokenTypeSplitter { /// ------------------------------------------------------------------- /// libraries /// ------------------------------------------------------------------- using SafeTransferLib for address; using SafeTransferLib for ERC20; /// ------------------------------------------------------------------- /// storage /// ------------------------------------------------------------------- /// Address to receive funds eth funds address public immutable ethBeneficiary; /// Address to receive funds eth funds address public immutable erc20Beneficiary; /// ------------------------------------------------------------------- /// constructor /// ------------------------------------------------------------------- constructor(address _ethBeneficiary, address _erc20Beneficiary) { ethBeneficiary = _ethBeneficiary; erc20Beneficiary = _erc20Beneficiary; } /// ------------------------------------------------------------------- /// functions /// ------------------------------------------------------------------- /// ------------------------------------------------------------------- /// functions - public & external /// ------------------------------------------------------------------- /// @notice receive ETH receive() external payable {} /// pay eth in contract to `ethBeneficiary` function payETHBeneficiary() external { ethBeneficiary.safeTransferETH(address(this).balance); } /// pay erc20 `token` in contract to `ethBeneficiary` function payERC20Beneficiary(ERC20 token) external { token.safeTransfer(erc20Beneficiary, token.balanceOf(address(this))); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Modern and gas efficient ERC20 + EIP-2612 implementation. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol) /// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol) /// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it. abstract contract ERC20 { /*/////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); /*/////////////////////////////////////////////////////////////// METADATA STORAGE //////////////////////////////////////////////////////////////*/ string public name; string public symbol; uint8 public immutable decimals; /*/////////////////////////////////////////////////////////////// ERC20 STORAGE //////////////////////////////////////////////////////////////*/ uint256 public totalSupply; mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; /*/////////////////////////////////////////////////////////////// EIP-2612 STORAGE //////////////////////////////////////////////////////////////*/ bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); uint256 internal immutable INITIAL_CHAIN_ID; bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR; mapping(address => uint256) public nonces; /*/////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor( string memory _name, string memory _symbol, uint8 _decimals ) { name = _name; symbol = _symbol; decimals = _decimals; INITIAL_CHAIN_ID = block.chainid; INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator(); } /*/////////////////////////////////////////////////////////////// ERC20 LOGIC //////////////////////////////////////////////////////////////*/ function approve(address spender, uint256 amount) public virtual returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address to, uint256 amount) public virtual returns (bool) { balanceOf[msg.sender] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(msg.sender, to, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual returns (bool) { uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals. if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount; balanceOf[from] -= amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(from, to, amount); return true; } /*/////////////////////////////////////////////////////////////// EIP-2612 LOGIC //////////////////////////////////////////////////////////////*/ function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) public virtual { require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED"); // Unchecked because the only math done is incrementing // the owner's nonce which cannot realistically overflow. unchecked { bytes32 digest = keccak256( abi.encodePacked( "\x19\x01", DOMAIN_SEPARATOR(), keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)) ) ); address recoveredAddress = ecrecover(digest, v, r, s); require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER"); allowance[recoveredAddress][spender] = value; } emit Approval(owner, spender, value); } function DOMAIN_SEPARATOR() public view virtual returns (bytes32) { return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator(); } function computeDomainSeparator() internal view virtual returns (bytes32) { return keccak256( abi.encode( keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"), keccak256(bytes(name)), keccak256("1"), block.chainid, address(this) ) ); } /*/////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint(address to, uint256 amount) internal virtual { totalSupply += amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { balanceOf[to] += amount; } emit Transfer(address(0), to, amount); } function _burn(address from, uint256 amount) internal virtual { balanceOf[from] -= amount; // Cannot underflow because a user's balance // will never be larger than the total supply. unchecked { totalSupply -= amount; } emit Transfer(from, address(0), amount); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; import {ERC20} from "./ERC20.sol"; /// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol) /// @author Modified from Gnosis (https://github.com/gnosis/gp-v2-contracts/blob/main/src/contracts/libraries/GPv2SafeERC20.sol) /// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer. library SafeTransferLib { /*/////////////////////////////////////////////////////////////// ETH OPERATIONS //////////////////////////////////////////////////////////////*/ function safeTransferETH(address to, uint256 amount) internal { bool callStatus; assembly { // Transfer the ETH and store if it succeeded or not. callStatus := call(gas(), to, amount, 0, 0, 0, 0) } require(callStatus, "ETH_TRANSFER_FAILED"); } /*/////////////////////////////////////////////////////////////// ERC20 OPERATIONS //////////////////////////////////////////////////////////////*/ function safeTransferFrom( ERC20 token, address from, address to, uint256 amount ) internal { bool callStatus; assembly { // Get a pointer to some free memory. let freeMemoryPointer := mload(0x40) // Write the abi-encoded calldata to memory piece by piece: mstore(freeMemoryPointer, 0x23b872dd00000000000000000000000000000000000000000000000000000000) // Begin with the function selector. mstore(add(freeMemoryPointer, 4), and(from, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "from" argument. mstore(add(freeMemoryPointer, 36), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "to" argument. mstore(add(freeMemoryPointer, 68), amount) // Finally append the "amount" argument. No mask as it's a full 32 byte value. // Call the token and store if it succeeded or not. // We use 100 because the calldata length is 4 + 32 * 3. callStatus := call(gas(), token, 0, freeMemoryPointer, 100, 0, 0) } require(didLastOptionalReturnCallSucceed(callStatus), "TRANSFER_FROM_FAILED"); } function safeTransfer( ERC20 token, address to, uint256 amount ) internal { bool callStatus; assembly { // Get a pointer to some free memory. let freeMemoryPointer := mload(0x40) // Write the abi-encoded calldata to memory piece by piece: mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000) // Begin with the function selector. mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "to" argument. mstore(add(freeMemoryPointer, 36), amount) // Finally append the "amount" argument. No mask as it's a full 32 byte value. // Call the token and store if it succeeded or not. // We use 68 because the calldata length is 4 + 32 * 2. callStatus := call(gas(), token, 0, freeMemoryPointer, 68, 0, 0) } require(didLastOptionalReturnCallSucceed(callStatus), "TRANSFER_FAILED"); } function safeApprove( ERC20 token, address to, uint256 amount ) internal { bool callStatus; assembly { // Get a pointer to some free memory. let freeMemoryPointer := mload(0x40) // Write the abi-encoded calldata to memory piece by piece: mstore(freeMemoryPointer, 0x095ea7b300000000000000000000000000000000000000000000000000000000) // Begin with the function selector. mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "to" argument. mstore(add(freeMemoryPointer, 36), amount) // Finally append the "amount" argument. No mask as it's a full 32 byte value. // Call the token and store if it succeeded or not. // We use 68 because the calldata length is 4 + 32 * 2. callStatus := call(gas(), token, 0, freeMemoryPointer, 68, 0, 0) } require(didLastOptionalReturnCallSucceed(callStatus), "APPROVE_FAILED"); } /*/////////////////////////////////////////////////////////////// INTERNAL HELPER LOGIC //////////////////////////////////////////////////////////////*/ function didLastOptionalReturnCallSucceed(bool callStatus) private pure returns (bool success) { assembly { // Get how many bytes the call returned. let returnDataSize := returndatasize() // If the call reverted: if iszero(callStatus) { // Copy the revert message into memory. returndatacopy(0, 0, returnDataSize) // Revert with the same message. revert(0, returnDataSize) } switch returnDataSize case 32 { // Copy the return data into memory. returndatacopy(0, 0, returnDataSize) // Set success to whether it returned true. success := iszero(iszero(mload(0))) } case 0 { // There was no return data. success := 1 } default { // It returned some malformed input. success := 0 } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_ethBeneficiary","type":"address"},{"internalType":"address","name":"_erc20Beneficiary","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"erc20Beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethBeneficiary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"token","type":"address"}],"name":"payERC20Beneficiary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"payETHBeneficiary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405234801561001057600080fd5b5060405161074538038061074583398181016040528101906100329190610104565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250505050610144565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100d1826100a6565b9050919050565b6100e1816100c6565b81146100ec57600080fd5b50565b6000815190506100fe816100d8565b92915050565b6000806040838503121561011b5761011a6100a1565b5b6000610129858286016100ef565b925050602061013a858286016100ef565b9150509250929050565b60805160a0516105cf6101766000396000818160ea01526101d20152600081816101ae01526101fa01526105cf6000f3fe6080604052600436106100435760003560e01c8063289af1461461004f5780634cfe72e61461007857806372e5ab02146100a3578063b8b248f9146100ce5761004a565b3661004a57005b600080fd5b34801561005b57600080fd5b50610076600480360381019061007191906103f6565b6100e5565b005b34801561008457600080fd5b5061008d6101ac565b60405161009a9190610432565b60405180910390f35b3480156100af57600080fd5b506100b86101d0565b6040516100c59190610432565b60405180910390f35b3480156100da57600080fd5b506100e36101f4565b005b6101a97f00000000000000000000000000000000000000000000000000000000000000008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101429190610432565b602060405180830381865afa15801561015f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101839190610483565b8373ffffffffffffffffffffffffffffffffffffffff1661023f9092919063ffffffff16565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61023d477f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166102e590919063ffffffff16565b565b60006040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201528260248201526000806044836000895af19150506102a081610338565b6102df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d69061050d565b60405180910390fd5b50505050565b600080600080600085875af1905080610333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032a90610579565b60405180910390fd5b505050565b60003d8261034a57806000803e806000fd5b80602081146103645760008114610375576000925061037a565b816000803e6000511515925061037a565b600192505b5050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103b182610386565b9050919050565b60006103c3826103a6565b9050919050565b6103d3816103b8565b81146103de57600080fd5b50565b6000813590506103f0816103ca565b92915050565b60006020828403121561040c5761040b610381565b5b600061041a848285016103e1565b91505092915050565b61042c816103a6565b82525050565b60006020820190506104476000830184610423565b92915050565b6000819050919050565b6104608161044d565b811461046b57600080fd5b50565b60008151905061047d81610457565b92915050565b60006020828403121561049957610498610381565b5b60006104a78482850161046e565b91505092915050565b600082825260208201905092915050565b7f5452414e534645525f4641494c45440000000000000000000000000000000000600082015250565b60006104f7600f836104b0565b9150610502826104c1565b602082019050919050565b60006020820190508181036000830152610526816104ea565b9050919050565b7f4554485f5452414e534645525f4641494c454400000000000000000000000000600082015250565b60006105636013836104b0565b915061056e8261052d565b602082019050919050565b6000602082019050818103600083015261059281610556565b905091905056fea2646970667358221220d6f0e66272d746faf666fbaaac7b5aae88a53d607cd2b7b35f9508eb6454d17f64736f6c634300080d0033000000000000000000000000cb915b7e689bcecd5de2c1d863a77fb187f713a70000000000000000000000002e4a502664076da55d3b11e6ef7b9a531d4660cc
Deployed Bytecode
0x6080604052600436106100435760003560e01c8063289af1461461004f5780634cfe72e61461007857806372e5ab02146100a3578063b8b248f9146100ce5761004a565b3661004a57005b600080fd5b34801561005b57600080fd5b50610076600480360381019061007191906103f6565b6100e5565b005b34801561008457600080fd5b5061008d6101ac565b60405161009a9190610432565b60405180910390f35b3480156100af57600080fd5b506100b86101d0565b6040516100c59190610432565b60405180910390f35b3480156100da57600080fd5b506100e36101f4565b005b6101a97f0000000000000000000000002e4a502664076da55d3b11e6ef7b9a531d4660cc8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016101429190610432565b602060405180830381865afa15801561015f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101839190610483565b8373ffffffffffffffffffffffffffffffffffffffff1661023f9092919063ffffffff16565b50565b7f000000000000000000000000cb915b7e689bcecd5de2c1d863a77fb187f713a781565b7f0000000000000000000000002e4a502664076da55d3b11e6ef7b9a531d4660cc81565b61023d477f000000000000000000000000cb915b7e689bcecd5de2c1d863a77fb187f713a773ffffffffffffffffffffffffffffffffffffffff166102e590919063ffffffff16565b565b60006040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201528260248201526000806044836000895af19150506102a081610338565b6102df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d69061050d565b60405180910390fd5b50505050565b600080600080600085875af1905080610333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032a90610579565b60405180910390fd5b505050565b60003d8261034a57806000803e806000fd5b80602081146103645760008114610375576000925061037a565b816000803e6000511515925061037a565b600192505b5050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103b182610386565b9050919050565b60006103c3826103a6565b9050919050565b6103d3816103b8565b81146103de57600080fd5b50565b6000813590506103f0816103ca565b92915050565b60006020828403121561040c5761040b610381565b5b600061041a848285016103e1565b91505092915050565b61042c816103a6565b82525050565b60006020820190506104476000830184610423565b92915050565b6000819050919050565b6104608161044d565b811461046b57600080fd5b50565b60008151905061047d81610457565b92915050565b60006020828403121561049957610498610381565b5b60006104a78482850161046e565b91505092915050565b600082825260208201905092915050565b7f5452414e534645525f4641494c45440000000000000000000000000000000000600082015250565b60006104f7600f836104b0565b9150610502826104c1565b602082019050919050565b60006020820190508181036000830152610526816104ea565b9050919050565b7f4554485f5452414e534645525f4641494c454400000000000000000000000000600082015250565b60006105636013836104b0565b915061056e8261052d565b602082019050919050565b6000602082019050818103600083015261059281610556565b905091905056fea2646970667358221220d6f0e66272d746faf666fbaaac7b5aae88a53d607cd2b7b35f9508eb6454d17f64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cb915b7e689bcecd5de2c1d863a77fb187f713a70000000000000000000000002e4a502664076da55d3b11e6ef7b9a531d4660cc
-----Decoded View---------------
Arg [0] : _ethBeneficiary (address): 0xcB915b7E689bcEcD5De2C1d863A77fb187f713a7
Arg [1] : _erc20Beneficiary (address): 0x2E4A502664076DA55d3B11E6Ef7B9A531d4660cC
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000cb915b7e689bcecd5de2c1d863a77fb187f713a7
Arg [1] : 0000000000000000000000002e4a502664076da55d3b11e6ef7b9a531d4660cc
Deployed Bytecode Sourcemap
161:1750:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;654:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;742:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1601:108;;;;;;;;;;;;;:::i;:::-;;1773:136;1834:68;1853:16;1871:5;:15;;;1895:4;1871:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1834:5;:18;;;;:68;;;;;:::i;:::-;1773:136;:::o;654:39::-;;;:::o;742:41::-;;;:::o;1601:108::-;1649:53;1680:21;1649:14;:30;;;;:53;;;;:::i;:::-;1601:108::o;2495:1043:1:-;2607:15;2737:4;2731:11;2854:66;2835:17;2828:93;3013:42;3009:2;3005:51;3001:1;2982:17;2978:25;2971:86;3143:6;3138:2;3119:17;3115:26;3108:42;3437:1;3434;3430:2;3411:17;3408:1;3401:5;3394;3389:50;3375:64;;2642:807;3467:44;3500:10;3467:32;:44::i;:::-;3459:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;2597:941;2495:1043;;;:::o;776:305::-;848:15;1010:1;1007;1004;1001;993:6;989:2;982:5;977:35;963:49;;1040:10;1032:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;838:243;776:305;;:::o;4778:1041::-;4859:12;4981:16;5058:10;5048:238;;5165:14;5162:1;5159;5144:36;5257:14;5254:1;5247:25;5048:238;5307:14;5339:2;5334:242;;;;5594:1;5589:96;;;;5788:1;5777:12;;5300:503;;5334:242;5434:14;5431:1;5428;5413:36;5558:1;5552:8;5545:16;5538:24;5527:35;;5334:242;;5589:96;5670:1;5659:12;;5300:503;;4892:921;4778:1041;;;:::o;88:117:3:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:109::-;618:7;647:24;665:5;647:24;:::i;:::-;636:35;;568:109;;;:::o;683:148::-;769:37;800:5;769:37;:::i;:::-;762:5;759:48;749:76;;821:1;818;811:12;749:76;683:148;:::o;837:165::-;896:5;934:6;921:20;912:29;;950:46;990:5;950:46;:::i;:::-;837:165;;;;:::o;1008:355::-;1080:6;1129:2;1117:9;1108:7;1104:23;1100:32;1097:119;;;1135:79;;:::i;:::-;1097:119;1255:1;1280:66;1338:7;1329:6;1318:9;1314:22;1280:66;:::i;:::-;1270:76;;1226:130;1008:355;;;;:::o;1369:118::-;1456:24;1474:5;1456:24;:::i;:::-;1451:3;1444:37;1369:118;;:::o;1493:222::-;1586:4;1624:2;1613:9;1609:18;1601:26;;1637:71;1705:1;1694:9;1690:17;1681:6;1637:71;:::i;:::-;1493:222;;;;:::o;1721:77::-;1758:7;1787:5;1776:16;;1721:77;;;:::o;1804:122::-;1877:24;1895:5;1877:24;:::i;:::-;1870:5;1867:35;1857:63;;1916:1;1913;1906:12;1857:63;1804:122;:::o;1932:143::-;1989:5;2020:6;2014:13;2005:22;;2036:33;2063:5;2036:33;:::i;:::-;1932:143;;;;:::o;2081:351::-;2151:6;2200:2;2188:9;2179:7;2175:23;2171:32;2168:119;;;2206:79;;:::i;:::-;2168:119;2326:1;2351:64;2407:7;2398:6;2387:9;2383:22;2351:64;:::i;:::-;2341:74;;2297:128;2081:351;;;;:::o;2438:169::-;2522:11;2556:6;2551:3;2544:19;2596:4;2591:3;2587:14;2572:29;;2438:169;;;;:::o;2613:165::-;2753:17;2749:1;2741:6;2737:14;2730:41;2613:165;:::o;2784:366::-;2926:3;2947:67;3011:2;3006:3;2947:67;:::i;:::-;2940:74;;3023:93;3112:3;3023:93;:::i;:::-;3141:2;3136:3;3132:12;3125:19;;2784:366;;;:::o;3156:419::-;3322:4;3360:2;3349:9;3345:18;3337:26;;3409:9;3403:4;3399:20;3395:1;3384:9;3380:17;3373:47;3437:131;3563:4;3437:131;:::i;:::-;3429:139;;3156:419;;;:::o;3581:169::-;3721:21;3717:1;3709:6;3705:14;3698:45;3581:169;:::o;3756:366::-;3898:3;3919:67;3983:2;3978:3;3919:67;:::i;:::-;3912:74;;3995:93;4084:3;3995:93;:::i;:::-;4113:2;4108:3;4104:12;4097:19;;3756:366;;;:::o;4128:419::-;4294:4;4332:2;4321:9;4317:18;4309:26;;4381:9;4375:4;4371:20;4367:1;4356:9;4352:17;4345:47;4409:131;4535:4;4409:131;:::i;:::-;4401:139;;4128:419;;;:::o
Swarm Source
ipfs://d6f0e66272d746faf666fbaaac7b5aae88a53d607cd2b7b35f9508eb6454d17f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.