Overview
ETH Balance
0.136769323 ETH
Eth Value
$370.30 (@ $2,707.45/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 190 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Migrate For | 9442125 | 1842 days ago | IN | 0 ETH | 0.00276032 | ||||
Migrate For | 9442119 | 1842 days ago | IN | 0 ETH | 0.00275927 | ||||
Migrate For | 9442115 | 1842 days ago | IN | 0 ETH | 0.00275941 | ||||
Migrate For | 9442100 | 1842 days ago | IN | 0 ETH | 0.01466157 | ||||
Migrate For | 9436767 | 1843 days ago | IN | 0 ETH | 0.01946037 | ||||
Migrate For | 9420675 | 1845 days ago | IN | 0 ETH | 0.0191456 | ||||
Migrate For | 9412105 | 1847 days ago | IN | 0 ETH | 0.01922963 | ||||
Migrate For | 9396298 | 1849 days ago | IN | 0 ETH | 0.01852151 | ||||
Migrate For | 9387835 | 1851 days ago | IN | 0 ETH | 0.01887782 | ||||
Get Fee | 9387828 | 1851 days ago | IN | 0 ETH | 0.00006559 | ||||
Migrate For | 9340361 | 1858 days ago | IN | 0 ETH | 0.01269142 | ||||
Migrate For | 9316389 | 1861 days ago | IN | 0 ETH | 0.01164039 | ||||
Migrate For | 9316259 | 1861 days ago | IN | 0 ETH | 0.01748852 | ||||
Migrate For | 9301337 | 1864 days ago | IN | 0 ETH | 0.01832751 | ||||
Migrate For | 9282169 | 1867 days ago | IN | 0 ETH | 0.01829861 | ||||
Migrate For | 9220095 | 1876 days ago | IN | 0 ETH | 0.01871023 | ||||
Migrate For | 9210090 | 1878 days ago | IN | 0 ETH | 0.00189576 | ||||
Migrate For | 9210084 | 1878 days ago | IN | 0 ETH | 0.00189576 | ||||
Migrate For | 9210081 | 1878 days ago | IN | 0 ETH | 0.00189119 | ||||
Migrate For | 9162389 | 1887 days ago | IN | 0 ETH | 0.01467636 | ||||
Migrate For | 9155567 | 1888 days ago | IN | 0 ETH | 0.01617739 | ||||
Migrate For | 9151981 | 1889 days ago | IN | 0 ETH | 0.01957746 | ||||
Migrate For | 9125321 | 1894 days ago | IN | 0 ETH | 0.00182525 | ||||
Migrate For | 9125318 | 1894 days ago | IN | 0 ETH | 0.00193106 | ||||
Migrate For | 9125315 | 1894 days ago | IN | 0 ETH | 0.00215123 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
9442100 | 1842 days ago | 0.01829088 ETH | ||||
9436767 | 1843 days ago | 0.02370004 ETH | ||||
9420675 | 1845 days ago | 0.0246904 ETH | ||||
9412105 | 1847 days ago | 0.02450562 ETH | ||||
9396298 | 1849 days ago | 0.02247854 ETH | ||||
9387835 | 1851 days ago | 0.02310382 ETH | ||||
9387828 | 1851 days ago | 0.27754537 ETH | ||||
9340361 | 1858 days ago | 0.01605792 ETH | ||||
9316389 | 1861 days ago | 0.01449213 ETH | ||||
9316259 | 1861 days ago | 0.02309211 ETH | ||||
9301337 | 1864 days ago | 0.02255334 ETH | ||||
9282169 | 1867 days ago | 0.02225581 ETH | ||||
9220095 | 1876 days ago | 0.02293606 ETH | ||||
9162389 | 1887 days ago | 0.01851585 ETH | ||||
9155567 | 1888 days ago | 0.02061322 ETH | ||||
9151981 | 1889 days ago | 0.02537337 ETH | ||||
9122550 | 1895 days ago | 0.0243443 ETH | ||||
9122363 | 1895 days ago | 0.02116372 ETH | ||||
9122313 | 1895 days ago | 0.02089987 ETH | ||||
9121806 | 1895 days ago | 0.02524762 ETH | ||||
9077374 | 1903 days ago | 0.09875612 ETH | ||||
9070034 | 1904 days ago | 0.02664436 ETH | ||||
9063395 | 1906 days ago | 0.02672572 ETH | ||||
9063395 | 1906 days ago | 0.02048582 ETH | ||||
9063395 | 1906 days ago | 0.0249002 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
AutomaticMigration
Compiler Version
v0.5.7+commit.6da8b019
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-11-26 */ pragma solidity ^0.5.0; contract DSMath { function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x); } function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x); } function min(uint x, uint y) internal pure returns (uint z) { return x <= y ? x : y; } function max(uint x, uint y) internal pure returns (uint z) { return x >= y ? x : y; } function imin(int x, int y) internal pure returns (int z) { return x <= y ? x : y; } function imax(int x, int y) internal pure returns (int z) { return x >= y ? x : y; } uint constant WAD = 10 ** 18; uint constant RAY = 10 ** 27; function wmul(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, y), WAD / 2) / WAD; } function rmul(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, y), RAY / 2) / RAY; } function wdiv(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, WAD), y / 2) / y; } function rdiv(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, RAY), y / 2) / y; } function rpow(uint x, uint n) internal pure returns (uint z) { z = n % 2 != 0 ? x : RAY; for (n /= 2; n != 0; n /= 2) { x = rmul(x, x); if (n % 2 != 0) { z = rmul(z, x); } } } } contract Gem { function dec() public returns (uint); function gem() public returns (Gem); function join(address, uint) public payable; function exit(address, uint) public; function approve(address, uint) public; function transfer(address, uint) public returns (bool); function transferFrom(address, address, uint) public returns (bool); function deposit() public payable; function withdraw(uint) public; function allowance(address, address) public returns (uint); } contract ValueLike { function peek() public returns (uint, bool); } contract VoxLike { function par() public returns (uint); } contract SaiTubLike { function skr() public view returns (Gem); function gem() public view returns (Gem); function gov() public view returns (Gem); function sai() public view returns (Gem); function pep() public view returns (ValueLike); function vox() public view returns (VoxLike); function bid(uint) public view returns (uint); function ink(bytes32) public view returns (uint); function tag() public view returns (uint); function tab(bytes32) public returns (uint); function rap(bytes32) public returns (uint); function draw(bytes32, uint) public; function shut(bytes32) public; function exit(uint) public; function give(bytes32, address) public; function lad(bytes32 cup) public view returns (address); function cups(bytes32) public returns (address, uint, uint, uint); } contract Vat { struct Urn { uint256 ink; uint256 art; } struct Ilk { uint256 Art; uint256 rate; uint256 spot; uint256 line; uint256 dust; } mapping (bytes32 => mapping (address => Urn )) public urns; mapping (bytes32 => Ilk) public ilks; function can(address, address) public view returns (uint); function dai(address) public view returns (uint); function frob(bytes32, address, address, address, int, int) public; function hope(address) public; function move(address, address, uint) public; } contract DaiJoin { function vat() public returns (Vat); function dai() public returns (Gem); function join(address, uint) public payable; function exit(address, uint) public; } contract ScdMcdMigration { SaiTubLike public tub; DaiJoin public daiJoin; function swapSaiToDai(uint) external; function swapDaiToSai(uint) external; function migrate(bytes32) external returns (uint); } contract ConstantAddressesMainnet { address public constant MAKER_DAI_ADDRESS = 0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359; address public constant IDAI_ADDRESS = 0x14094949152EDDBFcd073717200DA82fEd8dC960; address public constant SOLO_MARGIN_ADDRESS = 0x1E0447b19BB6EcFdAe1e4AE1694b0C3659614e4e; address public constant CDAI_ADDRESS = 0xF5DCe57282A584D2746FaF1593d3121Fcac444dC; address public constant KYBER_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; address public constant MKR_ADDRESS = 0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2; address public constant WETH_ADDRESS = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address public constant VOX_ADDRESS = 0x9B0F70Df76165442ca6092939132bBAEA77f2d7A; address public constant PETH_ADDRESS = 0xf53AD2c6851052A81B42133467480961B2321C09; address public constant TUB_ADDRESS = 0x448a5065aeBB8E423F0896E6c5D525C040f59af3; address payable public constant WALLET_ID = 0x322d58b9E75a6918f7e7849AEe0fF09369977e08; address public constant LOGGER_ADDRESS = 0xeCf88e1ceC2D2894A0295DB3D86Fe7CE4991E6dF; address public constant OTC_ADDRESS = 0x39755357759cE0d7f32dC8dC45414CCa409AE24e; address public constant DISCOUNT_ADDRESS = 0x1b14E8D511c9A4395425314f849bD737BAF8208F; address public constant KYBER_WRAPPER = 0x8F337bD3b7F2b05d9A8dC8Ac518584e833424893; address public constant UNISWAP_WRAPPER = 0x1e30124FDE14533231216D95F7798cD0061e5cf8; address public constant ETH2DAI_WRAPPER = 0xd7BBB1777E13b6F535Dec414f575b858ed300baF; address public constant OASIS_WRAPPER = 0x9aBE2715D2d99246269b8E17e9D1b620E9bf6558; address public constant KYBER_INTERFACE = 0x818E6FECD516Ecc3849DAf6845e3EC868087B755; address public constant UNISWAP_FACTORY = 0xc0a47dFe034B400B47bDaD5FecDa2621de6c4d95; address public constant FACTORY_ADDRESS = 0x5a15566417e6C1c9546523066500bDDBc53F88C7; address public constant PIP_INTERFACE_ADDRESS = 0x729D19f657BD0614b4985Cf1D82531c67569197B; address public constant PROXY_REGISTRY_INTERFACE_ADDRESS = 0x4678f0a6958e4D2Bc4F1BAF7Bc52E8F3564f3fE4; address public constant GAS_TOKEN_INTERFACE_ADDRESS = 0x0000000000b3F879cb30FE243b4Dfee438691c04; address public constant SAVINGS_LOGGER_ADDRESS = 0x89b3635BD2bAD145C6f92E82C9e83f06D5654984; address public constant SAVER_EXCHANGE_ADDRESS = 0x865B41584A22F8345Fca4B71c42a1E7aBcD67eCB; address public constant COMPOUND_DAI_ADDRESS = 0x25a01a05C188DaCBCf1D61Af55D4a5B4021F7eeD; address public constant STUPID_EXCHANGE = 0x863E41FE88288ebf3fcd91d8Dbb679fb83fdfE17; address public constant MANAGER_ADDRESS = 0x5ef30b9986345249bc32d8928B7ee64DE9435E39; address public constant VAT_ADDRESS = 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B; address public constant SPOTTER_ADDRESS = 0x65C79fcB50Ca1594B025960e539eD7A9a6D434A3; address public constant PROXY_ACTIONS = 0x82ecD135Dce65Fbc6DbdD0e4237E0AF93FFD5038; address public constant JUG_ADDRESS = 0x19c0976f590D67707E62397C87829d896Dc0f1F1; address public constant DAI_JOIN_ADDRESS = 0x9759A6Ac90977b93B58547b4A71c78317f391A28; address public constant ETH_JOIN_ADDRESS = 0x2F0b23f53734252Bda2277357e97e1517d6B042A; address public constant MIGRATION_ACTIONS_PROXY = 0xe4B22D484958E582098A98229A24e8A43801b674; address public constant SAI_ADDRESS = 0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359; address public constant DAI_ADDRESS = 0x6B175474E89094C44Da98b954EedeAC495271d0F; address payable public constant SCD_MCD_MIGRATION = 0xc73e0383F3Aff3215E6f04B0331D58CeCf0Ab849; address public constant SUBSCRIPTION_ADDRESS = 0x83152CAA0d344a2Fd428769529e2d490A88f4393; address public constant MONITOR_ADDRESS = 0x3F4339816EDEF8D3d3970DB2993e2e0Ec6010760; } contract ConstantAddressesKovan { address public constant KYBER_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; address public constant WETH_ADDRESS = 0xd0A1E359811322d97991E03f863a0C30C2cF029C; address public constant MAKER_DAI_ADDRESS = 0xC4375B7De8af5a38a93548eb8453a498222C4fF2; address public constant MKR_ADDRESS = 0xAaF64BFCC32d0F15873a02163e7E500671a4ffcD; address public constant VOX_ADDRESS = 0xBb4339c0aB5B1d9f14Bd6e3426444A1e9d86A1d9; address public constant PETH_ADDRESS = 0xf4d791139cE033Ad35DB2B2201435fAd668B1b64; address public constant TUB_ADDRESS = 0xa71937147b55Deb8a530C7229C442Fd3F31b7db2; address public constant LOGGER_ADDRESS = 0x32d0e18f988F952Eb3524aCE762042381a2c39E5; address payable public constant WALLET_ID = 0x54b44C6B18fc0b4A1010B21d524c338D1f8065F6; address public constant OTC_ADDRESS = 0x4A6bC4e803c62081ffEbCc8d227B5a87a58f1F8F; address public constant COMPOUND_DAI_ADDRESS = 0x25a01a05C188DaCBCf1D61Af55D4a5B4021F7eeD; address public constant SOLO_MARGIN_ADDRESS = 0x4EC3570cADaAEE08Ae384779B0f3A45EF85289DE; address public constant IDAI_ADDRESS = 0xA1e58F3B1927743393b25f261471E1f2D3D9f0F6; address public constant CDAI_ADDRESS = 0xb6b09fBffBa6A5C4631e5F7B2e3Ee183aC259c0d; address public constant STUPID_EXCHANGE = 0x863E41FE88288ebf3fcd91d8Dbb679fb83fdfE17; address public constant DISCOUNT_ADDRESS = 0x1297c1105FEDf45E0CF6C102934f32C4EB780929; address public constant SAI_SAVER_PROXY = 0xADB7c74bCe932fC6C27ddA3Ac2344707d2fBb0E6; address public constant KYBER_WRAPPER = 0x68c56FF0E7BBD30AF9Ad68225479449869fC1bA0; address public constant UNISWAP_WRAPPER = 0x2A4ee140F05f1Ba9A07A020b07CCFB76CecE4b43; address public constant ETH2DAI_WRAPPER = 0x823cde416973a19f98Bb9C96d97F4FE6C9A7238B; address public constant OASIS_WRAPPER = 0x0257Ba4876863143bbeDB7847beC583e4deb6fE6; address public constant SAVER_EXCHANGE_ADDRESS = 0xACA7d11e3f482418C324aAC8e90AaD0431f692A6; address public constant FACTORY_ADDRESS = 0xc72E74E474682680a414b506699bBcA44ab9a930; address public constant PIP_INTERFACE_ADDRESS = 0xA944bd4b25C9F186A846fd5668941AA3d3B8425F; address public constant PROXY_REGISTRY_INTERFACE_ADDRESS = 0x64A436ae831C1672AE81F674CAb8B6775df3475C; address public constant GAS_TOKEN_INTERFACE_ADDRESS = 0x0000000000170CcC93903185bE5A2094C870Df62; address public constant KYBER_INTERFACE = 0x692f391bCc85cefCe8C237C01e1f636BbD70EA4D; address public constant SAVINGS_LOGGER_ADDRESS = 0xA6E5d5F489b1c00d9C11E1caF45BAb6e6e26443d; address public constant UNISWAP_FACTORY = 0xf5D915570BC477f9B8D6C0E980aA81757A3AaC36; address public constant MANAGER_ADDRESS = 0x1476483dD8C35F25e568113C5f70249D3976ba21; address public constant VAT_ADDRESS = 0xbA987bDB501d131f766fEe8180Da5d81b34b69d9; address public constant SPOTTER_ADDRESS = 0x3a042de6413eDB15F2784f2f97cC68C7E9750b2D; address public constant JUG_ADDRESS = 0xcbB7718c9F39d05aEEDE1c472ca8Bf804b2f1EaD; address public constant DAI_JOIN_ADDRESS = 0x5AA71a3ae1C0bd6ac27A1f28e1415fFFB6F15B8c; address public constant ETH_JOIN_ADDRESS = 0x775787933e92b709f2a3C70aa87999696e74A9F8; address public constant MIGRATION_ACTIONS_PROXY = 0x433870076aBd08865f0e038dcC4Ac6450e313Bd8; address public constant PROXY_ACTIONS = 0xd1D24637b9109B7f61459176EdcfF9Be56283a7B; address public constant SAI_ADDRESS = 0xC4375B7De8af5a38a93548eb8453a498222C4fF2; address public constant DAI_ADDRESS = 0x4F96Fe3b7A6Cf9725f59d353F723c1bDb64CA6Aa; address payable public constant SCD_MCD_MIGRATION = 0x411B2Faa662C8e3E5cF8f01dFdae0aeE482ca7b0; address public constant SUBSCRIPTION_ADDRESS = 0xFC41f79776061a396635aD0b9dF7a640A05063C1; address public constant MONITOR_ADDRESS = 0xfC1Fc0502e90B7A3766f93344E1eDb906F8A75DD; } contract ConstantAddresses is ConstantAddressesMainnet { } contract DSProxyInterface { function execute(bytes memory _code, bytes memory _data) public payable returns (address, bytes32); function execute(address _target, bytes memory _data) public payable returns (bytes32); function setCache(address _cacheAddr) public payable returns (bool); function owner() public returns (address); } contract Manager { function last(address) public returns (uint); function cdpCan(address, uint, address) public view returns (uint); function ilks(uint) public view returns (bytes32); function owns(uint) public view returns (address); function urns(uint) public view returns (address); function vat() public view returns (address); function open(bytes32, address) public returns (uint); function give(uint, address) public; function cdpAllow(uint, address, uint) public; function urnAllow(address, uint) public; function frob(uint, int, int) public; function flux(uint, address, uint) public; function move(uint, address, uint) public; function exit(address, uint, address, uint) public; function quit(uint, address) public; function enter(address, uint) public; function shift(uint, uint) public; } contract Join { bytes32 public ilk; function dec() public returns (uint); function gem() public returns (Gem); function join(address, uint) public payable; function exit(address, uint) public; } contract AutomaticMigration is DSMath, ConstantAddresses { enum MigrationType { WITH_MKR, WITH_CONVERSION, WITH_DEBT } bytes32 SAI_ILK = 0x5341490000000000000000000000000000000000000000000000000000000000; uint MAX_GAS_PRICE = 50000000000; address public constant CUSTOM_MIGRATION_ACTIONS_PROXY = 0xc2429Ea56D3Eb580c9bda2A8ee08Fb8837Cb400c; struct Subscription { bytes32 cdpId; address owner; MigrationType migType; } address payable public owner; uint public changeIndex; mapping (address => bool) public approvedCallers; mapping (bytes32 => Subscription) public subscribers; ScdMcdMigration public migrationContract = ScdMcdMigration(SCD_MCD_MIGRATION); SaiTubLike public tubContract = SaiTubLike(TUB_ADDRESS); Vat public vat = Vat(VAT_ADDRESS); Manager public manager = Manager(MANAGER_ADDRESS); modifier isApprovedCaller() { require(approvedCallers[msg.sender]); _; } modifier onlyOwner() { require(owner == msg.sender); _; } event Subscribed(address indexed owner, bytes32 cdpId, MigrationType migType); event Unsubscribed(address indexed owner, bytes32 cdpId); event Migrated(bytes32 indexed oldCdp, uint indexed newCdp, address owner, uint timestamp); constructor() public { owner = msg.sender; approvedCallers[owner] = true; } function subscribe(bytes32 _cdpId, MigrationType _type) external { require(subscribers[_cdpId].owner == address(0x0)); require(isOwner(msg.sender, _cdpId)); subscribers[_cdpId] = Subscription({ cdpId: _cdpId, owner: msg.sender, migType: _type }); changeIndex++; emit Subscribed(msg.sender, _cdpId, _type); } function unsubscribe(bytes32 _cdpId) external { require(subscribers[_cdpId].owner != address(0x0)); require(isOwner(msg.sender, _cdpId)); delete subscribers[_cdpId]; changeIndex++; emit Unsubscribed(msg.sender, _cdpId); } function migrateFor(bytes32 _cdpId) external isApprovedCaller() { uint256 startGas = gasleft(); require(subscribers[_cdpId].cdpId == _cdpId); require(hasEnoughLiquidity(_cdpId)); MigrationType migType = subscribers[_cdpId].migType; if (migType == MigrationType.WITH_MKR) { DSProxyInterface(subscribers[_cdpId].owner).execute(CUSTOM_MIGRATION_ACTIONS_PROXY, abi.encodeWithSignature("migrate(address,bytes32)", SCD_MCD_MIGRATION, _cdpId)); } else if (migType == MigrationType.WITH_CONVERSION) { DSProxyInterface(subscribers[_cdpId].owner).execute(CUSTOM_MIGRATION_ACTIONS_PROXY, abi.encodeWithSignature("migratePayFeeWithGem(address,bytes32,address,address,uint256)", SCD_MCD_MIGRATION, _cdpId, OTC_ADDRESS, MAKER_DAI_ADDRESS, uint(-1))); } else if (migType == MigrationType.WITH_DEBT) { DSProxyInterface(subscribers[_cdpId].owner).execute(CUSTOM_MIGRATION_ACTIONS_PROXY, abi.encodeWithSignature("migratePayFeeWithDebt(address,bytes32,address,uint256,uint256)", SCD_MCD_MIGRATION, _cdpId, OTC_ADDRESS, uint(-1), 0)); } uint newVault = manager.last(subscribers[_cdpId].owner); uint currGasLeft = gasleft(); uint gasCost = calcTxCost(startGas, currGasLeft); DSProxyInterface(subscribers[_cdpId].owner).execute(PROXY_ACTIONS, abi.encodeWithSignature("freeETH(address,address,uint256,uint256)", MANAGER_ADDRESS, ETH_JOIN_ADDRESS, newVault, gasCost)); emit Migrated(_cdpId, newVault, subscribers[_cdpId].owner, block.timestamp); } function hasEnoughLiquidity(bytes32 _cdpId) public returns (bool) { uint migrationSai; uint cdpDebt; (, migrationSai) = vat.urns(SAI_ILK, SCD_MCD_MIGRATION); migrationSai = sub(migrationSai, 1000); cdpDebt = getDebt(_cdpId); return migrationSai > cdpDebt; } function getDebt(bytes32 _cdpId) public returns (uint cdpDebt) { ( , , cdpDebt, ) = tubContract.cups(_cdpId); } function calcTxCost(uint _startGas, uint _currGasLeft) public view returns(uint) { uint gasUsed = sub(_startGas, _currGasLeft); uint gasPrice = tx.gasprice > MAX_GAS_PRICE ? MAX_GAS_PRICE : tx.gasprice; gasUsed = add(gasUsed, 180000); return mul(gasPrice, gasUsed); } function isOwner(address _owner, bytes32 _cdpId) internal view returns(bool) { require(tubContract.lad(_cdpId) == _owner); return true; } function() external payable {} function addCaller(address _caller) public onlyOwner { approvedCallers[_caller] = true; } function removeCaller(address _caller) public onlyOwner { approvedCallers[_caller] = false; } function getFee() public onlyOwner { owner.transfer(address(this).balance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"WETH_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CDAI_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SAVINGS_LOGGER_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SAI_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"migrationContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"changeIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tubContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PIP_INTERFACE_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_startGas","type":"uint256"},{"name":"_currGasLeft","type":"uint256"}],"name":"calcTxCost","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KYBER_ETH_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"OTC_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DAI_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IDAI_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"GAS_TOKEN_INTERFACE_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cdpId","type":"bytes32"}],"name":"hasEnoughLiquidity","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vat","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VOX_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MANAGER_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MONITOR_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ETH2DAI_WRAPPER","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"manager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"STUPID_EXCHANGE","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cdpId","type":"bytes32"}],"name":"migrateFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MIGRATION_ACTIONS_PROXY","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SPOTTER_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cdpId","type":"bytes32"},{"name":"_type","type":"uint8"}],"name":"subscribe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PROXY_REGISTRY_INTERFACE_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_caller","type":"address"}],"name":"addCaller","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PROXY_ACTIONS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MKR_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FACTORY_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"subscribers","outputs":[{"name":"cdpId","type":"bytes32"},{"name":"owner","type":"address"},{"name":"migType","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LOGGER_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SAVER_EXCHANGE_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAKER_DAI_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DISCOUNT_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"approvedCallers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"JUG_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KYBER_WRAPPER","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SUBSCRIPTION_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"COMPOUND_DAI_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNISWAP_FACTORY","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"OASIS_WRAPPER","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PETH_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"KYBER_INTERFACE","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"VAT_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DAI_JOIN_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WALLET_ID","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SOLO_MARGIN_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNISWAP_WRAPPER","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cdpId","type":"bytes32"}],"name":"getDebt","outputs":[{"name":"cdpDebt","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CUSTOM_MIGRATION_ACTIONS_PROXY","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_caller","type":"address"}],"name":"removeCaller","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TUB_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ETH_JOIN_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SCD_MCD_MIGRATION","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cdpId","type":"bytes32"}],"name":"unsubscribe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"cdpId","type":"bytes32"},{"indexed":false,"name":"migType","type":"uint8"}],"name":"Subscribed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"cdpId","type":"bytes32"}],"name":"Unsubscribed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldCdp","type":"bytes32"},{"indexed":true,"name":"newCdp","type":"uint256"},{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"Migrated","type":"event"}]
Contract Creation Code
60806040527f534149000000000000000000000000000000000000000000000000000000000060001b600055640ba43b740060015573c73e0383f3aff3215e6f04b0331d58cecf0ab849600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073448a5065aebb8e423f0896e6c5d525c040f59af3600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507335d1b3f3d7966a1dfe207aa4514c12a259a0492b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735ef30b9986345249bc32d8928b7ee64de9435e39600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561019457600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506133038061025f6000396000f3fe60806040526004361061038c5760003560e01c8063825ffd92116101dc578063c9fde27011610102578063ddaa293c116100a0578063f0d405e51161006f578063f0d405e5146115e4578063f1d253961461163b578063f835247214611692578063f8c60146146116e95761038c565b8063ddaa293c14611496578063dff01deb146114ed578063e8f8d8071461153c578063eef21cd2146115935761038c565b8063cf786f8f116100dc578063cf786f8f1461133a578063cfac57c714611391578063d3661fa5146113e8578063d36b907d1461143f5761038c565b8063c9fde27014611275578063ce9bde1d146112cc578063ced72f87146113235761038c565b8063a46a66c91161017a578063bc17effa11610149578063bc17effa14611119578063c16921b714611170578063c74c0fac146111c7578063c917c2d31461121e5761038c565b8063a46a66c914610fab578063a71975af14611002578063acbeba611461106b578063b175afa1146110c25761038c565b806393d8a7ec116101b657806393d8a7ec14610e0f57806394bfbe7414610ea657806394f0eb3d14610efd5780639da779e914610f545761038c565b8063825ffd9214610d0a5780638823151b14610d615780638da5cb5b14610db85761038c565b80633410a699116102c1578063502237d71161025f5780636a68de1e1161022e5780636a68de1e14610bc3578063728c009214610c0b578063747293fb14610c62578063819854e714610cb35761038c565b8063502237d714610a835780635cd9e16f14610ada57806362da5d9014610b155780636738929f14610b6c5761038c565b8063380d42441161029b578063380d42441461092757806342c1eb4e1461097e57806343fb75e8146109d5578063481c6a7514610a2c5761038c565b80633410a6991461082657806336569e771461087957806336e6da11146108d05761038c565b80631dab52b01161032e5780632a441f05116103085780632a441f05146106ca5780632a4c0a1a146107215780632d5eeb3f1461077857806332ac5cd2146107cf5761038c565b80631dab52b0146105c357806320ecf9b71461061a57806329f7fc9e146106735761038c565b80630bd4a73e1161036a5780630bd4a73e146104935780630fee1a20146104ea578063106b03391461054157806314d41c871461056c5761038c565b8063040141e51461038e5780630531b2ad146103e557806308204ea31461043c575b005b34801561039a57600080fd5b506103a3611724565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103f157600080fd5b506103fa61173c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610451611754565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049f57600080fd5b506104a861176c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104f657600080fd5b506104ff611784565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054d57600080fd5b506105566117aa565b6040518082815260200191505060405180910390f35b34801561057857600080fd5b506105816117b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105cf57600080fd5b506105d86117d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561062657600080fd5b5061065d6004803603604081101561063d57600080fd5b8101908080359060200190929190803590602001909291905050506117ee565b6040518082815260200191505060405180910390f35b34801561067f57600080fd5b50610688611837565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d657600080fd5b506106df61184f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072d57600080fd5b50610736611867565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078457600080fd5b5061078d61187f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107db57600080fd5b506107e4611897565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083257600080fd5b5061085f6004803603602081101561084957600080fd5b81019080803590602001909291905050506118aa565b604051808215151515815260200191505060405180910390f35b34801561088557600080fd5b5061088e6119db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108dc57600080fd5b506108e5611a01565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093357600080fd5b5061093c611a19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561098a57600080fd5b50610993611a31565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109e157600080fd5b506109ea611a49565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a3857600080fd5b50610a41611a61565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a8f57600080fd5b50610a98611a87565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ae657600080fd5b50610b1360048036036020811015610afd57600080fd5b8101908080359060200190929190505050611a9f565b005b348015610b2157600080fd5b50610b2a612833565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7857600080fd5b50610b8161284b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bcf57600080fd5b50610c0960048036036040811015610be657600080fd5b8101908080359060200190929190803560ff169060200190929190505050612863565b005b348015610c1757600080fd5b50610c20612a2b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c6e57600080fd5b50610cb160048036036020811015610c8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a43565b005b348015610cbf57600080fd5b50610cc8612af8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d1657600080fd5b50610d1f612b10565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d6d57600080fd5b50610d76612b28565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610dc457600080fd5b50610dcd612b40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e1b57600080fd5b50610e4860048036036020811015610e3257600080fd5b8101908080359060200190929190505050612b66565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826002811115610e9057fe5b60ff168152602001935050505060405180910390f35b348015610eb257600080fd5b50610ebb612bbd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f0957600080fd5b50610f12612bd5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f6057600080fd5b50610f69612bed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fb757600080fd5b50610fc0612c05565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561100e57600080fd5b506110516004803603602081101561102557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c1d565b604051808215151515815260200191505060405180910390f35b34801561107757600080fd5b50611080612c3d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110ce57600080fd5b506110d7612c55565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561112557600080fd5b5061112e612c6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561117c57600080fd5b50611185612c85565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111d357600080fd5b506111dc612c9d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561122a57600080fd5b50611233612cb5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561128157600080fd5b5061128a612ccd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156112d857600080fd5b506112e1612ce5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561132f57600080fd5b50611338612cfd565b005b34801561134657600080fd5b5061134f612dd9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561139d57600080fd5b506113a6612df1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156113f457600080fd5b506113fd612e09565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561144b57600080fd5b50611454612e21565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156114a257600080fd5b506114ab612e39565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156114f957600080fd5b506115266004803603602081101561151057600080fd5b8101908080359060200190929190505050612e51565b6040518082815260200191505060405180910390f35b34801561154857600080fd5b50611551612f32565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561159f57600080fd5b506115e2600480360360208110156115b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f4a565b005b3480156115f057600080fd5b506115f9612fff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561164757600080fd5b50611650613017565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561169e57600080fd5b506116a761302f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156116f557600080fd5b506117226004803603602081101561170c57600080fd5b8101908080359060200190929190505050613047565b005b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b73f5dce57282a584d2746faf1593d3121fcac444dc81565b7389b3635bd2bad145c6f92e82c9e83f06d565498481565b7389d24a6b4ccb1b6faa2625fe562bdd9a2326035981565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73729d19f657bd0614b4985cf1d82531c67569197b81565b6000806117fb8484613186565b905060006001543a1161180e573a611812565b6001545b9050611821826202bf206131a0565b915061182d81836131ba565b9250505092915050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b7339755357759ce0d7f32dc8dc45414cca409ae24e81565b736b175474e89094c44da98b954eedeac495271d0f81565b7314094949152eddbfcd073717200da82fed8dc96081565b6eb3f879cb30fe243b4dfee438691c0481565b6000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c60005473c73e0383f3aff3215e6f04b0331d58cecf0ab8496040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b15801561196b57600080fd5b505afa15801561197f573d6000803e3d6000fd5b505050506040513d604081101561199557600080fd5b8101908080519060200190929190805190602001909291905050509050809250506119c2826103e8613186565b91506119cd84612e51565b905080821192505050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b739b0f70df76165442ca6092939132bbaea77f2d7a81565b735ef30b9986345249bc32d8928b7ee64de9435e3981565b733f4339816edef8d3d3970db2993e2e0ec601076081565b73d7bbb1777e13b6f535dec414f575b858ed300baf81565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73863e41fe88288ebf3fcd91d8dbb679fb83fdfe1781565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611af557600080fd5b60005a905081600560008481526020019081526020016000206000015414611b1c57600080fd5b611b25826118aa565b611b2e57600080fd5b60006005600084815260200190815260200160002060010160149054906101000a900460ff16905060006002811115611b6357fe5b816002811115611b6f57fe5b1415611dc1576005600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd73c2429ea56d3eb580c9bda2a8ee08fb8837cb400c73c73e0383f3aff3215e6f04b0331d58cecf0ab84986604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fd25d7cc0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611d33578082015181840152602081019050611d18565b50505050905090810190601f168015611d605780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015611d8057600080fd5b505af1158015611d94573d6000803e3d6000fd5b505050506040513d6020811015611daa57600080fd5b8101908080519060200190929190505050506123c8565b60016002811115611dce57fe5b816002811115611dda57fe5b14156120e4576005600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd73c2429ea56d3eb580c9bda2a8ee08fb8837cb400c73c73e0383f3aff3215e6f04b0331d58cecf0ab849867339755357759ce0d7f32dc8dc45414cca409ae24e7389d24a6b4ccb1b6faa2625fe562bdd9a232603597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051602401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001955050505050506040516020818303038152906040527fb3e2c80d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561205657808201518184015260208101905061203b565b50505050905090810190601f1680156120835780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156120a357600080fd5b505af11580156120b7573d6000803e3d6000fd5b505050506040513d60208110156120cd57600080fd5b8101908080519060200190929190505050506123c7565b6002808111156120f057fe5b8160028111156120fc57fe5b14156123c6576005600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd73c2429ea56d3eb580c9bda2a8ee08fb8837cb400c73c73e0383f3aff3215e6f04b0331d58cecf0ab849867339755357759ce0d7f32dc8dc45414cca409ae24e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000604051602401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018260ff168152602001955050505050506040516020818303038152906040527f512da898000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561233c578082015181840152602081019050612321565b50505050905090810190601f1680156123695780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561238957600080fd5b505af115801561239d573d6000803e3d6000fd5b505050506040513d60208110156123b357600080fd5b8101908080519060200190929190505050505b5b5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639a816f7d6005600087815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156124a157600080fd5b505af11580156124b5573d6000803e3d6000fd5b505050506040513d60208110156124cb57600080fd5b8101908080519060200190929190505050905060005a905060006124ef85836117ee565b90506005600087815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd7382ecd135dce65fbc6dbdd0e4237e0af93ffd5038735ef30b9986345249bc32d8928b7ee64de9435e39732f0b23f53734252bda2277357e97e1517d6b042a8786604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019450505050506040516020818303038152906040527f7b5a3b43000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156126ff5780820151818401526020810190506126e4565b50505050905090810190601f16801561272c5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561274c57600080fd5b505af1158015612760573d6000803e3d6000fd5b505050506040513d602081101561277657600080fd5b81019080805190602001909291905050505082867f0a0994e6123c6933ee759886905757defe22c1f5d03cd1ee315cb6bde8d11ae8600560008a815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1642604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a3505050505050565b73e4b22d484958e582098a98229a24e8a43801b67481565b7365c79fcb50ca1594b025960e539ed7a9a6d434a381565b600073ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128d257600080fd5b6128dc33836131e6565b6128e557600080fd5b60405180606001604052808381526020013373ffffffffffffffffffffffffffffffffffffffff16815260200182600281111561291e57fe5b815250600560008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff021916908360028111156129a957fe5b02179055509050506003600081548092919060010191905055503373ffffffffffffffffffffffffffffffffffffffff167f69578285144d6f0cb02144d864dca2866b7500614111db91cd3785ec7f60ea98838360405180838152602001826002811115612a1357fe5b60ff1681526020019250505060405180910390a25050565b734678f0a6958e4d2bc4f1baf7bc52e8f3564f3fe481565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a9d57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7382ecd135dce65fbc6dbdd0e4237e0af93ffd503881565b739f8f72aa9304c8b593d555f12ef6589cc3a579a281565b735a15566417e6c1c9546523066500bddbc53f88c781565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16905083565b73ecf88e1cec2d2894a0295db3d86fe7ce4991e6df81565b73865b41584a22f8345fca4b71c42a1e7abcd67ecb81565b7389d24a6b4ccb1b6faa2625fe562bdd9a2326035981565b731b14e8d511c9a4395425314f849bd737baf8208f81565b60046020528060005260406000206000915054906101000a900460ff1681565b7319c0976f590d67707e62397c87829d896dc0f1f181565b738f337bd3b7f2b05d9a8dc8ac518584e83342489381565b7383152caa0d344a2fd428769529e2d490a88f439381565b7325a01a05c188dacbcf1d61af55d4a5b4021f7eed81565b73c0a47dfe034b400b47bdad5fecda2621de6c4d9581565b739abe2715d2d99246269b8e17e9d1b620e9bf655881565b73f53ad2c6851052a81b42133467480961b2321c0981565b73818e6fecd516ecc3849daf6845e3ec868087b75581565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d5757600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015612dd6573d6000803e3d6000fd5b50565b7335d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b739759a6ac90977b93b58547b4a71c78317f391a2881565b73322d58b9e75a6918f7e7849aee0ff09369977e0881565b731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e81565b731e30124fde14533231216d95f7798cd0061e5cf881565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fdac0025836040518263ffffffff1660e01b815260040180828152602001915050608060405180830381600087803b158015612ec857600080fd5b505af1158015612edc573d6000803e3d6000fd5b505050506040513d6080811015612ef257600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190505050909192509091505080915050919050565b73c2429ea56d3eb580c9bda2a8ee08fb8837cb400c81565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fa457600080fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b73448a5065aebb8e423f0896e6c5d525c040f59af381565b732f0b23f53734252bda2277357e97e1517d6b042a81565b73c73e0383f3aff3215e6f04b0331d58cecf0ab84981565b600073ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156130b757600080fd5b6130c133826131e6565b6130ca57600080fd5b600560008281526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549060ff021916905550506003600081548092919060010191905055503373ffffffffffffffffffffffffffffffffffffffff167fbd7d343a76cb95ae0e4391dff1b19b1894066d854717b1b63971cb7e4ad56410826040518082815260200191505060405180910390a250565b600082828403915081111561319a57600080fd5b92915050565b60008282840191508110156131b457600080fd5b92915050565b6000808214806131d757508282838502925082816131d457fe5b04145b6131e057600080fd5b92915050565b60008273ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663de5f5517846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561327257600080fd5b505afa158015613286573d6000803e3d6000fd5b505050506040513d602081101561329c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16146132cd57600080fd5b600190509291505056fea165627a7a72305820c8d0ab7df222d45d51da0f3071bb0c18121855abb484797e921e8cb7d22ac35f0029
Deployed Bytecode
0x60806040526004361061038c5760003560e01c8063825ffd92116101dc578063c9fde27011610102578063ddaa293c116100a0578063f0d405e51161006f578063f0d405e5146115e4578063f1d253961461163b578063f835247214611692578063f8c60146146116e95761038c565b8063ddaa293c14611496578063dff01deb146114ed578063e8f8d8071461153c578063eef21cd2146115935761038c565b8063cf786f8f116100dc578063cf786f8f1461133a578063cfac57c714611391578063d3661fa5146113e8578063d36b907d1461143f5761038c565b8063c9fde27014611275578063ce9bde1d146112cc578063ced72f87146113235761038c565b8063a46a66c91161017a578063bc17effa11610149578063bc17effa14611119578063c16921b714611170578063c74c0fac146111c7578063c917c2d31461121e5761038c565b8063a46a66c914610fab578063a71975af14611002578063acbeba611461106b578063b175afa1146110c25761038c565b806393d8a7ec116101b657806393d8a7ec14610e0f57806394bfbe7414610ea657806394f0eb3d14610efd5780639da779e914610f545761038c565b8063825ffd9214610d0a5780638823151b14610d615780638da5cb5b14610db85761038c565b80633410a699116102c1578063502237d71161025f5780636a68de1e1161022e5780636a68de1e14610bc3578063728c009214610c0b578063747293fb14610c62578063819854e714610cb35761038c565b8063502237d714610a835780635cd9e16f14610ada57806362da5d9014610b155780636738929f14610b6c5761038c565b8063380d42441161029b578063380d42441461092757806342c1eb4e1461097e57806343fb75e8146109d5578063481c6a7514610a2c5761038c565b80633410a6991461082657806336569e771461087957806336e6da11146108d05761038c565b80631dab52b01161032e5780632a441f05116103085780632a441f05146106ca5780632a4c0a1a146107215780632d5eeb3f1461077857806332ac5cd2146107cf5761038c565b80631dab52b0146105c357806320ecf9b71461061a57806329f7fc9e146106735761038c565b80630bd4a73e1161036a5780630bd4a73e146104935780630fee1a20146104ea578063106b03391461054157806314d41c871461056c5761038c565b8063040141e51461038e5780630531b2ad146103e557806308204ea31461043c575b005b34801561039a57600080fd5b506103a3611724565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103f157600080fd5b506103fa61173c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610451611754565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049f57600080fd5b506104a861176c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104f657600080fd5b506104ff611784565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054d57600080fd5b506105566117aa565b6040518082815260200191505060405180910390f35b34801561057857600080fd5b506105816117b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105cf57600080fd5b506105d86117d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561062657600080fd5b5061065d6004803603604081101561063d57600080fd5b8101908080359060200190929190803590602001909291905050506117ee565b6040518082815260200191505060405180910390f35b34801561067f57600080fd5b50610688611837565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d657600080fd5b506106df61184f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072d57600080fd5b50610736611867565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078457600080fd5b5061078d61187f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107db57600080fd5b506107e4611897565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083257600080fd5b5061085f6004803603602081101561084957600080fd5b81019080803590602001909291905050506118aa565b604051808215151515815260200191505060405180910390f35b34801561088557600080fd5b5061088e6119db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108dc57600080fd5b506108e5611a01565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093357600080fd5b5061093c611a19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561098a57600080fd5b50610993611a31565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109e157600080fd5b506109ea611a49565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a3857600080fd5b50610a41611a61565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a8f57600080fd5b50610a98611a87565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ae657600080fd5b50610b1360048036036020811015610afd57600080fd5b8101908080359060200190929190505050611a9f565b005b348015610b2157600080fd5b50610b2a612833565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7857600080fd5b50610b8161284b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bcf57600080fd5b50610c0960048036036040811015610be657600080fd5b8101908080359060200190929190803560ff169060200190929190505050612863565b005b348015610c1757600080fd5b50610c20612a2b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c6e57600080fd5b50610cb160048036036020811015610c8557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a43565b005b348015610cbf57600080fd5b50610cc8612af8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d1657600080fd5b50610d1f612b10565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d6d57600080fd5b50610d76612b28565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610dc457600080fd5b50610dcd612b40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e1b57600080fd5b50610e4860048036036020811015610e3257600080fd5b8101908080359060200190929190505050612b66565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826002811115610e9057fe5b60ff168152602001935050505060405180910390f35b348015610eb257600080fd5b50610ebb612bbd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f0957600080fd5b50610f12612bd5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f6057600080fd5b50610f69612bed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fb757600080fd5b50610fc0612c05565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561100e57600080fd5b506110516004803603602081101561102557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c1d565b604051808215151515815260200191505060405180910390f35b34801561107757600080fd5b50611080612c3d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110ce57600080fd5b506110d7612c55565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561112557600080fd5b5061112e612c6d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561117c57600080fd5b50611185612c85565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156111d357600080fd5b506111dc612c9d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561122a57600080fd5b50611233612cb5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561128157600080fd5b5061128a612ccd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156112d857600080fd5b506112e1612ce5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561132f57600080fd5b50611338612cfd565b005b34801561134657600080fd5b5061134f612dd9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561139d57600080fd5b506113a6612df1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156113f457600080fd5b506113fd612e09565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561144b57600080fd5b50611454612e21565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156114a257600080fd5b506114ab612e39565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156114f957600080fd5b506115266004803603602081101561151057600080fd5b8101908080359060200190929190505050612e51565b6040518082815260200191505060405180910390f35b34801561154857600080fd5b50611551612f32565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561159f57600080fd5b506115e2600480360360208110156115b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f4a565b005b3480156115f057600080fd5b506115f9612fff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561164757600080fd5b50611650613017565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561169e57600080fd5b506116a761302f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156116f557600080fd5b506117226004803603602081101561170c57600080fd5b8101908080359060200190929190505050613047565b005b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b73f5dce57282a584d2746faf1593d3121fcac444dc81565b7389b3635bd2bad145c6f92e82c9e83f06d565498481565b7389d24a6b4ccb1b6faa2625fe562bdd9a2326035981565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73729d19f657bd0614b4985cf1d82531c67569197b81565b6000806117fb8484613186565b905060006001543a1161180e573a611812565b6001545b9050611821826202bf206131a0565b915061182d81836131ba565b9250505092915050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b7339755357759ce0d7f32dc8dc45414cca409ae24e81565b736b175474e89094c44da98b954eedeac495271d0f81565b7314094949152eddbfcd073717200da82fed8dc96081565b6eb3f879cb30fe243b4dfee438691c0481565b6000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632424be5c60005473c73e0383f3aff3215e6f04b0331d58cecf0ab8496040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b15801561196b57600080fd5b505afa15801561197f573d6000803e3d6000fd5b505050506040513d604081101561199557600080fd5b8101908080519060200190929190805190602001909291905050509050809250506119c2826103e8613186565b91506119cd84612e51565b905080821192505050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b739b0f70df76165442ca6092939132bbaea77f2d7a81565b735ef30b9986345249bc32d8928b7ee64de9435e3981565b733f4339816edef8d3d3970db2993e2e0ec601076081565b73d7bbb1777e13b6f535dec414f575b858ed300baf81565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73863e41fe88288ebf3fcd91d8dbb679fb83fdfe1781565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611af557600080fd5b60005a905081600560008481526020019081526020016000206000015414611b1c57600080fd5b611b25826118aa565b611b2e57600080fd5b60006005600084815260200190815260200160002060010160149054906101000a900460ff16905060006002811115611b6357fe5b816002811115611b6f57fe5b1415611dc1576005600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd73c2429ea56d3eb580c9bda2a8ee08fb8837cb400c73c73e0383f3aff3215e6f04b0331d58cecf0ab84986604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fd25d7cc0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611d33578082015181840152602081019050611d18565b50505050905090810190601f168015611d605780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b158015611d8057600080fd5b505af1158015611d94573d6000803e3d6000fd5b505050506040513d6020811015611daa57600080fd5b8101908080519060200190929190505050506123c8565b60016002811115611dce57fe5b816002811115611dda57fe5b14156120e4576005600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd73c2429ea56d3eb580c9bda2a8ee08fb8837cb400c73c73e0383f3aff3215e6f04b0331d58cecf0ab849867339755357759ce0d7f32dc8dc45414cca409ae24e7389d24a6b4ccb1b6faa2625fe562bdd9a232603597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051602401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001955050505050506040516020818303038152906040527fb3e2c80d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561205657808201518184015260208101905061203b565b50505050905090810190601f1680156120835780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b1580156120a357600080fd5b505af11580156120b7573d6000803e3d6000fd5b505050506040513d60208110156120cd57600080fd5b8101908080519060200190929190505050506123c7565b6002808111156120f057fe5b8160028111156120fc57fe5b14156123c6576005600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd73c2429ea56d3eb580c9bda2a8ee08fb8837cb400c73c73e0383f3aff3215e6f04b0331d58cecf0ab849867339755357759ce0d7f32dc8dc45414cca409ae24e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000604051602401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018260ff168152602001955050505050506040516020818303038152906040527f512da898000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561233c578082015181840152602081019050612321565b50505050905090810190601f1680156123695780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561238957600080fd5b505af115801561239d573d6000803e3d6000fd5b505050506040513d60208110156123b357600080fd5b8101908080519060200190929190505050505b5b5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639a816f7d6005600087815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156124a157600080fd5b505af11580156124b5573d6000803e3d6000fd5b505050506040513d60208110156124cb57600080fd5b8101908080519060200190929190505050905060005a905060006124ef85836117ee565b90506005600087815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd7382ecd135dce65fbc6dbdd0e4237e0af93ffd5038735ef30b9986345249bc32d8928b7ee64de9435e39732f0b23f53734252bda2277357e97e1517d6b042a8786604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019450505050506040516020818303038152906040527f7b5a3b43000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156126ff5780820151818401526020810190506126e4565b50505050905090810190601f16801561272c5780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b15801561274c57600080fd5b505af1158015612760573d6000803e3d6000fd5b505050506040513d602081101561277657600080fd5b81019080805190602001909291905050505082867f0a0994e6123c6933ee759886905757defe22c1f5d03cd1ee315cb6bde8d11ae8600560008a815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1642604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a3505050505050565b73e4b22d484958e582098a98229a24e8a43801b67481565b7365c79fcb50ca1594b025960e539ed7a9a6d434a381565b600073ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128d257600080fd5b6128dc33836131e6565b6128e557600080fd5b60405180606001604052808381526020013373ffffffffffffffffffffffffffffffffffffffff16815260200182600281111561291e57fe5b815250600560008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff021916908360028111156129a957fe5b02179055509050506003600081548092919060010191905055503373ffffffffffffffffffffffffffffffffffffffff167f69578285144d6f0cb02144d864dca2866b7500614111db91cd3785ec7f60ea98838360405180838152602001826002811115612a1357fe5b60ff1681526020019250505060405180910390a25050565b734678f0a6958e4d2bc4f1baf7bc52e8f3564f3fe481565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a9d57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7382ecd135dce65fbc6dbdd0e4237e0af93ffd503881565b739f8f72aa9304c8b593d555f12ef6589cc3a579a281565b735a15566417e6c1c9546523066500bddbc53f88c781565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16905083565b73ecf88e1cec2d2894a0295db3d86fe7ce4991e6df81565b73865b41584a22f8345fca4b71c42a1e7abcd67ecb81565b7389d24a6b4ccb1b6faa2625fe562bdd9a2326035981565b731b14e8d511c9a4395425314f849bd737baf8208f81565b60046020528060005260406000206000915054906101000a900460ff1681565b7319c0976f590d67707e62397c87829d896dc0f1f181565b738f337bd3b7f2b05d9a8dc8ac518584e83342489381565b7383152caa0d344a2fd428769529e2d490a88f439381565b7325a01a05c188dacbcf1d61af55d4a5b4021f7eed81565b73c0a47dfe034b400b47bdad5fecda2621de6c4d9581565b739abe2715d2d99246269b8e17e9d1b620e9bf655881565b73f53ad2c6851052a81b42133467480961b2321c0981565b73818e6fecd516ecc3849daf6845e3ec868087b75581565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d5757600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015612dd6573d6000803e3d6000fd5b50565b7335d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b739759a6ac90977b93b58547b4a71c78317f391a2881565b73322d58b9e75a6918f7e7849aee0ff09369977e0881565b731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e81565b731e30124fde14533231216d95f7798cd0061e5cf881565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fdac0025836040518263ffffffff1660e01b815260040180828152602001915050608060405180830381600087803b158015612ec857600080fd5b505af1158015612edc573d6000803e3d6000fd5b505050506040513d6080811015612ef257600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190505050909192509091505080915050919050565b73c2429ea56d3eb580c9bda2a8ee08fb8837cb400c81565b3373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fa457600080fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b73448a5065aebb8e423f0896e6c5d525c040f59af381565b732f0b23f53734252bda2277357e97e1517d6b042a81565b73c73e0383f3aff3215e6f04b0331d58cecf0ab84981565b600073ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156130b757600080fd5b6130c133826131e6565b6130ca57600080fd5b600560008281526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549060ff021916905550506003600081548092919060010191905055503373ffffffffffffffffffffffffffffffffffffffff167fbd7d343a76cb95ae0e4391dff1b19b1894066d854717b1b63971cb7e4ad56410826040518082815260200191505060405180910390a250565b600082828403915081111561319a57600080fd5b92915050565b60008282840191508110156131b457600080fd5b92915050565b6000808214806131d757508282838502925082816131d457fe5b04145b6131e057600080fd5b92915050565b60008273ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663de5f5517846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561327257600080fd5b505afa158015613286573d6000803e3d6000fd5b505050506040513d602081101561329c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16146132cd57600080fd5b600190509291505056fea165627a7a72305820c8d0ab7df222d45d51da0f3071bb0c18121855abb484797e921e8cb7d22ac35f0029
Swarm Source
bzzr://c8d0ab7df222d45d51da0f3071bb0c18121855abb484797e921e8cb7d22ac35f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,701.32 | 0.1368 | $369.46 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.