Overview
APE Balance
APE Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 10 from a total of 10 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Altcoin Fee | 6392926 | 79 days ago | IN | 0 APE | 0.0007375 | ||||
Set Tier4 | 6392926 | 79 days ago | IN | 0 APE | 0.00086303 | ||||
Set Tier3 | 6392926 | 79 days ago | IN | 0 APE | 0.00085545 | ||||
Set Tier2 | 6392926 | 79 days ago | IN | 0 APE | 0.00085825 | ||||
Set Tier1 | 6392925 | 79 days ago | IN | 0 APE | 0.00085398 | ||||
Set Altcoin Fee | 5803920 | 88 days ago | IN | 0 APE | 0.0007375 | ||||
Set Tier4 | 5803920 | 88 days ago | IN | 0 APE | 0.00086303 | ||||
Set Tier3 | 5803920 | 88 days ago | IN | 0 APE | 0.00085576 | ||||
Set Tier2 | 5803920 | 88 days ago | IN | 0 APE | 0.00085825 | ||||
Set Tier1 | 5803919 | 88 days ago | IN | 0 APE | 0.00085398 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Transfers
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import "./ownable.sol"; import "./ierc20metadata.sol"; import "./IOmnify.sol"; contract Transfers is Ownable { event AssetsReceived( string _id, address _sender, address _recipient, address _asset, uint256 _amount, uint256 _blockNumber, uint256 _date ); event AssetsSent( string _id, address _sender, address _recipient, address _asset, uint256 _amount, uint256 _blockNumber, uint256 _date ); event TransferComplete( string _id, address _sender, address _recipient, address _asset, uint256 _amount, uint256 _blockNumber, uint256 _date ); struct TransferFee { uint256 lowerThreshold; uint256 higherThreshold; uint256 fee; } struct ParamTransfer { address asset; uint256 amount; address payable recipient; string id; } struct Transfer { string id; address sender; address recipient; address assetAddress; uint256 amount; uint256 date; bool exists; } struct ProfileTransfer { string id; } struct AssetStat { uint256 sent; uint256 received; } struct TransferProfile { uint256 transfersSent; uint256 transfersReceived; bool exists; uint256 transfersCount; uint256 assetCount; mapping(uint256 => ProfileTransfer) transfers; mapping(uint256 => address) countToAsset; mapping(address => uint256) assetToCount; mapping(uint256 => AssetStat) assetsStats; } constructor( address _omnifyAddress, uint8 _paramNativeDecimals, uint256 _paramAltcoinFee, uint256 _paramTier1Fee, uint256 _paramtier2Fee, uint256 _paramTier3Fee, uint256 _paramTier4Fee, uint256 _paramTier1HigherThreshold, uint256 _paramTier2HigherThreshold, uint256 _paramTier3HigherThreshold ) Ownable(msg.sender) { omnifyAddress = _omnifyAddress; nativeCoinDecimals = _paramNativeDecimals; altcoinFee = _paramAltcoinFee; tier1.fee = _paramTier1Fee; tier2.fee = _paramtier2Fee; tier3.fee = _paramTier3Fee; tier4.fee = _paramTier4Fee; tier1.lowerThreshold = getMinAmount(_paramNativeDecimals); tier1.higherThreshold = _paramTier1HigherThreshold; tier2.lowerThreshold = 10_000 * (10 ** _paramNativeDecimals); tier2.higherThreshold = _paramTier2HigherThreshold; tier3.lowerThreshold = 100_000 * (10 ** _paramNativeDecimals); tier3.higherThreshold = _paramTier3HigherThreshold; tier4.lowerThreshold = 1_000_000 * (10 ** _paramNativeDecimals); } uint256 internal MAXUINT = 2 ** 256 - 1; TransferFee public tier1; TransferFee public tier2; TransferFee public tier3; TransferFee public tier4; uint8 public nativeCoinDecimals; address public feeKeeperAddress; address public omnifyAddress; uint256 public altcoinFee; uint256 public totalNumerOfTransfers; uint256 public totalAssetsTransferred; uint256 public totalSendersUnique; uint256 public totalRecipientsUnique; mapping(string => Transfer) public transfers; mapping(address => TransferProfile) public transferProfiles; modifier onlyFeeKeeper(address _sender) { require(_sender == feeKeeperAddress); _; } function setOmnifyAddress(address _newaddress) external onlyOwner { omnifyAddress = _newaddress; } function setFeeKeeperAddress(address _feeKeeper) external onlyOwner { feeKeeperAddress = _feeKeeper; } function getMinAmount(uint8 _decimals) public pure returns (uint256) { if (_decimals == 0) { return 1; } if (_decimals == 1) { return 0.1 * (10 ** 1); } if (_decimals == 2) { return 0.01 * (10 ** 2); } if (_decimals >= 3) { uint8 powa = _decimals - 3; //0.001 return 1 * (10 ** powa); } return 1; } function setTier1(uint256 _lowerThreshold, uint256 _higherThreshold, uint256 _fee) external onlyOwner { tier1.lowerThreshold = _lowerThreshold; tier1.higherThreshold = _higherThreshold; tier1.fee = _fee; } function setTier1ByFeeKeeper(uint256 _lowerThreshold, uint256 _higherThreshold, uint256 _fee) external onlyFeeKeeper(msg.sender) { tier1.lowerThreshold = _lowerThreshold; tier1.higherThreshold = _higherThreshold; tier1.fee = _fee; } function setTier2(uint256 _lowerThreshold, uint256 _higherThreshold, uint256 _fee) external onlyOwner { tier2.lowerThreshold = _lowerThreshold; tier2.higherThreshold = _higherThreshold; tier2.fee = _fee; } function setTier2ByFeeKeeper(uint256 _lowerThreshold, uint256 _higherThreshold, uint256 _fee) external onlyFeeKeeper(msg.sender) { tier2.lowerThreshold = _lowerThreshold; tier2.higherThreshold = _higherThreshold; tier2.fee = _fee; } function setTier3(uint256 _lowerThreshold, uint256 _higherThreshold, uint256 _fee) external onlyOwner { tier3.lowerThreshold = _lowerThreshold; tier3.higherThreshold = _higherThreshold; tier3.fee = _fee; } function setTier3ByFeeKeeper(uint256 _lowerThreshold, uint256 _higherThreshold, uint256 _fee) external onlyFeeKeeper(msg.sender) { tier3.lowerThreshold = _lowerThreshold; tier3.higherThreshold = _higherThreshold; tier3.fee = _fee; } function setTier4(uint256 _lowerThreshold, uint256 _higherThreshold, uint256 _fee) external onlyOwner { tier4.lowerThreshold = _lowerThreshold; tier4.higherThreshold = _higherThreshold; tier4.fee = _fee; } function setTier4ByFeeKeeper(uint256 _lowerThreshold, uint256 _higherThreshold, uint256 _fee) external onlyFeeKeeper(msg.sender) { tier4.lowerThreshold = _lowerThreshold; tier4.higherThreshold = _higherThreshold; tier4.fee = _fee; } function setAltcoinFee(uint256 _fee) external onlyOwner { altcoinFee = _fee; } function setAltcoinFeeByFeeKeeper(uint256 _fee) external onlyFeeKeeper(msg.sender) { altcoinFee = _fee; } function _addTotalTransfers() internal { totalNumerOfTransfers++; } function _addTotalAssetsTransferred(uint256 _amount) internal { totalAssetsTransferred = safeAdd(totalAssetsTransferred, _amount); } function _addTotalSendersUnique(address _sender) internal { if (!transferProfiles[_sender].exists) { totalSendersUnique++; transferProfiles[_sender].exists = true; } } function _addTotalRecipients(address _recipient) internal { if (!transferProfiles[_recipient].exists) { totalRecipientsUnique++; transferProfiles[_recipient].exists = true; } } function lookupTransfer(string memory _id) public view returns (Transfer memory) { return transfers[_id]; } function lookupTransferProfileSents(address _profile) public view returns (uint256) { return transferProfiles[_profile].transfersSent; } function lookupTransferProfileReceiveds(address _profile) public view returns (uint256) { return transferProfiles[_profile].transfersReceived; } function lookupTransferProfileTransfers(address _profile) public view returns (ProfileTransfer[] memory) { uint256 transferCount = transferProfiles[_profile].transfersCount; ProfileTransfer[] memory profileTransfers = new ProfileTransfer[](transferCount); if (transferCount > 0) { for (uint256 i = 0; i < transferCount; i++) { profileTransfers[i] = transferProfiles[_profile].transfers[i]; } } return profileTransfers; } function lookupTransferProfileAssetStats(address _profile) public view returns (AssetStat[] memory) { uint256 assetCount = transferProfiles[_profile].assetCount; AssetStat[] memory profileAssets = new AssetStat[](assetCount); if (assetCount > 0) { for (uint256 i = 0; i < assetCount; i++) { profileAssets[i] = transferProfiles[_profile].assetsStats[i + 1]; } } return profileAssets; } function lookupTransferAssetFromProfile(address _profile, uint256 _count) public view returns (address) { return transferProfiles[_profile].countToAsset[_count]; } function conductTransfers(ParamTransfer[] calldata _trz) external payable { require(_trz.length > 0); uint256 _feesAmount = 0; uint256 _nonFeeAmount = 0; for (uint256 i = 0; i < _trz.length; i++) { ParamTransfer memory _t = _trz[i]; address _asset = _t.asset; uint256 _amount = _t.amount; address payable _recipient = _t.recipient; string memory _id = _t.id; require(transfers[_id].exists == false); if (_asset == address(0)) { uint256 _minAmount = getMinAmount(nativeCoinDecimals); require(_amount >= _minAmount); TransferFee memory matchedTier = _matchFeeTier(_amount); uint256 calculatedFee = _calculateFeeFromTier(matchedTier); _feesAmount += calculatedFee; _nonFeeAmount += _amount; emit AssetsReceived(_id, msg.sender, _recipient, _asset, _amount, block.number, block.timestamp); (bool success,) = _recipient.call{value: _amount}(""); require(success); emit AssetsSent(_id, msg.sender, _recipient, _asset, _amount, block.number, block.timestamp); } else { _feesAmount += altcoinFee; MYIERC20Metadata coin = MYIERC20Metadata(_asset); uint8 _decimals = coin.decimals(); uint256 _minAmount = getMinAmount(_decimals); require(_amount >= _minAmount); bool success1 = coin.transferFrom(msg.sender, address(this), _amount); require(success1); emit AssetsReceived(_id, msg.sender, _recipient, _asset, _amount, block.number, block.timestamp); bool success2 = coin.transfer(_recipient, _amount); require(success2); emit AssetsSent(_id, msg.sender, _recipient, _asset, _amount, block.number, block.timestamp); } transferProfiles[msg.sender].transfersSent++; uint256 senderProfileTransferCount = transferProfiles[msg.sender].transfersCount; transferProfiles[msg.sender].transfers[senderProfileTransferCount].id = _id; transferProfiles[msg.sender].transfersCount++; if (transferProfiles[msg.sender].assetCount == 0) { transferProfiles[msg.sender].assetCount++; } uint256 thisAssetsCount = transferProfiles[msg.sender].assetToCount[_asset]; bool assetExists = thisAssetsCount != 0; if (assetExists) { transferProfiles[msg.sender].assetsStats[thisAssetsCount].sent = safeAdd(transferProfiles[msg.sender].assetsStats[thisAssetsCount].sent, _amount); } else { uint256 senderProfileAssetCount = transferProfiles[msg.sender].assetCount; transferProfiles[msg.sender].assetsStats[senderProfileAssetCount].sent = safeAdd(transferProfiles[msg.sender].assetsStats[senderProfileAssetCount].sent, _amount); transferProfiles[msg.sender].countToAsset[senderProfileAssetCount] = _asset; transferProfiles[msg.sender].assetToCount[_asset] = senderProfileAssetCount; transferProfiles[msg.sender].assetCount++; } transferProfiles[_recipient].transfersReceived++; uint256 recipientProfileTransferCount = transferProfiles[_recipient].transfersCount; transferProfiles[_recipient].transfers[recipientProfileTransferCount].id = _id; transferProfiles[_recipient].transfersCount++; if (transferProfiles[_recipient].assetCount == 0) { transferProfiles[_recipient].assetCount++; } uint256 thisAssetsCountRecipient = transferProfiles[_recipient].assetToCount[_asset]; bool recipientAssetExists = thisAssetsCountRecipient != 0; if (recipientAssetExists) { transferProfiles[_recipient].assetsStats[thisAssetsCountRecipient].received = safeAdd(transferProfiles[_recipient].assetsStats[thisAssetsCountRecipient].received, _amount); } else { uint256 recipientProfileAssetCount = transferProfiles[_recipient].assetCount; transferProfiles[_recipient].assetsStats[recipientProfileAssetCount].received = safeAdd(transferProfiles[_recipient].assetsStats[recipientProfileAssetCount].received, _amount); transferProfiles[_recipient].countToAsset[recipientProfileAssetCount] = _asset; transferProfiles[_recipient].assetToCount[_asset] = recipientProfileAssetCount; transferProfiles[_recipient].assetCount++; } _addTotalTransfers(); _addTotalSendersUnique(msg.sender); _addTotalRecipients(_recipient); _addTotalAssetsTransferred(_amount); _addToTransfers(_id, _recipient, _asset, _amount); emit TransferComplete(_id, msg.sender, _recipient, _asset, _amount, block.number, block.timestamp); } require(msg.value == _feesAmount + _nonFeeAmount); require(msg.value - _nonFeeAmount == _feesAmount); require(msg.value - _feesAmount == _nonFeeAmount); IOmnify mainContract = IOmnify(omnifyAddress); mainContract.addProfitsFromExternalContract{value: _feesAmount}(); } function _addToTransfers(string memory _id, address payable _recipient, address _asset, uint256 _amount) private { transfers[_id].id = _id; transfers[_id].sender = msg.sender; transfers[_id].recipient = _recipient; transfers[_id].assetAddress = _asset; transfers[_id].amount = _amount; transfers[_id].exists = true; transfers[_id].date = block.timestamp; } function _matchFeeTier(uint256 _amount) private view returns (TransferFee memory) { if (_amount >= tier1.lowerThreshold && _amount <= tier1.higherThreshold) { return tier1; } if (_amount >= tier2.lowerThreshold && _amount <= tier2.higherThreshold) { return tier2; } if (_amount >= tier3.lowerThreshold && _amount <= tier3.higherThreshold) { return tier3; } if (_amount >= tier4.lowerThreshold) { return tier4; } return tier1; } function _calculateFeeFromTier(TransferFee memory _tier) private pure returns (uint256) { return _tier.fee; } function safeAdd(uint256 _currentAmount, uint256 _amountToBeAdded) internal view returns (uint256) { uint256 _allowedAmount = MAXUINT - _currentAmount; if (_amountToBeAdded <= _allowedAmount) { return _currentAmount + _amountToBeAdded; } return _currentAmount; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; abstract contract MyContext { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is MyContext { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import "./ierc20.sol"; interface MYIERC20Metadata is MYIERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; interface IOmnify { function addProfitsFromExternalContract() external payable; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; /** * @dev Interface of the ERC-20 standard as defined in the ERC. */ interface MYIERC20 { /** * @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 value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens 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 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` 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 value) external returns (bool); }
{ "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@layerzerolabs/lz-evm-oapp-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/oapp/contracts/", "@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/", "@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/", "solidity-bytes-utils/contracts/=lib/solidity-bytes-utils/contracts/", "LayerZero-v2/=lib/LayerZero-v2/", "ds-test/=lib/solidity-stringutils/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "solidity-stringutils/=lib/solidity-stringutils/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "viaIR": true, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_omnifyAddress","type":"address"},{"internalType":"uint8","name":"_paramNativeDecimals","type":"uint8"},{"internalType":"uint256","name":"_paramAltcoinFee","type":"uint256"},{"internalType":"uint256","name":"_paramTier1Fee","type":"uint256"},{"internalType":"uint256","name":"_paramtier2Fee","type":"uint256"},{"internalType":"uint256","name":"_paramTier3Fee","type":"uint256"},{"internalType":"uint256","name":"_paramTier4Fee","type":"uint256"},{"internalType":"uint256","name":"_paramTier1HigherThreshold","type":"uint256"},{"internalType":"uint256","name":"_paramTier2HigherThreshold","type":"uint256"},{"internalType":"uint256","name":"_paramTier3HigherThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_id","type":"string"},{"indexed":false,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"address","name":"_recipient","type":"address"},{"indexed":false,"internalType":"address","name":"_asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_date","type":"uint256"}],"name":"AssetsReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_id","type":"string"},{"indexed":false,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"address","name":"_recipient","type":"address"},{"indexed":false,"internalType":"address","name":"_asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_date","type":"uint256"}],"name":"AssetsSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_id","type":"string"},{"indexed":false,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"address","name":"_recipient","type":"address"},{"indexed":false,"internalType":"address","name":"_asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_date","type":"uint256"}],"name":"TransferComplete","type":"event"},{"inputs":[],"name":"altcoinFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"string","name":"id","type":"string"}],"internalType":"struct Transfers.ParamTransfer[]","name":"_trz","type":"tuple[]"}],"name":"conductTransfers","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"feeKeeperAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_decimals","type":"uint8"}],"name":"getMinAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"_id","type":"string"}],"name":"lookupTransfer","outputs":[{"components":[{"internalType":"string","name":"id","type":"string"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"assetAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"date","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"}],"internalType":"struct Transfers.Transfer","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_profile","type":"address"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"lookupTransferAssetFromProfile","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_profile","type":"address"}],"name":"lookupTransferProfileAssetStats","outputs":[{"components":[{"internalType":"uint256","name":"sent","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"internalType":"struct Transfers.AssetStat[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_profile","type":"address"}],"name":"lookupTransferProfileReceiveds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_profile","type":"address"}],"name":"lookupTransferProfileSents","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_profile","type":"address"}],"name":"lookupTransferProfileTransfers","outputs":[{"components":[{"internalType":"string","name":"id","type":"string"}],"internalType":"struct Transfers.ProfileTransfer[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nativeCoinDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"omnifyAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setAltcoinFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setAltcoinFeeByFeeKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeKeeper","type":"address"}],"name":"setFeeKeeperAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newaddress","type":"address"}],"name":"setOmnifyAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"_higherThreshold","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setTier1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"_higherThreshold","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setTier1ByFeeKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"_higherThreshold","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setTier2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"_higherThreshold","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setTier2ByFeeKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"_higherThreshold","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setTier3","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"_higherThreshold","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setTier3ByFeeKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"_higherThreshold","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setTier4","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"_higherThreshold","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setTier4ByFeeKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tier1","outputs":[{"internalType":"uint256","name":"lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"higherThreshold","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tier2","outputs":[{"internalType":"uint256","name":"lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"higherThreshold","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tier3","outputs":[{"internalType":"uint256","name":"lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"higherThreshold","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tier4","outputs":[{"internalType":"uint256","name":"lowerThreshold","type":"uint256"},{"internalType":"uint256","name":"higherThreshold","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssetsTransferred","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalNumerOfTransfers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRecipientsUnique","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSendersUnique","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"transferProfiles","outputs":[{"internalType":"uint256","name":"transfersSent","type":"uint256"},{"internalType":"uint256","name":"transfersReceived","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint256","name":"transfersCount","type":"uint256"},{"internalType":"uint256","name":"assetCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"transfers","outputs":[{"internalType":"string","name":"id","type":"string"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"assetAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"date","type":"uint256"},{"internalType":"bool","name":"exists","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608034620001e457601f620021f038819003918201601f19168301916001600160401b03831184841017620001e95780849261014094604052833981010312620001e45780516001600160a01b03808216929091839003620001e45760208101519060ff8216808303620001e45760408201516060830151608084015160a08501519160c08601519360e0870151956101206101008901519801519a3315620001cb5760008054336001600160a01b031980831682178455929d9091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08e80a3600019600155600f541617600f5560ff19600e541617600e55601055600455600755600a55600d55620001138362000227565b6002556003556200012482620001ff565b6127109080820291820403620001b7576005556006556200014581620001ff565b92620186a09380850294850403620001a357620001699293600855600955620001ff565b90620f424091808302928304036200018f5750600b55604051611f7b9081620002758239f35b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b604051631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b60ff16604d81116200021157600a0a90565b634e487b7160e01b600052601160045260246000fd5b60ff1680156200026e57600181146200026e57600281146200026e576003811015620002535750600190565b6002190160ff811162000211576200026b90620001ff565b90565b5060019056fe608080604052600436101561001357600080fd5b600090813560e01c90816317b6dd4214611a2b575080631906f343146119f857806333ae7166146119c65780633806153e146119945780633d8219c01461197057806343412cc71461194c57806346e21b32146117fd5780634b1740ad146117cb5780635db74a3c1461179857806360db259514611768578063624d11fc146117445780636318ac64146117235780636552ecd0146115d7578063715018a61461157d578063753014031461151257806384a1c23314611448578063885ab539146112f05780638da5cb5b146112c95780639d57c891146112ab578063b096d3f714611288578063b12277761461124b578063b5d8561d1461122d578063bb6b13a1146111fb578063be67fd0d146111dd578063c1623c4b146111b9578063c342cac314611179578063c80cb7461461115b578063cb4599f214611122578063d09ec9e614611104578063d6fc55d5146110d1578063dcaeb1ec1461036f578063de2231da14610342578063e0224f1d1461030f578063f2fde38b14610284578063f36c28d01461023b578063f4ed4c84146101f15763fd056ca9146101b857600080fd5b346101ee576101c636611a50565b600e5490929060081c6001600160a01b031633036101ea5760025560035560045580f35b8380fd5b80fd5b50346101ee5760203660031901126101ee5761020b611a6f565b610213611ddd565b600e8054610100600160a81b03191660089290921b610100600160a81b031691909117905580f35b50346101ee5760403660031901126101ee57602090604061025a611a6f565b6001600160a01b039081168352601684528183206024358452600601845291205460405191168152f35b50346101ee5760203660031901126101ee5761029e611a6f565b6102a6611ddd565b6001600160a01b039081169081156102f657600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b604051631e4fbdf760e01b815260048101849052602490fd5b50346101ee5761031e36611a50565b600e5490929060081c6001600160a01b031633036101ea57600855600955600a5580f35b50346101ee57806003193601126101ee57600e5460405160089190911c6001600160a01b03168152602090f35b5060203660031901126101ee576001600160401b03600435116101ee573660236004350112156101ee576001600160401b0360043560040135116101ee573660246004356004013560051b6004350101116101ee5760043560040135156101ee578080805b6004356004013581106104855750906103ed8183611d53565b340361048157816103fe8234611dd0565b036104815761040d8234611dd0565b0361047d57600f5482906001600160a01b0316803b1561047d5760046040518094819363162c2c8560e01b83525af180156104725761044a575080f35b6001600160401b03811161045e5760405280f35b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5080fd5b8280fd5b60248160051b60043501013560a2196004353603018112156110cd57608090816023198260043501360301126110b5576040519182018281106001600160401b038211176110b9576040526004358101602401356001600160a01b03811690036110b55760043581016024810135835260448101356020840152606401356001600160a01b03811690036110b55760043581016064810135604084015260840135906001600160401b0382116110b1576024610548923692600435010101611b8b565b9283606083015260018060a01b0382511690602083015192604060018060a01b03910151169060ff6006604051602081816105898c83815193849201611a85565b81016015815203019020015416610ee05782610ee9576105ad60ff600e5416611cb1565b8410610ee057836105ce6105d49260406105c684611e2d565b015190611d53565b97611d53565b947feb14371e70582d8c3341b2a0260f17a7ac85a3c8002c772320c2f16f9170d17a6040518061060a4243898989338a88611d78565b0390a18780808087865af13d15610ee4573d61062581611b70565b906106336040519283611b4f565b81528960203d92013e5b15610ee0577f0eaabebf9411ba535c3feed9fda5977b5a8d012c4592ac84f8e754dba6c5c80b604051806106774243898989338a88611d78565b0390a15b3388526016602052604088206106918154611dc1565b9055338852601660205260056040892060038101548a52016020526040882081516001600160401b038111610b95576106ca8254611bd2565b601f8111610e9f575b50806020601f8211600114610e3c578b91610e31575b508160011b916000199060031b1c19161790555b3388526016602052600360408920016107168154611dc1565b905533885260166020526004604089200180548015610e1f575b50503388526016602052600760408920018389526020526040882054801515600014610d755733895260166020526008908160408b2001818b5260205261077b8660408c2054611f24565b91338b52601660205260408b2001908a5260205260408920555b8188526016602052600160408920016107ae8154611dc1565b9055818852601660205260056040892060038101548a52016020526040882081516001600160401b038111610b95576107e78254611bd2565b601f8111610d34575b50806020601f8211600114610cd0578b91610cc5575b508160011b916000199060031b1c19161790555b8188526016602052600360408920016108338154611dc1565b905581885260166020526004604089200180548015610cb3575b50508188526016602052600760408920018389526020526040882054801515600014610c035782895260166020526008908160408b2001818b5260205261089b86600160408d200154611f24565b91848b52601660205260408b2001908a52602052600160408a2001555b60116108c48154611dc1565b9055338852601660205260ff600260408a2001541615610bd6575b81885260ff600260408a2001541615610ba9575b6012610900858254611f24565b905560405160208183516109178183858801611a85565b8101601581520301902081516001600160401b038111610b955761093b8254611bd2565b601f8111610b54575b5060208a601f8311600114610ac55792826001999896937fff92edf2dd5cb7bb1030305d47314b212c5e276ee511d3fa9f77b9576087b547989693610aae9691610aba575b50600019600383901b1c1916908a1b1790555b8760405160208184516109b28183858901611a85565b81016015815203019020016001600160601b0360a01b903382825416179055600260405160208185516109e88183858a01611a85565b810160158152030190200183828254161790558460036040516020818651610a138183858b01611a85565b8101601581520301902001918254161790558460046040516020818551610a3d8183858a01611a85565b81016015815203019020015560066040516020818451610a608183858901611a85565b81016015815203019020018860ff1982541617905560405160058251610a8a818460208701611a85565b82019160158352602081429403019020015560405194859442934393339088611d78565b0390a1019190916103d4565b905083015138610989565b83905260208b20908b5b601f1984168110610b3c5750926001837fff92edf2dd5cb7bb1030305d47314b212c5e276ee511d3fa9f77b9576087b547989693610aae96839c9b9996601f19811610610b23575b5050811b01905561099c565b85015160001960f88460031b161c191690553880610b17565b90916020600181928589015181550193019101610acf565b828b5260208b20601f830160051c810160208410610b8e575b601f830160051c82018110610b83575050610944565b8c8155600101610b6d565b5080610b6d565b634e487b7160e01b8a52604160045260248afd5b6014610bb58154611dc1565b9055818852601660205260408820600201805460ff191660011790556108f3565b6013610be28154611dc1565b9055338852601660205260408820600201805460ff191660011790556108df565b5081885260166020526040882060048101549060088091838c5201602052610c3286600160408d200154611f24565b90848b52601660205260408b2001828b52602052600160408b2001558289526016602052600660408a2001818a5260205260408920846001600160601b0360a01b8254161790558289526016602052600760408a2001848a526020526040892055818852601660205260046040892001610cac8154611dc1565b90556108b8565b610cbc90611dc1565b9055388061084d565b905083015138610806565b9150828b5260208b208b925b601f1983168410610d1c576001935082601f19811610610d03575b5050811b01905561081a565b85015160001960f88460031b161c191690553880610cf7565b85810151825560209384019360019092019101610cdc565b828b5260208b20601f830160051c810160208410610d6e575b601f830160051c82018110610d635750506107f0565b8c8155600101610d4d565b5080610d4d565b5033885260166020526040882060048101549060088091838c5201602052610da18660408c2054611f24565b90338b52601660205260408b2001828b5260205260408a20553389526016602052600660408a2001818a5260205260408920846001600160601b0360a01b8254161790553389526016602052600760408a2001848a526020526040892055338852601660205260046040892001610e188154611dc1565b9055610795565b610e2890611dc1565b90553880610730565b9050830151386106e9565b838c5260208c2091508b5b601f1984168110610e87575082601f19811610610e6e575b5050600190811b0190556106fd565b84015160001960f88460031b161c191690553880610e5f565b90916020600181928589015181550193019101610e47565b828b5260208b20601f830160051c810160208410610ed9575b601f830160051c82018110610ece5750506106d3565b8c8155600101610eb8565b5080610eb8565b8780fd5b61063d565b601054959695610ef891611d53565b9560405163313ce56760e01b8152602081600481875afa801561104557899061106f575b610f269150611cb1565b8410610ee0576040516323b872dd60e01b8152336004820152306024820152604481018590526020816064818c885af1908115611045578991611050575b5015610ee0577feb14371e70582d8c3341b2a0260f17a7ac85a3c8002c772320c2f16f9170d17a60405180610f9f4243898989338a88611d78565b0390a160405163a9059cbb60e01b81528260048201528460248201526020816044818c885af1908115611045578991611016575b5015610ee0577f0eaabebf9411ba535c3feed9fda5977b5a8d012c4592ac84f8e754dba6c5c80b6040518061100e4243898989338a88611d78565b0390a161067b565b611038915060203d60201161103e575b6110308183611b4f565b810190611d60565b38610fd3565b503d611026565b6040513d8b823e3d90fd5b611069915060203d60201161103e576110308183611b4f565b38610f64565b506020813d6020116110a9575b8161108960209383611b4f565b810103126110a5575160ff811681036110a557610f2690610f1c565b8880fd5b3d915061107c565b8680fd5b8580fd5b634e487b7160e01b87526041600452602487fd5b8480fd5b50346101ee576110e036611a50565b600e5490929060081c6001600160a01b031633036101ea57600b55600c55600d5580f35b50346101ee57806003193601126101ee576020601354604051908152f35b50346101ee5760203660031901126101ee576020906040906001600160a01b0361114a611a6f565b168152601683522054604051908152f35b50346101ee57806003193601126101ee576020601054604051908152f35b50346101ee5760203660031901126101ee57611193611a6f565b61119b611ddd565b60018060a01b03166001600160601b0360a01b600f541617600f5580f35b50346101ee576111c836611a50565b916111d1611ddd565b600b55600c55600d5580f35b50346101ee57806003193601126101ee576020601454604051908152f35b50346101ee57806003193601126101ee5760025460035460045460408051938452602084019290925290820152606090f35b50346101ee57806003193601126101ee576020601254604051908152f35b50346101ee5760203660031901126101ee576020906001906040906001600160a01b03611276611a6f565b16815260168452200154604051908152f35b50346101ee5760203660031901126101ee576112a2611ddd565b60043560105580f35b50346101ee57806003193601126101ee576020601154604051908152f35b50346101ee57806003193601126101ee57546040516001600160a01b039091168152602090f35b50346101ee5760208060031936011261047d576001600160a01b03611313611a6f565b1691828152601680835260046040832001549061132f82611d12565b9461133d6040519687611b4f565b82865261134983611d12565b601f190185855b82811061142657505050826113a9575b505050916040519180830190808452825180925280604085019301945b82811061138a5784840385f35b855180518552820151848301529481019460409093019260010161137d565b835b8381106113b85750611360565b818552828652600860408620016001908183018084116114125787528752604080872090516001939290916113ec83611b19565b80548352015488820152611400828a611d29565b5261140b8189611d29565b50016113ab565b634e487b7160e01b88526011600452602488fd5b60405161143281611b19565b878152878382015282828b010152018690611350565b50346101ee5760203660031901126101ee57600435906001600160401b0382116101ee576114ed61149460206114813660048701611b8b565b8160405193828580945193849201611a85565b810160158152030190206114a781611c0c565b9060018060a01b038060018301541691816002820154169160038201541660048201549060ff60066005850154940154169360405197889760e0895260e0890190611aa8565b95602088015260408701526060860152608085015260a0840152151560c08301520390f35b50346101ee5760203660031901126101ee5760a0906040906001600160a01b0361153a611a6f565b16815260166020522080549060018101549060ff600282015416600460038301549201549260405194855260208501521515604084015260608301526080820152f35b50346101ee57806003193601126101ee57611596611ddd565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ee57602090816003193601126101ee576004356001600160401b03811161047d576116549161160f84923690600401611b8b565b9060c060405161161e81611afe565b6060815282858201528260408201528260608201528260808201528260a082015201528160405193828580945193849201611a85565b81016015815203019020906040519161166c83611afe565b61167581611c0c565b835260018060a01b038060018301541691838501928352816002820154169160408601928352806003830154169060608701918252600483015491608088019283528160ff600660058701549660a08c019788520154169560c08a019615158752816116f58a60e06040519d8e9d8e5251918d01526101008c0190611aa8565b98511660408a015251166060880152511660808601525160a08501525160c084015251151560e08301520390f35b50346101ee57806003193601126101ee57602060ff600e5416604051908152f35b50346101ee5761175336611a50565b9161175c611ddd565b60055560065560075580f35b50346101ee5760203660031901126101ee57600e5460081c6001600160a01b031633036101ee5760043560105580f35b50346101ee576117a736611a50565b600e5490929060081c6001600160a01b031633036101ea5760055560065560075580f35b50346101ee57806003193601126101ee57600854600954600a5460408051938452602084019290925290820152606090f35b50346101ee5760208060031936011261047d576001600160a01b03611820611a6f565b16808352601680835260036040852001549061183b82611d12565b926118496040519485611b4f565b82845261185583611d12565b601f190185875b82811061192e57505050826118d3575b50506040805184815283518186018190529094600582901b860183019481019350909185015b82871061189f5785850386f35b9091929382806118c3600193603f198a820301865282895151918181520190611aa8565b9601920196019592919092611892565b855b8381106118e2575061186c565b600190828852838752600560408920018189528752604088206119106040519161190b83611acd565b611c0c565b815261191c8288611d29565b526119278187611d29565b50016118d5565b60405161193a81611acd565b6060815282828901015201869061185c565b50346101ee5761195b36611a50565b91611964611ddd565b600855600955600a5580f35b50346101ee5761197f36611a50565b91611988611ddd565b60025560035560045580f35b50346101ee57806003193601126101ee5760055460065460075460408051938452602084019290925290820152606090f35b50346101ee57806003193601126101ee57600b54600c54600d5460408051938452602084019290925290820152606090f35b50346101ee5760203660031901126101ee576004359060ff821682036101ee576020611a2383611cb1565b604051908152f35b90503461047d578160031936011261047d57600f546001600160a01b03168152602090f35b6060906003190112611a6a57600435906024359060443590565b600080fd5b600435906001600160a01b0382168203611a6a57565b60005b838110611a985750506000910152565b8181015183820152602001611a88565b90602091611ac181518092818552858086019101611a85565b601f01601f1916010190565b602081019081106001600160401b03821117611ae857604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b03821117611ae857604052565b604081019081106001600160401b03821117611ae857604052565b606081019081106001600160401b03821117611ae857604052565b90601f801991011681019081106001600160401b03821117611ae857604052565b6001600160401b038111611ae857601f01601f191660200190565b81601f82011215611a6a57803590611ba282611b70565b92611bb06040519485611b4f565b82845260208383010111611a6a57816000926020809301838601378301015290565b90600182811c92168015611c02575b6020831014611bec57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611be1565b90604051918260008254611c1f81611bd2565b90818452602094600191600181169081600014611c8f5750600114611c50575b505050611c4e92500383611b4f565b565b600090815285812095935091905b818310611c77575050611c4e9350820101388080611c3f565b85548884018501529485019487945091830191611c5e565b92505050611c4e94925060ff191682840152151560051b820101388080611c3f565b60ff168015611d0c5760018114611d0c5760028114611d0c576003811015611cd95750600190565b6002190160ff8111611cf65760ff16604d8111611cf657600a0a90565b634e487b7160e01b600052601160045260246000fd5b50600190565b6001600160401b038111611ae85760051b60200190565b8051821015611d3d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b91908201809211611cf657565b90816020910312611a6a57518015158103611a6a5790565b93611d9360c09693999897949260e0875260e0870190611aa8565b6001600160a01b03998a16602087015291891660408601529097166060840152608083015260a08201520152565b6000198114611cf65760010190565b91908203918211611cf657565b6000546001600160a01b03163303611df157565b60405163118cdaa760e01b8152336004820152602490fd5b60405190611e1682611b34565b600254825260035460208301526004546040830152565b60406000818051611e3d81611b34565b828152826020820152015260025482101580611f18575b611f0e576005548083101580611f02575b611ee157506008548083101580611ed5575b611eb45750600b5480921015611e94575050611e91611e09565b90565b805191611ea083611b34565b8252600c546020830152600d549082015290565b81519250611ec183611b34565b82526009546020830152600a549082015290565b50600954831115611e77565b81519250611eee83611b34565b825260065460208301526007549082015290565b50600654831115611e65565b5050611e91611e09565b50600354821115611e54565b90611f3182600154611dd0565b811115611f3c575090565b611e9191611d5356fea2646970667358221220cad176d826a3647c815efba4a7fdbe56caa2c62c13a19b4c2cae612b46a474c964736f6c63430008180033000000000000000000000000883ba282d409e0e984bef70b338f641d0045942f0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000138a388a43c0000000000000000000000000000000000000000000000000000009c51c4521e0000000000000000000000000000000000000000000000000000061a1573a1adf8000000000000000000000000000000000000000000000000003c788179e42af00000000000000000000000000000000000000000000000000064c8eabdca610800000000000000000000000000000000000000000000000021e19e0c9bab23fffff00000000000000000000000000000000000000000000152d02c7e14af67fffff00000000000000000000000000000000000000000000d3c21bcecceda0ffffff
Deployed Bytecode
0x608080604052600436101561001357600080fd5b600090813560e01c90816317b6dd4214611a2b575080631906f343146119f857806333ae7166146119c65780633806153e146119945780633d8219c01461197057806343412cc71461194c57806346e21b32146117fd5780634b1740ad146117cb5780635db74a3c1461179857806360db259514611768578063624d11fc146117445780636318ac64146117235780636552ecd0146115d7578063715018a61461157d578063753014031461151257806384a1c23314611448578063885ab539146112f05780638da5cb5b146112c95780639d57c891146112ab578063b096d3f714611288578063b12277761461124b578063b5d8561d1461122d578063bb6b13a1146111fb578063be67fd0d146111dd578063c1623c4b146111b9578063c342cac314611179578063c80cb7461461115b578063cb4599f214611122578063d09ec9e614611104578063d6fc55d5146110d1578063dcaeb1ec1461036f578063de2231da14610342578063e0224f1d1461030f578063f2fde38b14610284578063f36c28d01461023b578063f4ed4c84146101f15763fd056ca9146101b857600080fd5b346101ee576101c636611a50565b600e5490929060081c6001600160a01b031633036101ea5760025560035560045580f35b8380fd5b80fd5b50346101ee5760203660031901126101ee5761020b611a6f565b610213611ddd565b600e8054610100600160a81b03191660089290921b610100600160a81b031691909117905580f35b50346101ee5760403660031901126101ee57602090604061025a611a6f565b6001600160a01b039081168352601684528183206024358452600601845291205460405191168152f35b50346101ee5760203660031901126101ee5761029e611a6f565b6102a6611ddd565b6001600160a01b039081169081156102f657600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b604051631e4fbdf760e01b815260048101849052602490fd5b50346101ee5761031e36611a50565b600e5490929060081c6001600160a01b031633036101ea57600855600955600a5580f35b50346101ee57806003193601126101ee57600e5460405160089190911c6001600160a01b03168152602090f35b5060203660031901126101ee576001600160401b03600435116101ee573660236004350112156101ee576001600160401b0360043560040135116101ee573660246004356004013560051b6004350101116101ee5760043560040135156101ee578080805b6004356004013581106104855750906103ed8183611d53565b340361048157816103fe8234611dd0565b036104815761040d8234611dd0565b0361047d57600f5482906001600160a01b0316803b1561047d5760046040518094819363162c2c8560e01b83525af180156104725761044a575080f35b6001600160401b03811161045e5760405280f35b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5080fd5b8280fd5b60248160051b60043501013560a2196004353603018112156110cd57608090816023198260043501360301126110b5576040519182018281106001600160401b038211176110b9576040526004358101602401356001600160a01b03811690036110b55760043581016024810135835260448101356020840152606401356001600160a01b03811690036110b55760043581016064810135604084015260840135906001600160401b0382116110b1576024610548923692600435010101611b8b565b9283606083015260018060a01b0382511690602083015192604060018060a01b03910151169060ff6006604051602081816105898c83815193849201611a85565b81016015815203019020015416610ee05782610ee9576105ad60ff600e5416611cb1565b8410610ee057836105ce6105d49260406105c684611e2d565b015190611d53565b97611d53565b947feb14371e70582d8c3341b2a0260f17a7ac85a3c8002c772320c2f16f9170d17a6040518061060a4243898989338a88611d78565b0390a18780808087865af13d15610ee4573d61062581611b70565b906106336040519283611b4f565b81528960203d92013e5b15610ee0577f0eaabebf9411ba535c3feed9fda5977b5a8d012c4592ac84f8e754dba6c5c80b604051806106774243898989338a88611d78565b0390a15b3388526016602052604088206106918154611dc1565b9055338852601660205260056040892060038101548a52016020526040882081516001600160401b038111610b95576106ca8254611bd2565b601f8111610e9f575b50806020601f8211600114610e3c578b91610e31575b508160011b916000199060031b1c19161790555b3388526016602052600360408920016107168154611dc1565b905533885260166020526004604089200180548015610e1f575b50503388526016602052600760408920018389526020526040882054801515600014610d755733895260166020526008908160408b2001818b5260205261077b8660408c2054611f24565b91338b52601660205260408b2001908a5260205260408920555b8188526016602052600160408920016107ae8154611dc1565b9055818852601660205260056040892060038101548a52016020526040882081516001600160401b038111610b95576107e78254611bd2565b601f8111610d34575b50806020601f8211600114610cd0578b91610cc5575b508160011b916000199060031b1c19161790555b8188526016602052600360408920016108338154611dc1565b905581885260166020526004604089200180548015610cb3575b50508188526016602052600760408920018389526020526040882054801515600014610c035782895260166020526008908160408b2001818b5260205261089b86600160408d200154611f24565b91848b52601660205260408b2001908a52602052600160408a2001555b60116108c48154611dc1565b9055338852601660205260ff600260408a2001541615610bd6575b81885260ff600260408a2001541615610ba9575b6012610900858254611f24565b905560405160208183516109178183858801611a85565b8101601581520301902081516001600160401b038111610b955761093b8254611bd2565b601f8111610b54575b5060208a601f8311600114610ac55792826001999896937fff92edf2dd5cb7bb1030305d47314b212c5e276ee511d3fa9f77b9576087b547989693610aae9691610aba575b50600019600383901b1c1916908a1b1790555b8760405160208184516109b28183858901611a85565b81016015815203019020016001600160601b0360a01b903382825416179055600260405160208185516109e88183858a01611a85565b810160158152030190200183828254161790558460036040516020818651610a138183858b01611a85565b8101601581520301902001918254161790558460046040516020818551610a3d8183858a01611a85565b81016015815203019020015560066040516020818451610a608183858901611a85565b81016015815203019020018860ff1982541617905560405160058251610a8a818460208701611a85565b82019160158352602081429403019020015560405194859442934393339088611d78565b0390a1019190916103d4565b905083015138610989565b83905260208b20908b5b601f1984168110610b3c5750926001837fff92edf2dd5cb7bb1030305d47314b212c5e276ee511d3fa9f77b9576087b547989693610aae96839c9b9996601f19811610610b23575b5050811b01905561099c565b85015160001960f88460031b161c191690553880610b17565b90916020600181928589015181550193019101610acf565b828b5260208b20601f830160051c810160208410610b8e575b601f830160051c82018110610b83575050610944565b8c8155600101610b6d565b5080610b6d565b634e487b7160e01b8a52604160045260248afd5b6014610bb58154611dc1565b9055818852601660205260408820600201805460ff191660011790556108f3565b6013610be28154611dc1565b9055338852601660205260408820600201805460ff191660011790556108df565b5081885260166020526040882060048101549060088091838c5201602052610c3286600160408d200154611f24565b90848b52601660205260408b2001828b52602052600160408b2001558289526016602052600660408a2001818a5260205260408920846001600160601b0360a01b8254161790558289526016602052600760408a2001848a526020526040892055818852601660205260046040892001610cac8154611dc1565b90556108b8565b610cbc90611dc1565b9055388061084d565b905083015138610806565b9150828b5260208b208b925b601f1983168410610d1c576001935082601f19811610610d03575b5050811b01905561081a565b85015160001960f88460031b161c191690553880610cf7565b85810151825560209384019360019092019101610cdc565b828b5260208b20601f830160051c810160208410610d6e575b601f830160051c82018110610d635750506107f0565b8c8155600101610d4d565b5080610d4d565b5033885260166020526040882060048101549060088091838c5201602052610da18660408c2054611f24565b90338b52601660205260408b2001828b5260205260408a20553389526016602052600660408a2001818a5260205260408920846001600160601b0360a01b8254161790553389526016602052600760408a2001848a526020526040892055338852601660205260046040892001610e188154611dc1565b9055610795565b610e2890611dc1565b90553880610730565b9050830151386106e9565b838c5260208c2091508b5b601f1984168110610e87575082601f19811610610e6e575b5050600190811b0190556106fd565b84015160001960f88460031b161c191690553880610e5f565b90916020600181928589015181550193019101610e47565b828b5260208b20601f830160051c810160208410610ed9575b601f830160051c82018110610ece5750506106d3565b8c8155600101610eb8565b5080610eb8565b8780fd5b61063d565b601054959695610ef891611d53565b9560405163313ce56760e01b8152602081600481875afa801561104557899061106f575b610f269150611cb1565b8410610ee0576040516323b872dd60e01b8152336004820152306024820152604481018590526020816064818c885af1908115611045578991611050575b5015610ee0577feb14371e70582d8c3341b2a0260f17a7ac85a3c8002c772320c2f16f9170d17a60405180610f9f4243898989338a88611d78565b0390a160405163a9059cbb60e01b81528260048201528460248201526020816044818c885af1908115611045578991611016575b5015610ee0577f0eaabebf9411ba535c3feed9fda5977b5a8d012c4592ac84f8e754dba6c5c80b6040518061100e4243898989338a88611d78565b0390a161067b565b611038915060203d60201161103e575b6110308183611b4f565b810190611d60565b38610fd3565b503d611026565b6040513d8b823e3d90fd5b611069915060203d60201161103e576110308183611b4f565b38610f64565b506020813d6020116110a9575b8161108960209383611b4f565b810103126110a5575160ff811681036110a557610f2690610f1c565b8880fd5b3d915061107c565b8680fd5b8580fd5b634e487b7160e01b87526041600452602487fd5b8480fd5b50346101ee576110e036611a50565b600e5490929060081c6001600160a01b031633036101ea57600b55600c55600d5580f35b50346101ee57806003193601126101ee576020601354604051908152f35b50346101ee5760203660031901126101ee576020906040906001600160a01b0361114a611a6f565b168152601683522054604051908152f35b50346101ee57806003193601126101ee576020601054604051908152f35b50346101ee5760203660031901126101ee57611193611a6f565b61119b611ddd565b60018060a01b03166001600160601b0360a01b600f541617600f5580f35b50346101ee576111c836611a50565b916111d1611ddd565b600b55600c55600d5580f35b50346101ee57806003193601126101ee576020601454604051908152f35b50346101ee57806003193601126101ee5760025460035460045460408051938452602084019290925290820152606090f35b50346101ee57806003193601126101ee576020601254604051908152f35b50346101ee5760203660031901126101ee576020906001906040906001600160a01b03611276611a6f565b16815260168452200154604051908152f35b50346101ee5760203660031901126101ee576112a2611ddd565b60043560105580f35b50346101ee57806003193601126101ee576020601154604051908152f35b50346101ee57806003193601126101ee57546040516001600160a01b039091168152602090f35b50346101ee5760208060031936011261047d576001600160a01b03611313611a6f565b1691828152601680835260046040832001549061132f82611d12565b9461133d6040519687611b4f565b82865261134983611d12565b601f190185855b82811061142657505050826113a9575b505050916040519180830190808452825180925280604085019301945b82811061138a5784840385f35b855180518552820151848301529481019460409093019260010161137d565b835b8381106113b85750611360565b818552828652600860408620016001908183018084116114125787528752604080872090516001939290916113ec83611b19565b80548352015488820152611400828a611d29565b5261140b8189611d29565b50016113ab565b634e487b7160e01b88526011600452602488fd5b60405161143281611b19565b878152878382015282828b010152018690611350565b50346101ee5760203660031901126101ee57600435906001600160401b0382116101ee576114ed61149460206114813660048701611b8b565b8160405193828580945193849201611a85565b810160158152030190206114a781611c0c565b9060018060a01b038060018301541691816002820154169160038201541660048201549060ff60066005850154940154169360405197889760e0895260e0890190611aa8565b95602088015260408701526060860152608085015260a0840152151560c08301520390f35b50346101ee5760203660031901126101ee5760a0906040906001600160a01b0361153a611a6f565b16815260166020522080549060018101549060ff600282015416600460038301549201549260405194855260208501521515604084015260608301526080820152f35b50346101ee57806003193601126101ee57611596611ddd565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ee57602090816003193601126101ee576004356001600160401b03811161047d576116549161160f84923690600401611b8b565b9060c060405161161e81611afe565b6060815282858201528260408201528260608201528260808201528260a082015201528160405193828580945193849201611a85565b81016015815203019020906040519161166c83611afe565b61167581611c0c565b835260018060a01b038060018301541691838501928352816002820154169160408601928352806003830154169060608701918252600483015491608088019283528160ff600660058701549660a08c019788520154169560c08a019615158752816116f58a60e06040519d8e9d8e5251918d01526101008c0190611aa8565b98511660408a015251166060880152511660808601525160a08501525160c084015251151560e08301520390f35b50346101ee57806003193601126101ee57602060ff600e5416604051908152f35b50346101ee5761175336611a50565b9161175c611ddd565b60055560065560075580f35b50346101ee5760203660031901126101ee57600e5460081c6001600160a01b031633036101ee5760043560105580f35b50346101ee576117a736611a50565b600e5490929060081c6001600160a01b031633036101ea5760055560065560075580f35b50346101ee57806003193601126101ee57600854600954600a5460408051938452602084019290925290820152606090f35b50346101ee5760208060031936011261047d576001600160a01b03611820611a6f565b16808352601680835260036040852001549061183b82611d12565b926118496040519485611b4f565b82845261185583611d12565b601f190185875b82811061192e57505050826118d3575b50506040805184815283518186018190529094600582901b860183019481019350909185015b82871061189f5785850386f35b9091929382806118c3600193603f198a820301865282895151918181520190611aa8565b9601920196019592919092611892565b855b8381106118e2575061186c565b600190828852838752600560408920018189528752604088206119106040519161190b83611acd565b611c0c565b815261191c8288611d29565b526119278187611d29565b50016118d5565b60405161193a81611acd565b6060815282828901015201869061185c565b50346101ee5761195b36611a50565b91611964611ddd565b600855600955600a5580f35b50346101ee5761197f36611a50565b91611988611ddd565b60025560035560045580f35b50346101ee57806003193601126101ee5760055460065460075460408051938452602084019290925290820152606090f35b50346101ee57806003193601126101ee57600b54600c54600d5460408051938452602084019290925290820152606090f35b50346101ee5760203660031901126101ee576004359060ff821682036101ee576020611a2383611cb1565b604051908152f35b90503461047d578160031936011261047d57600f546001600160a01b03168152602090f35b6060906003190112611a6a57600435906024359060443590565b600080fd5b600435906001600160a01b0382168203611a6a57565b60005b838110611a985750506000910152565b8181015183820152602001611a88565b90602091611ac181518092818552858086019101611a85565b601f01601f1916010190565b602081019081106001600160401b03821117611ae857604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b03821117611ae857604052565b604081019081106001600160401b03821117611ae857604052565b606081019081106001600160401b03821117611ae857604052565b90601f801991011681019081106001600160401b03821117611ae857604052565b6001600160401b038111611ae857601f01601f191660200190565b81601f82011215611a6a57803590611ba282611b70565b92611bb06040519485611b4f565b82845260208383010111611a6a57816000926020809301838601378301015290565b90600182811c92168015611c02575b6020831014611bec57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611be1565b90604051918260008254611c1f81611bd2565b90818452602094600191600181169081600014611c8f5750600114611c50575b505050611c4e92500383611b4f565b565b600090815285812095935091905b818310611c77575050611c4e9350820101388080611c3f565b85548884018501529485019487945091830191611c5e565b92505050611c4e94925060ff191682840152151560051b820101388080611c3f565b60ff168015611d0c5760018114611d0c5760028114611d0c576003811015611cd95750600190565b6002190160ff8111611cf65760ff16604d8111611cf657600a0a90565b634e487b7160e01b600052601160045260246000fd5b50600190565b6001600160401b038111611ae85760051b60200190565b8051821015611d3d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b91908201809211611cf657565b90816020910312611a6a57518015158103611a6a5790565b93611d9360c09693999897949260e0875260e0870190611aa8565b6001600160a01b03998a16602087015291891660408601529097166060840152608083015260a08201520152565b6000198114611cf65760010190565b91908203918211611cf657565b6000546001600160a01b03163303611df157565b60405163118cdaa760e01b8152336004820152602490fd5b60405190611e1682611b34565b600254825260035460208301526004546040830152565b60406000818051611e3d81611b34565b828152826020820152015260025482101580611f18575b611f0e576005548083101580611f02575b611ee157506008548083101580611ed5575b611eb45750600b5480921015611e94575050611e91611e09565b90565b805191611ea083611b34565b8252600c546020830152600d549082015290565b81519250611ec183611b34565b82526009546020830152600a549082015290565b50600954831115611e77565b81519250611eee83611b34565b825260065460208301526007549082015290565b50600654831115611e65565b5050611e91611e09565b50600354821115611e54565b90611f3182600154611dd0565b811115611f3c575090565b611e9191611d5356fea2646970667358221220cad176d826a3647c815efba4a7fdbe56caa2c62c13a19b4c2cae612b46a474c964736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000883ba282d409e0e984bef70b338f641d0045942f0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000138a388a43c0000000000000000000000000000000000000000000000000000009c51c4521e0000000000000000000000000000000000000000000000000000061a1573a1adf8000000000000000000000000000000000000000000000000003c788179e42af00000000000000000000000000000000000000000000000000064c8eabdca610800000000000000000000000000000000000000000000000021e19e0c9bab23fffff00000000000000000000000000000000000000000000152d02c7e14af67fffff00000000000000000000000000000000000000000000d3c21bcecceda0ffffff
-----Decoded View---------------
Arg [0] : _omnifyAddress (address): 0x883bA282D409e0E984Bef70B338f641D0045942F
Arg [1] : _paramNativeDecimals (uint8): 18
Arg [2] : _paramAltcoinFee (uint256): 1408000000000000000
Arg [3] : _paramTier1Fee (uint256): 704000000000000000
Arg [4] : _paramtier2Fee (uint256): 7035000000000000000
Arg [5] : _paramTier3Fee (uint256): 69718000000000000000
Arg [6] : _paramTier4Fee (uint256): 116197000000000000000
Arg [7] : _paramTier1HigherThreshold (uint256): 9999999999999999999999
Arg [8] : _paramTier2HigherThreshold (uint256): 99999999999999999999999
Arg [9] : _paramTier3HigherThreshold (uint256): 999999999999999999999999
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 000000000000000000000000883ba282d409e0e984bef70b338f641d0045942f
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [2] : 000000000000000000000000000000000000000000000000138a388a43c00000
Arg [3] : 00000000000000000000000000000000000000000000000009c51c4521e00000
Arg [4] : 00000000000000000000000000000000000000000000000061a1573a1adf8000
Arg [5] : 000000000000000000000000000000000000000000000003c788179e42af0000
Arg [6] : 0000000000000000000000000000000000000000000000064c8eabdca6108000
Arg [7] : 00000000000000000000000000000000000000000000021e19e0c9bab23fffff
Arg [8] : 00000000000000000000000000000000000000000000152d02c7e14af67fffff
Arg [9] : 00000000000000000000000000000000000000000000d3c21bcecceda0ffffff
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.