Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 452 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Subscribe | 23647217 | 23 hrs ago | IN | 0 ETH | 0.00012932 | ||||
| Subscribe | 23647005 | 24 hrs ago | IN | 0 ETH | 0.00012843 | ||||
| Subscribe | 23646691 | 25 hrs ago | IN | 0 ETH | 0.0000369 | ||||
| Subscribe | 23645608 | 29 hrs ago | IN | 0 ETH | 0.00012886 | ||||
| Subscribe | 23644740 | 32 hrs ago | IN | 0 ETH | 0.00003731 | ||||
| Subscribe | 23639893 | 2 days ago | IN | 0 ETH | 0.0000073 | ||||
| Subscribe | 23639857 | 2 days ago | IN | 0 ETH | 0.0000065 | ||||
| Subscribe | 23639754 | 2 days ago | IN | 0 ETH | 0.00000646 | ||||
| Redeem | 23639254 | 2 days ago | IN | 0 ETH | 0.0000594 | ||||
| Redeem | 23637538 | 2 days ago | IN | 0 ETH | 0.00000618 | ||||
| Subscribe | 23630057 | 3 days ago | IN | 0 ETH | 0.00010582 | ||||
| Subscribe | 23624825 | 4 days ago | IN | 0 ETH | 0.00000741 | ||||
| Subscribe | 23624782 | 4 days ago | IN | 0 ETH | 0.00001241 | ||||
| Subscribe | 23624405 | 4 days ago | IN | 0 ETH | 0.00000692 | ||||
| Subscribe | 23624376 | 4 days ago | IN | 0 ETH | 0.00000687 | ||||
| Subscribe | 23624338 | 4 days ago | IN | 0 ETH | 0.0000066 | ||||
| Redeem | 23610537 | 6 days ago | IN | 0 ETH | 0.00006682 | ||||
| Subscribe | 23608719 | 6 days ago | IN | 0 ETH | 0.00010562 | ||||
| Subscribe | 23605954 | 6 days ago | IN | 0 ETH | 0.0000161 | ||||
| Redeem | 23589089 | 9 days ago | IN | 0 ETH | 0.00006038 | ||||
| Redeem | 23581924 | 10 days ago | IN | 0 ETH | 0.000126 | ||||
| Redeem | 23574808 | 11 days ago | IN | 0 ETH | 0.00019692 | ||||
| Redeem | 23561243 | 13 days ago | IN | 0 ETH | 0.00005304 | ||||
| Subscribe | 23538601 | 16 days ago | IN | 0 ETH | 0.00000793 | ||||
| Subscribe | 23531798 | 17 days ago | IN | 0 ETH | 0.00004028 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SubRedManagement
Compiler Version
v0.8.16+commit.07a7930e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.16;
import "./libraries/TransferHelper.sol";
import "./interfaces/IManagement.sol";
import "./interfaces/IExchangeWallet.sol";
contract SubRedManagement {
address public management;
address public immutable exchangeWallet;
string public constant name = "SubRedManagement";
mapping(address => uint) public platformFee;
event Subscribe(
address indexed from,
address stToken,
address currencyToken,
address investor,
uint amount
);
event Redeem(
address indexed from,
address stToken,
address currencyToken,
address investor,
uint quantity
);
event RefundInvestorTokens(
address indexed from,
address[] tokenList,
address[] investorList,
uint[] amountList
);
event SettleSubscriber(
address indexed from,
address stToken,
address[] investorList,
uint[] quantityList,
address[] currencyTokenList,
uint[] amountList,
uint[] feeList
);
event SettleRedemption(
address indexed from,
address stToken,
address[] investorList,
uint[] quantityList,
address[] currencyTokenList,
uint[] amountList,
uint[] feeList
);
event TransferFund(
address indexed from,
address[] tokenList,
address[] recipientList,
uint256[] quantityList
);
event IssuerRefundFund(
address indexed from,
string issueId,
address[] tokenList,
uint[] amountList
);
event SetFeeForIssuer(
address indexed from,
string issueId,
address[] tokenList,
uint[] feeList
);
event SetManagement(address indexed from, address management);
event TransferPlatformFee(
address indexed from,
address indexed token,
uint amount
);
modifier ensure(uint deadline) {
require(deadline >= block.timestamp, "Expired");
_;
}
modifier onlyManagement() {
require(msg.sender == management, "Caller is not management");
_;
}
modifier onlyContractManager() {
require(
IManagement(management).isContractManager(msg.sender),
"Caller is not contract manager"
);
_;
}
modifier onlyWhiteInvestor(address investor) {
require(
IManagement(management).isWhiteInvestor(investor),
"Investor is not white investor"
);
_;
}
modifier onlyPlatformInvestor(address investor) {
require(
IManagement(management).isWhiteInvestor(investor) ||
IManagement(management).isRestrictInvestor(investor),
"Investor is not platform investor"
);
_;
}
constructor(address _management, address _exchangeWallet) {
require(_management != address(0));
require(_exchangeWallet != address(0));
management = _management;
exchangeWallet = _exchangeWallet;
}
/**
* @dev 发起申购,平台投资者向合约转入UT进行申购
*
* @param stToken 对应ST代币地址
* @param currencyToken 用于购买ST代币的货币代币地址
* @param amount 支付的金额数量
* @param _deadline 交易的截止时间
* 注意事项:
* - 交易必须在截止时间之前完成
* - 调用者必须是白名单用户
*
*/
function subscribe(
address stToken,
address currencyToken,
uint amount,
uint _deadline
) external ensure(_deadline) onlyWhiteInvestor(msg.sender) {
require(amount > 0, "The subscription amount cannot be zero");
TransferHelper.safeTransferFrom(
currencyToken,
msg.sender,
address(this),
amount
);
emit Subscribe(
address(this),
stToken,
currencyToken,
msg.sender,
amount
);
}
/**
* @dev 发起赎回,平台投资者向合约转入ST进行赎回
*
* @param stToken 代币地址
* @param currencyToken 结算的法币地址
* @param quantity 注入的代币数量
* @param deadline 过期时间
*
* Requirements:
* - 只有平台投资者才能调用该函数
* - 该ST要支持赎回
* - 代币数量必须大于0
*
* Emits:
* - Redeem: 成功注入资金时触发此事件
*/
function redeem(
address stToken,
address currencyToken,
uint quantity,
uint deadline
) external ensure(deadline) onlyPlatformInvestor(msg.sender) {
require(quantity > 0, "quantity > 0");
TransferHelper.safeTransferFrom(
stToken,
msg.sender,
address(this),
quantity
);
emit Redeem(
address(this),
stToken,
currencyToken,
msg.sender,
quantity
);
}
/**
* @dev 认购/赎回取消,用于特殊情况下将资金退回给投资者
*
* @param tokenList 需要退回的代币的地址
* @param investorList 需要退回代币的投资者地址
* @param amountList 每个投资者需要退回的代币金额
*
* Requirements:
* - 只有合约管理员才能调用该函数
* - UT的转入地址 investorList 必须是白名单用户
*/
function refundInvestorTokens(
address[] memory tokenList,
address[] memory investorList,
uint[] memory amountList
) external onlyContractManager {
for (uint i = 0; i < investorList.length; i++) {
require(
IManagement(management).isWhiteInvestor(investorList[i]),
"Investor is not white investor"
);
TransferHelper.safeTransfer(
tokenList[i],
investorList[i],
amountList[i]
);
}
emit RefundInvestorTokens(
address(this),
tokenList,
investorList,
amountList
);
}
/**
* @dev 将指定数量的ERC20代币转移到允许的地址,用于线下换币和结算发行人转移UT
*
* @param tokenList ERC20代币的地址
* @param recipientList 接收代币的投资者地址
* @param quantityList 要转移的代币数量
* Requirements:
* - 只有合约管理员才能调用该函数
* - recipient必须是允许的地址
*
*/
function transferFund(
address[] memory tokenList,
address[] memory recipientList,
uint256[] memory quantityList
) external onlyContractManager {
for (uint i = 0; i < tokenList.length; i++) {
require(
recipientList[i] == exchangeWallet ||
IExchangeWallet(exchangeWallet).isAllowedAddress(
recipientList[i]
),
"This address is not allow address"
);
TransferHelper.safeTransfer(
tokenList[i],
recipientList[i],
quantityList[i]
);
}
emit TransferFund(
address(this),
tokenList,
recipientList,
quantityList
);
}
/**
* @dev 用于发行人退还未用完的UT/ST,赎回转入UT。
*
* @param issueId 对应发行的项目id
* @param tokenList 代币地址列表
* @param amountList 代币数量列表
*
* Emits:
* - IssuerRefundFund: 当发行人退款或赎回时触发。
*/
function issuerRefundFund(
string memory issueId,
address[] memory tokenList,
uint[] memory amountList
) external {
for (uint256 i = 0; i < tokenList.length; i++) {
TransferHelper.safeTransferFrom(
tokenList[i],
msg.sender,
address(this),
amountList[i]
);
}
emit IssuerRefundFund(address(this), issueId, tokenList, amountList);
}
/**
* @dev 用于发行结算投资人,包括向用户转移ST,退还未使用完的代币,以及记录手续费。
* @param stToken ST 代币的地址。
* @param investorList 投资者地址列表。
* @param quantityList 向每个投资者转移的 ST 代币数量列表。
* @param currencyTokenList 代币地址列表。
* @param amountList 退还每个投资者的未使用代币数量列表。
* @param feeList 每个投资者申购产生的手续费。
*
* Requirements:
* - 只有合约管理员可以调用此函数。
* - 投资者必须是白名单上的投资者。
*
* Emits:
* - SettleSubscriber: 当发行结算成功时触发。
*/
function settleSubscriber(
address stToken,
address[] memory investorList,
uint[] memory quantityList,
address[] memory currencyTokenList,
uint[] memory amountList,
uint[] memory feeList
) external onlyContractManager {
for (uint256 i = 0; i < investorList.length; i++) {
require(
IManagement(management).isWhiteInvestor(investorList[i]),
"Investor is not white investor"
);
if (quantityList[i] > 0) {
TransferHelper.safeTransfer(
stToken,
investorList[i],
quantityList[i]
);
}
if (amountList[i]> 0) {
TransferHelper.safeTransfer(
currencyTokenList[i],
investorList[i],
amountList[i]
);
}
platformFee[currencyTokenList[i]] += feeList[i];
}
emit SettleSubscriber(
address(this),
stToken,
investorList,
quantityList,
currencyTokenList,
amountList,
feeList
);
}
/**
* @dev 每日赎回结算,用于将ST/UT代币转给投资者
* @param stToken ST 代币的地址。
* @param investorList 投资者地址列表。
* @param quantityList 退回投资者部分未赎回的ST。
* @param currencyTokenList 代币地址列表。
* @param amountList 投资者赎回ST得到UT的数量列表。
* @param feeList 投资者赎回时产生的手续费列表。
* Requirements:
* - 只有合约管理员才能调用该函数
*
* Emits:
* - SettleRedemption: 成功将ST代币和UT代币退回给投资者时触发此事件
*/
function settleRedemption(
address stToken,
address[] memory investorList,
uint[] memory quantityList,
address[] memory currencyTokenList,
uint[] memory amountList,
uint[] memory feeList
) external onlyContractManager {
for (uint256 i = 0; i < currencyTokenList.length; i++) {
require(
IManagement(management).isWhiteInvestor(investorList[i]) ||
IManagement(management).isRestrictInvestor(investorList[i]),
"Investor is not platform investor"
);
if (quantityList[i] > 0) {
TransferHelper.safeTransfer(
stToken,
investorList[i],
quantityList[i]
);
}
if (amountList[i] - feeList[i] > 0) {
TransferHelper.safeTransfer(
currencyTokenList[i],
investorList[i],
amountList[i] -= feeList[i]
);
}
platformFee[currencyTokenList[i]] += feeList[i];
}
emit SettleRedemption(
address(this),
stToken,
investorList,
quantityList,
currencyTokenList,
amountList,
feeList
);
}
/**
* @dev 设置平台手续费
*
* @param issueId 对应发行的项目id
* @param tokenList 货币代币的地址
* @param feeList 设置的手续费金额
* Requirements:
* - 只有合约管理员才能调用该函数
*
* Emits:
* - SetFeeForIssuer: 成功设置平台手续费时触发此事件
*/
function setFeeForIssuer(
string memory issueId,
address[] memory tokenList,
uint[] memory feeList
) external onlyContractManager {
for (uint256 i = 0; i < tokenList.length; i++) {
platformFee[tokenList[i]] += feeList[i];
}
emit SetFeeForIssuer(address(this), issueId, tokenList, feeList);
}
function setManagement(address _management) external onlyManagement {
require(_management != address(0), "address cannot be address(0)");
management = _management;
emit SetManagement(address(this), _management);
}
function transferPlatformFee(address currencyToken, uint amount)
external
onlyContractManager
{
address feeAddress = IManagement(management).platformFeeAddress();
require(
platformFee[currencyToken] >= amount,
"PlatformFee is not enough"
);
platformFee[currencyToken] -= amount;
require(feeAddress != address(0), "address cannot be address(0)");
TransferHelper.safeTransfer(currencyToken, feeAddress, amount);
emit TransferPlatformFee(address(this), currencyToken, amount);
}
}// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.16;
interface IExchangeWallet {
function isAllowedAddress(address addr) external view returns (bool);
}// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.16;
interface IManagement {
function platformFeeAddress() external view returns (address);
function isContractManager(address manager) external view returns (bool);
function isWhiteInvestor(address investor) external view returns (bool);
function isRestrictInvestor(address investor) external view returns (bool);
function isWhiteContract(address contractAddress) external view returns (bool);
function isBlockInvestor(address investor) external view returns (bool);
}// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.16;
//Token Transfer Library
// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
library TransferHelper {
function safeTransfer(
address token,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('transfer(address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
require(
success && (data.length == 0 || abi.decode(data, (bool))),
'TransferHelper::safeTransfer: transfer failed'
);
}
function safeTransferFrom(
address token,
address from,
address to,
uint256 value
) internal {
// bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
require(
success && (data.length == 0 || abi.decode(data, (bool))),
'TransferHelper::transferFrom: transferFrom failed'
);
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_management","type":"address"},{"internalType":"address","name":"_exchangeWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"string","name":"issueId","type":"string"},{"indexed":false,"internalType":"address[]","name":"tokenList","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"amountList","type":"uint256[]"}],"name":"IssuerRefundFund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"stToken","type":"address"},{"indexed":false,"internalType":"address","name":"currencyToken","type":"address"},{"indexed":false,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address[]","name":"tokenList","type":"address[]"},{"indexed":false,"internalType":"address[]","name":"investorList","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"amountList","type":"uint256[]"}],"name":"RefundInvestorTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"string","name":"issueId","type":"string"},{"indexed":false,"internalType":"address[]","name":"tokenList","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"feeList","type":"uint256[]"}],"name":"SetFeeForIssuer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"management","type":"address"}],"name":"SetManagement","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"stToken","type":"address"},{"indexed":false,"internalType":"address[]","name":"investorList","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"quantityList","type":"uint256[]"},{"indexed":false,"internalType":"address[]","name":"currencyTokenList","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"amountList","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"feeList","type":"uint256[]"}],"name":"SettleRedemption","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"stToken","type":"address"},{"indexed":false,"internalType":"address[]","name":"investorList","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"quantityList","type":"uint256[]"},{"indexed":false,"internalType":"address[]","name":"currencyTokenList","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"amountList","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"feeList","type":"uint256[]"}],"name":"SettleSubscriber","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"stToken","type":"address"},{"indexed":false,"internalType":"address","name":"currencyToken","type":"address"},{"indexed":false,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Subscribe","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address[]","name":"tokenList","type":"address[]"},{"indexed":false,"internalType":"address[]","name":"recipientList","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"quantityList","type":"uint256[]"}],"name":"TransferFund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferPlatformFee","type":"event"},{"inputs":[],"name":"exchangeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"issueId","type":"string"},{"internalType":"address[]","name":"tokenList","type":"address[]"},{"internalType":"uint256[]","name":"amountList","type":"uint256[]"}],"name":"issuerRefundFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"management","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"platformFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"stToken","type":"address"},{"internalType":"address","name":"currencyToken","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokenList","type":"address[]"},{"internalType":"address[]","name":"investorList","type":"address[]"},{"internalType":"uint256[]","name":"amountList","type":"uint256[]"}],"name":"refundInvestorTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"issueId","type":"string"},{"internalType":"address[]","name":"tokenList","type":"address[]"},{"internalType":"uint256[]","name":"feeList","type":"uint256[]"}],"name":"setFeeForIssuer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_management","type":"address"}],"name":"setManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stToken","type":"address"},{"internalType":"address[]","name":"investorList","type":"address[]"},{"internalType":"uint256[]","name":"quantityList","type":"uint256[]"},{"internalType":"address[]","name":"currencyTokenList","type":"address[]"},{"internalType":"uint256[]","name":"amountList","type":"uint256[]"},{"internalType":"uint256[]","name":"feeList","type":"uint256[]"}],"name":"settleRedemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stToken","type":"address"},{"internalType":"address[]","name":"investorList","type":"address[]"},{"internalType":"uint256[]","name":"quantityList","type":"uint256[]"},{"internalType":"address[]","name":"currencyTokenList","type":"address[]"},{"internalType":"uint256[]","name":"amountList","type":"uint256[]"},{"internalType":"uint256[]","name":"feeList","type":"uint256[]"}],"name":"settleSubscriber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stToken","type":"address"},{"internalType":"address","name":"currencyToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"subscribe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokenList","type":"address[]"},{"internalType":"address[]","name":"recipientList","type":"address[]"},{"internalType":"uint256[]","name":"quantityList","type":"uint256[]"}],"name":"transferFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"currencyToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferPlatformFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60a06040523480156200001157600080fd5b50604051620020bd380380620020bd83398101604081905262000034916200009f565b6001600160a01b0382166200004857600080fd5b6001600160a01b0381166200005c57600080fd5b600080546001600160a01b0319166001600160a01b0393841617905516608052620000d7565b80516001600160a01b03811681146200009a57600080fd5b919050565b60008060408385031215620000b357600080fd5b620000be8362000082565b9150620000ce6020840162000082565b90509250929050565b608051611fbc62000101600039600081816101b501528181610ed70152610f2b0152611fbc6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063579d1eaa1161008c578063c6ce412f11610066578063c6ce412f14610228578063d4a22bde1461023b578063d80f07111461024e578063f9b1cf2a1461026157600080fd5b8063579d1eaa146101ef5780637fb801be1461020257806388a8d6021461021557600080fd5b80633f79651d116100c85780633f79651d1461017757806349e664ff1461018a5780634be474181461019d57806355ef1df2146101b057600080fd5b80630535f372146100ef57806306fdde03146101045780631ec0c7f714610149575b600080fd5b6101026100fd366004611883565b610274565b005b6101336040518060400160405280601081526020016f14dd5894995913585b9859d95b595b9d60821b81525081565b60405161014091906118ff565b60405180910390f35b610169610157366004611919565b60016020526000908152604090205481565b604051908152602001610140565b610102610185366004611a70565b6104bb565b610102610198366004611b4c565b610619565b6101026101ab366004611c2d565b610903565b6101d77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610140565b6101026101fd366004611c73565b610ad9565b610102610210366004611c2d565b610cbf565b6000546101d7906001600160a01b031681565b610102610236366004611c73565b610e41565b610102610249366004611919565b611099565b61010261025c366004611b4c565b61119f565b61010261026f366004611a70565b611552565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa1580156102bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e09190611cc2565b6103055760405162461bcd60e51b81526004016102fc90611ce4565b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663ed14834f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037d9190611d1b565b6001600160a01b0384166000908152600160205260409020549091508211156103e85760405162461bcd60e51b815260206004820152601960248201527f506c6174666f726d466565206973206e6f7420656e6f7567680000000000000060448201526064016102fc565b6001600160a01b03831660009081526001602052604081208054849290610410908490611d4e565b90915550506001600160a01b03811661046b5760405162461bcd60e51b815260206004820152601c60248201527f616464726573732063616e6e6f7420626520616464726573732830290000000060448201526064016102fc565b6104768382846115ec565b6040518281526001600160a01b0384169030907f9b0df163d8b0c72dee837ba1552888da4c9ed990e7db3be73feec14c637fbf389060200160405180910390a3505050565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611cc2565b6105435760405162461bcd60e51b81526004016102fc90611ce4565b60005b82518110156105ce5781818151811061056157610561611d67565b60200260200101516001600085848151811061057f5761057f611d67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546105b69190611d7d565b909155508190506105c681611d90565b915050610546565b50306001600160a01b03167f2ba2e85925c907cd190b5163decba0e54776d9f57b722ac00c71c923482109e384848460405161060c93929190611e1d565b60405180910390a2505050565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa158015610661573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106859190611cc2565b6106a15760405162461bcd60e51b81526004016102fc90611ce4565b60005b85518110156108af5760005486516001600160a01b0390911690630cce6758908890849081106106d6576106d6611d67565b60200260200101516040518263ffffffff1660e01b815260040161070991906001600160a01b0391909116815260200190565b602060405180830381865afa158015610726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074a9190611cc2565b6107665760405162461bcd60e51b81526004016102fc90611e60565b600085828151811061077a5761077a611d67565b602002602001015111156107c5576107c58787838151811061079e5761079e611d67565b60200260200101518784815181106107b8576107b8611d67565b60200260200101516115ec565b60008382815181106107d9576107d9611d67565b60200260200101511115610830576108308482815181106107fc576107fc611d67565b602002602001015187838151811061081657610816611d67565b60200260200101518584815181106107b8576107b8611d67565b81818151811061084257610842611d67565b60200260200101516001600086848151811061086057610860611d67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546108979190611d7d565b909155508190506108a781611d90565b9150506106a4565b50306001600160a01b03167f27107ee7622d58a260ded013cac8dea85f6d4c3bf0be25357e4026fff1d79fc58787878787876040516108f396959493929190611e97565b60405180910390a2505050505050565b804281101561093e5760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b60448201526064016102fc565b600054604051630199cceb60e31b81523360048201819052916001600160a01b031690630cce675890602401602060405180830381865afa158015610987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ab9190611cc2565b80610a1f575060005460405163b09c4d3d60e01b81526001600160a01b0383811660048301529091169063b09c4d3d90602401602060405180830381865afa1580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f9190611cc2565b610a3b5760405162461bcd60e51b81526004016102fc90611f16565b60008411610a7a5760405162461bcd60e51b815260206004820152600c60248201526b07175616e74697479203e20360a41b60448201526064016102fc565b610a868633308761171d565b604080516001600160a01b0388811682528716602082015233918101919091526060810185905230907f5bbdbda0aab16ad9afcb044274821113d598c3f7483e825d7e6d3d09ae8de880906080016108f3565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190611cc2565b610b615760405162461bcd60e51b81526004016102fc90611ce4565b60005b8251811015610c815760005483516001600160a01b0390911690630cce675890859084908110610b9657610b96611d67565b60200260200101516040518263ffffffff1660e01b8152600401610bc991906001600160a01b0391909116815260200190565b602060405180830381865afa158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a9190611cc2565b610c265760405162461bcd60e51b81526004016102fc90611e60565b610c6f848281518110610c3b57610c3b611d67565b6020026020010151848381518110610c5557610c55611d67565b60200260200101518484815181106107b8576107b8611d67565b80610c7981611d90565b915050610b64565b50306001600160a01b03167ff0881eb2e0fe89f9d1c69f313b9766226bf8065d14919b4bb722661cfdf2732084848460405161060c93929190611f57565b8042811015610cfa5760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b60448201526064016102fc565b600054604051630199cceb60e31b81523360048201819052916001600160a01b031690630cce675890602401602060405180830381865afa158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d679190611cc2565b610d835760405162461bcd60e51b81526004016102fc90611e60565b60008411610de25760405162461bcd60e51b815260206004820152602660248201527f54686520737562736372697074696f6e20616d6f756e742063616e6e6f74206260448201526565207a65726f60d01b60648201526084016102fc565b610dee8533308761171d565b604080516001600160a01b0388811682528716602082015233918101919091526060810185905230907f85e11623cf3455bd06de236e6eb13e21a2e641a61b12b9b3737cf28297b2d19b906080016108f3565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190611cc2565b610ec95760405162461bcd60e51b81526004016102fc90611ce4565b60005b835181101561105b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316838281518110610f1157610f11611d67565b60200260200101516001600160a01b03161480610fde57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638345245e848381518110610f6a57610f6a611d67565b60200260200101516040518263ffffffff1660e01b8152600401610f9d91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610fba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fde9190611cc2565b6110345760405162461bcd60e51b815260206004820152602160248201527f546869732061646472657373206973206e6f7420616c6c6f77206164647265736044820152607360f81b60648201526084016102fc565b611049848281518110610c3b57610c3b611d67565b8061105381611d90565b915050610ecc565b50306001600160a01b03167ffe789f6ce632164f87348b8f772616fc93bde63328877e32af37a98e5a77976784848460405161060c93929190611f57565b6000546001600160a01b031633146110f35760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f74206d616e6167656d656e74000000000000000060448201526064016102fc565b6001600160a01b0381166111495760405162461bcd60e51b815260206004820152601c60248201527f616464726573732063616e6e6f7420626520616464726573732830290000000060448201526064016102fc565b600080546001600160a01b0319166001600160a01b03831690811790915560405190815230907fec5837e83167d921ae298e99f5817184e912c981aa8a38307cb2d976c019fae69060200160405180910390a250565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa1580156111e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120b9190611cc2565b6112275760405162461bcd60e51b81526004016102fc90611ce4565b60005b835181101561150e5760005486516001600160a01b0390911690630cce67589088908490811061125c5761125c611d67565b60200260200101516040518263ffffffff1660e01b815260040161128f91906001600160a01b0391909116815260200190565b602060405180830381865afa1580156112ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d09190611cc2565b80611373575060005486516001600160a01b039091169063b09c4d3d908890849081106112ff576112ff611d67565b60200260200101516040518263ffffffff1660e01b815260040161133291906001600160a01b0391909116815260200190565b602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113739190611cc2565b61138f5760405162461bcd60e51b81526004016102fc90611f16565b60008582815181106113a3576113a3611d67565b602002602001015111156113c7576113c78787838151811061079e5761079e611d67565b60008282815181106113db576113db611d67565b60200260200101518483815181106113f5576113f5611d67565b60200260200101516114079190611d4e565b111561148f5761148f84828151811061142257611422611d67565b602002602001015187838151811061143c5761143c611d67565b602002602001015184848151811061145657611456611d67565b602002602001015186858151811061147057611470611d67565b602002602001018181516114849190611d4e565b9150818152506115ec565b8181815181106114a1576114a1611d67565b6020026020010151600160008684815181106114bf576114bf611d67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546114f69190611d7d565b9091555081905061150681611d90565b91505061122a565b50306001600160a01b03167f078201b4fddebeb020e52d5999827843599e0ae133d7f8ad82564d44515b09528787878787876040516108f396959493929190611e97565b60005b82518110156115ae5761159c83828151811061157357611573611d67565b6020026020010151333085858151811061158f5761158f611d67565b602002602001015161171d565b806115a681611d90565b915050611555565b50306001600160a01b03167f90caba4f44ab4742182204a5617734ee8e3bea814aae0272457ed8bddf9b364a84848460405161060c93929190611e1d565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916116489190611f6a565b6000604051808303816000865af19150503d8060008114611685576040519150601f19603f3d011682016040523d82523d6000602084013e61168a565b606091505b50915091508180156116b45750805115806116b45750808060200190518101906116b49190611cc2565b6117165760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016102fc565b5050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916117819190611f6a565b6000604051808303816000865af19150503d80600081146117be576040519150601f19603f3d011682016040523d82523d6000602084013e6117c3565b606091505b50915091508180156117ed5750805115806117ed5750808060200190518101906117ed9190611cc2565b6118535760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b60648201526084016102fc565b505050505050565b6001600160a01b038116811461187057600080fd5b50565b803561187e8161185b565b919050565b6000806040838503121561189657600080fd5b82356118a18161185b565b946020939093013593505050565b60005b838110156118ca5781810151838201526020016118b2565b50506000910152565b600081518084526118eb8160208601602086016118af565b601f01601f19169290920160200192915050565b60208152600061191260208301846118d3565b9392505050565b60006020828403121561192b57600080fd5b81356119128161185b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561197557611975611936565b604052919050565b600067ffffffffffffffff82111561199757611997611936565b5060051b60200190565b600082601f8301126119b257600080fd5b813560206119c76119c28361197d565b61194c565b82815260059290921b840181019181810190868411156119e657600080fd5b8286015b84811015611a0a5780356119fd8161185b565b83529183019183016119ea565b509695505050505050565b600082601f830112611a2657600080fd5b81356020611a366119c28361197d565b82815260059290921b84018101918181019086841115611a5557600080fd5b8286015b84811015611a0a5780358352918301918301611a59565b600080600060608486031215611a8557600080fd5b833567ffffffffffffffff80821115611a9d57600080fd5b818601915086601f830112611ab157600080fd5b8135602082821115611ac557611ac5611936565b611ad7601f8301601f1916820161194c565b8281528982848701011115611aeb57600080fd5b82828601838301376000928101820192909252909550860135915080821115611b1357600080fd5b611b1f878388016119a1565b93506040860135915080821115611b3557600080fd5b50611b4286828701611a15565b9150509250925092565b60008060008060008060c08789031215611b6557600080fd5b611b6e87611873565b9550602087013567ffffffffffffffff80821115611b8b57600080fd5b611b978a838b016119a1565b96506040890135915080821115611bad57600080fd5b611bb98a838b01611a15565b95506060890135915080821115611bcf57600080fd5b611bdb8a838b016119a1565b94506080890135915080821115611bf157600080fd5b611bfd8a838b01611a15565b935060a0890135915080821115611c1357600080fd5b50611c2089828a01611a15565b9150509295509295509295565b60008060008060808587031215611c4357600080fd5b8435611c4e8161185b565b93506020850135611c5e8161185b565b93969395505050506040820135916060013590565b600080600060608486031215611c8857600080fd5b833567ffffffffffffffff80821115611ca057600080fd5b611cac878388016119a1565b94506020860135915080821115611b1357600080fd5b600060208284031215611cd457600080fd5b8151801515811461191257600080fd5b6020808252601e908201527f43616c6c6572206973206e6f7420636f6e7472616374206d616e616765720000604082015260600190565b600060208284031215611d2d57600080fd5b81516119128161185b565b634e487b7160e01b600052601160045260246000fd5b81810381811115611d6157611d61611d38565b92915050565b634e487b7160e01b600052603260045260246000fd5b80820180821115611d6157611d61611d38565b600060018201611da257611da2611d38565b5060010190565b600081518084526020808501945080840160005b83811015611de25781516001600160a01b031687529582019590820190600101611dbd565b509495945050505050565b600081518084526020808501945080840160005b83811015611de257815187529582019590820190600101611e01565b606081526000611e3060608301866118d3565b8281036020840152611e428186611da9565b90508281036040840152611e568185611ded565b9695505050505050565b6020808252601e908201527f496e766573746f72206973206e6f7420776869746520696e766573746f720000604082015260600190565b6001600160a01b038716815260c060208201819052600090611ebb90830188611da9565b8281036040840152611ecd8188611ded565b90508281036060840152611ee18187611da9565b90508281036080840152611ef58186611ded565b905082810360a0840152611f098185611ded565b9998505050505050505050565b60208082526021908201527f496e766573746f72206973206e6f7420706c6174666f726d20696e766573746f6040820152603960f91b606082015260800190565b606081526000611e306060830186611da9565b60008251611f7c8184602087016118af565b919091019291505056fea2646970667358221220b168d52dd93863c816fa30fc1daeb99b6ce21589aac3253273b19930d554587364736f6c6343000810003300000000000000000000000096abd1c04882bce372203d43649be525f8ae87ba0000000000000000000000007eb3601bb10854234db4dc03ce7fad842b2d86ad
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063579d1eaa1161008c578063c6ce412f11610066578063c6ce412f14610228578063d4a22bde1461023b578063d80f07111461024e578063f9b1cf2a1461026157600080fd5b8063579d1eaa146101ef5780637fb801be1461020257806388a8d6021461021557600080fd5b80633f79651d116100c85780633f79651d1461017757806349e664ff1461018a5780634be474181461019d57806355ef1df2146101b057600080fd5b80630535f372146100ef57806306fdde03146101045780631ec0c7f714610149575b600080fd5b6101026100fd366004611883565b610274565b005b6101336040518060400160405280601081526020016f14dd5894995913585b9859d95b595b9d60821b81525081565b60405161014091906118ff565b60405180910390f35b610169610157366004611919565b60016020526000908152604090205481565b604051908152602001610140565b610102610185366004611a70565b6104bb565b610102610198366004611b4c565b610619565b6101026101ab366004611c2d565b610903565b6101d77f0000000000000000000000007eb3601bb10854234db4dc03ce7fad842b2d86ad81565b6040516001600160a01b039091168152602001610140565b6101026101fd366004611c73565b610ad9565b610102610210366004611c2d565b610cbf565b6000546101d7906001600160a01b031681565b610102610236366004611c73565b610e41565b610102610249366004611919565b611099565b61010261025c366004611b4c565b61119f565b61010261026f366004611a70565b611552565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa1580156102bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e09190611cc2565b6103055760405162461bcd60e51b81526004016102fc90611ce4565b60405180910390fd5b60008060009054906101000a90046001600160a01b03166001600160a01b031663ed14834f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037d9190611d1b565b6001600160a01b0384166000908152600160205260409020549091508211156103e85760405162461bcd60e51b815260206004820152601960248201527f506c6174666f726d466565206973206e6f7420656e6f7567680000000000000060448201526064016102fc565b6001600160a01b03831660009081526001602052604081208054849290610410908490611d4e565b90915550506001600160a01b03811661046b5760405162461bcd60e51b815260206004820152601c60248201527f616464726573732063616e6e6f7420626520616464726573732830290000000060448201526064016102fc565b6104768382846115ec565b6040518281526001600160a01b0384169030907f9b0df163d8b0c72dee837ba1552888da4c9ed990e7db3be73feec14c637fbf389060200160405180910390a3505050565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611cc2565b6105435760405162461bcd60e51b81526004016102fc90611ce4565b60005b82518110156105ce5781818151811061056157610561611d67565b60200260200101516001600085848151811061057f5761057f611d67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546105b69190611d7d565b909155508190506105c681611d90565b915050610546565b50306001600160a01b03167f2ba2e85925c907cd190b5163decba0e54776d9f57b722ac00c71c923482109e384848460405161060c93929190611e1d565b60405180910390a2505050565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa158015610661573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106859190611cc2565b6106a15760405162461bcd60e51b81526004016102fc90611ce4565b60005b85518110156108af5760005486516001600160a01b0390911690630cce6758908890849081106106d6576106d6611d67565b60200260200101516040518263ffffffff1660e01b815260040161070991906001600160a01b0391909116815260200190565b602060405180830381865afa158015610726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074a9190611cc2565b6107665760405162461bcd60e51b81526004016102fc90611e60565b600085828151811061077a5761077a611d67565b602002602001015111156107c5576107c58787838151811061079e5761079e611d67565b60200260200101518784815181106107b8576107b8611d67565b60200260200101516115ec565b60008382815181106107d9576107d9611d67565b60200260200101511115610830576108308482815181106107fc576107fc611d67565b602002602001015187838151811061081657610816611d67565b60200260200101518584815181106107b8576107b8611d67565b81818151811061084257610842611d67565b60200260200101516001600086848151811061086057610860611d67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546108979190611d7d565b909155508190506108a781611d90565b9150506106a4565b50306001600160a01b03167f27107ee7622d58a260ded013cac8dea85f6d4c3bf0be25357e4026fff1d79fc58787878787876040516108f396959493929190611e97565b60405180910390a2505050505050565b804281101561093e5760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b60448201526064016102fc565b600054604051630199cceb60e31b81523360048201819052916001600160a01b031690630cce675890602401602060405180830381865afa158015610987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ab9190611cc2565b80610a1f575060005460405163b09c4d3d60e01b81526001600160a01b0383811660048301529091169063b09c4d3d90602401602060405180830381865afa1580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f9190611cc2565b610a3b5760405162461bcd60e51b81526004016102fc90611f16565b60008411610a7a5760405162461bcd60e51b815260206004820152600c60248201526b07175616e74697479203e20360a41b60448201526064016102fc565b610a868633308761171d565b604080516001600160a01b0388811682528716602082015233918101919091526060810185905230907f5bbdbda0aab16ad9afcb044274821113d598c3f7483e825d7e6d3d09ae8de880906080016108f3565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190611cc2565b610b615760405162461bcd60e51b81526004016102fc90611ce4565b60005b8251811015610c815760005483516001600160a01b0390911690630cce675890859084908110610b9657610b96611d67565b60200260200101516040518263ffffffff1660e01b8152600401610bc991906001600160a01b0391909116815260200190565b602060405180830381865afa158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a9190611cc2565b610c265760405162461bcd60e51b81526004016102fc90611e60565b610c6f848281518110610c3b57610c3b611d67565b6020026020010151848381518110610c5557610c55611d67565b60200260200101518484815181106107b8576107b8611d67565b80610c7981611d90565b915050610b64565b50306001600160a01b03167ff0881eb2e0fe89f9d1c69f313b9766226bf8065d14919b4bb722661cfdf2732084848460405161060c93929190611f57565b8042811015610cfa5760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b60448201526064016102fc565b600054604051630199cceb60e31b81523360048201819052916001600160a01b031690630cce675890602401602060405180830381865afa158015610d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d679190611cc2565b610d835760405162461bcd60e51b81526004016102fc90611e60565b60008411610de25760405162461bcd60e51b815260206004820152602660248201527f54686520737562736372697074696f6e20616d6f756e742063616e6e6f74206260448201526565207a65726f60d01b60648201526084016102fc565b610dee8533308761171d565b604080516001600160a01b0388811682528716602082015233918101919091526060810185905230907f85e11623cf3455bd06de236e6eb13e21a2e641a61b12b9b3737cf28297b2d19b906080016108f3565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190611cc2565b610ec95760405162461bcd60e51b81526004016102fc90611ce4565b60005b835181101561105b577f0000000000000000000000007eb3601bb10854234db4dc03ce7fad842b2d86ad6001600160a01b0316838281518110610f1157610f11611d67565b60200260200101516001600160a01b03161480610fde57507f0000000000000000000000007eb3601bb10854234db4dc03ce7fad842b2d86ad6001600160a01b0316638345245e848381518110610f6a57610f6a611d67565b60200260200101516040518263ffffffff1660e01b8152600401610f9d91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610fba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fde9190611cc2565b6110345760405162461bcd60e51b815260206004820152602160248201527f546869732061646472657373206973206e6f7420616c6c6f77206164647265736044820152607360f81b60648201526084016102fc565b611049848281518110610c3b57610c3b611d67565b8061105381611d90565b915050610ecc565b50306001600160a01b03167ffe789f6ce632164f87348b8f772616fc93bde63328877e32af37a98e5a77976784848460405161060c93929190611f57565b6000546001600160a01b031633146110f35760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f74206d616e6167656d656e74000000000000000060448201526064016102fc565b6001600160a01b0381166111495760405162461bcd60e51b815260206004820152601c60248201527f616464726573732063616e6e6f7420626520616464726573732830290000000060448201526064016102fc565b600080546001600160a01b0319166001600160a01b03831690811790915560405190815230907fec5837e83167d921ae298e99f5817184e912c981aa8a38307cb2d976c019fae69060200160405180910390a250565b60005460405163306abccf60e01b81523360048201526001600160a01b039091169063306abccf90602401602060405180830381865afa1580156111e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120b9190611cc2565b6112275760405162461bcd60e51b81526004016102fc90611ce4565b60005b835181101561150e5760005486516001600160a01b0390911690630cce67589088908490811061125c5761125c611d67565b60200260200101516040518263ffffffff1660e01b815260040161128f91906001600160a01b0391909116815260200190565b602060405180830381865afa1580156112ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d09190611cc2565b80611373575060005486516001600160a01b039091169063b09c4d3d908890849081106112ff576112ff611d67565b60200260200101516040518263ffffffff1660e01b815260040161133291906001600160a01b0391909116815260200190565b602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113739190611cc2565b61138f5760405162461bcd60e51b81526004016102fc90611f16565b60008582815181106113a3576113a3611d67565b602002602001015111156113c7576113c78787838151811061079e5761079e611d67565b60008282815181106113db576113db611d67565b60200260200101518483815181106113f5576113f5611d67565b60200260200101516114079190611d4e565b111561148f5761148f84828151811061142257611422611d67565b602002602001015187838151811061143c5761143c611d67565b602002602001015184848151811061145657611456611d67565b602002602001015186858151811061147057611470611d67565b602002602001018181516114849190611d4e565b9150818152506115ec565b8181815181106114a1576114a1611d67565b6020026020010151600160008684815181106114bf576114bf611d67565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546114f69190611d7d565b9091555081905061150681611d90565b91505061122a565b50306001600160a01b03167f078201b4fddebeb020e52d5999827843599e0ae133d7f8ad82564d44515b09528787878787876040516108f396959493929190611e97565b60005b82518110156115ae5761159c83828151811061157357611573611d67565b6020026020010151333085858151811061158f5761158f611d67565b602002602001015161171d565b806115a681611d90565b915050611555565b50306001600160a01b03167f90caba4f44ab4742182204a5617734ee8e3bea814aae0272457ed8bddf9b364a84848460405161060c93929190611e1d565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916116489190611f6a565b6000604051808303816000865af19150503d8060008114611685576040519150601f19603f3d011682016040523d82523d6000602084013e61168a565b606091505b50915091508180156116b45750805115806116b45750808060200190518101906116b49190611cc2565b6117165760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016102fc565b5050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916117819190611f6a565b6000604051808303816000865af19150503d80600081146117be576040519150601f19603f3d011682016040523d82523d6000602084013e6117c3565b606091505b50915091508180156117ed5750805115806117ed5750808060200190518101906117ed9190611cc2565b6118535760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b60648201526084016102fc565b505050505050565b6001600160a01b038116811461187057600080fd5b50565b803561187e8161185b565b919050565b6000806040838503121561189657600080fd5b82356118a18161185b565b946020939093013593505050565b60005b838110156118ca5781810151838201526020016118b2565b50506000910152565b600081518084526118eb8160208601602086016118af565b601f01601f19169290920160200192915050565b60208152600061191260208301846118d3565b9392505050565b60006020828403121561192b57600080fd5b81356119128161185b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561197557611975611936565b604052919050565b600067ffffffffffffffff82111561199757611997611936565b5060051b60200190565b600082601f8301126119b257600080fd5b813560206119c76119c28361197d565b61194c565b82815260059290921b840181019181810190868411156119e657600080fd5b8286015b84811015611a0a5780356119fd8161185b565b83529183019183016119ea565b509695505050505050565b600082601f830112611a2657600080fd5b81356020611a366119c28361197d565b82815260059290921b84018101918181019086841115611a5557600080fd5b8286015b84811015611a0a5780358352918301918301611a59565b600080600060608486031215611a8557600080fd5b833567ffffffffffffffff80821115611a9d57600080fd5b818601915086601f830112611ab157600080fd5b8135602082821115611ac557611ac5611936565b611ad7601f8301601f1916820161194c565b8281528982848701011115611aeb57600080fd5b82828601838301376000928101820192909252909550860135915080821115611b1357600080fd5b611b1f878388016119a1565b93506040860135915080821115611b3557600080fd5b50611b4286828701611a15565b9150509250925092565b60008060008060008060c08789031215611b6557600080fd5b611b6e87611873565b9550602087013567ffffffffffffffff80821115611b8b57600080fd5b611b978a838b016119a1565b96506040890135915080821115611bad57600080fd5b611bb98a838b01611a15565b95506060890135915080821115611bcf57600080fd5b611bdb8a838b016119a1565b94506080890135915080821115611bf157600080fd5b611bfd8a838b01611a15565b935060a0890135915080821115611c1357600080fd5b50611c2089828a01611a15565b9150509295509295509295565b60008060008060808587031215611c4357600080fd5b8435611c4e8161185b565b93506020850135611c5e8161185b565b93969395505050506040820135916060013590565b600080600060608486031215611c8857600080fd5b833567ffffffffffffffff80821115611ca057600080fd5b611cac878388016119a1565b94506020860135915080821115611b1357600080fd5b600060208284031215611cd457600080fd5b8151801515811461191257600080fd5b6020808252601e908201527f43616c6c6572206973206e6f7420636f6e7472616374206d616e616765720000604082015260600190565b600060208284031215611d2d57600080fd5b81516119128161185b565b634e487b7160e01b600052601160045260246000fd5b81810381811115611d6157611d61611d38565b92915050565b634e487b7160e01b600052603260045260246000fd5b80820180821115611d6157611d61611d38565b600060018201611da257611da2611d38565b5060010190565b600081518084526020808501945080840160005b83811015611de25781516001600160a01b031687529582019590820190600101611dbd565b509495945050505050565b600081518084526020808501945080840160005b83811015611de257815187529582019590820190600101611e01565b606081526000611e3060608301866118d3565b8281036020840152611e428186611da9565b90508281036040840152611e568185611ded565b9695505050505050565b6020808252601e908201527f496e766573746f72206973206e6f7420776869746520696e766573746f720000604082015260600190565b6001600160a01b038716815260c060208201819052600090611ebb90830188611da9565b8281036040840152611ecd8188611ded565b90508281036060840152611ee18187611da9565b90508281036080840152611ef58186611ded565b905082810360a0840152611f098185611ded565b9998505050505050505050565b60208082526021908201527f496e766573746f72206973206e6f7420706c6174666f726d20696e766573746f6040820152603960f91b606082015260800190565b606081526000611e306060830186611da9565b60008251611f7c8184602087016118af565b919091019291505056fea2646970667358221220b168d52dd93863c816fa30fc1daeb99b6ce21589aac3253273b19930d554587364736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000096abd1c04882bce372203d43649be525f8ae87ba0000000000000000000000007eb3601bb10854234db4dc03ce7fad842b2d86ad
-----Decoded View---------------
Arg [0] : _management (address): 0x96ABd1C04882BCe372203d43649be525F8AE87ba
Arg [1] : _exchangeWallet (address): 0x7Eb3601bb10854234db4dC03CE7fAD842B2D86Ad
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000096abd1c04882bce372203d43649be525f8ae87ba
Arg [1] : 0000000000000000000000007eb3601bb10854234db4dc03ce7fad842b2d86ad
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $0.999806 | 3,700,080.5228 | $3,699,362.71 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.