Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 18 from a total of 18 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Write Off | 19626483 | 296 days ago | IN | 0 ETH | 0.00423971 | ||||
Write Off | 16990673 | 666 days ago | IN | 0 ETH | 0.00421401 | ||||
Write Off | 16918987 | 676 days ago | IN | 0 ETH | 0.00378229 | ||||
Write Off | 16918969 | 676 days ago | IN | 0 ETH | 0.00351342 | ||||
Write Off | 16826866 | 689 days ago | IN | 0 ETH | 0.00522681 | ||||
Write Off | 16826861 | 689 days ago | IN | 0 ETH | 0.00666243 | ||||
Write Off | 16826852 | 689 days ago | IN | 0 ETH | 0.00099576 | ||||
Write Off | 16570677 | 725 days ago | IN | 0 ETH | 0.00453373 | ||||
Write Off | 16570557 | 725 days ago | IN | 0 ETH | 0.00082084 | ||||
Write Off | 16549710 | 728 days ago | IN | 0 ETH | 0.00074569 | ||||
Write Off | 16329716 | 759 days ago | IN | 0 ETH | 0.00255924 | ||||
Write Off | 16301047 | 763 days ago | IN | 0 ETH | 0.00251167 | ||||
Write Off | 16301044 | 763 days ago | IN | 0 ETH | 0.00244961 | ||||
Write Off | 16301040 | 763 days ago | IN | 0 ETH | 0.00274138 | ||||
Write Off | 16301037 | 763 days ago | IN | 0 ETH | 0.00301739 | ||||
Write Off | 16301034 | 763 days ago | IN | 0 ETH | 0.00311348 | ||||
Write Off | 16301031 | 763 days ago | IN | 0 ETH | 0.00308531 | ||||
Rely | 16292532 | 764 days ago | IN | 0 ETH | 0.0008802 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
WriteOffWrapper
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPL-3.0-only // Copyright (C) 2018 Rain <[email protected]>, Centrifuge pragma solidity >=0.7.6; pragma experimental ABIEncoderV2; import "tinlake-auth/auth.sol"; import {Discounting} from "../feed/discounting.sol"; struct Loan { address registry; uint256 tokenId; } interface ShelfLike { function shelf(uint256) external view returns (Loan memory); } interface PileLike { function changeRate(uint256, uint256) external; } interface FeedLike { function pile() external view returns (address); function shelf() external view returns (address); function nftID(uint256 loan) external view returns (bytes32); function maturityDate(bytes32 nft_) external view returns (uint256); } interface RootLike { function borrowerDeployer() external view returns (address); } interface BorrowerDeployerLike { function pile() external view returns (address); function shelf() external view returns (address); function feed() external view returns (address); } /// @notice WriteOff contract can move overdue loans into a write off group /// The wrapper contract manages multiple different pools contract WriteOffWrapper is Auth, Discounting { mapping(address => uint256) public writeOffRates; constructor() { wards[msg.sender] = 1; emit Rely(msg.sender); writeOffRates[address(0x05739C677286d38CcBF0FfC8f9cdbD45904B47Fd)] = 1000; // Bling Series 1 writeOffRates[address(0xAAEaCfcCc3d3249f125Ba0644495560309C266cB)] = 1001; // Pezesha 1 writeOffRates[address(0x9E39e0130558cd9A01C1e3c7b2c3803baCb59616)] = 1001; // GIG Pool writeOffRates[address(0x11C14AAa42e361Cf3500C9C46f34171856e3f657)] = 1000; // Fortunafi 1 writeOffRates[address(0xE7876f282bdF0f62e5fdb2C63b8b89c10538dF32)] = 1000; // Harbor Trade 2 writeOffRates[address(0x3eC5c16E7f2C6A80E31997C68D8Fa6ACe089807f)] = 1000; // New Silver 2 writeOffRates[address(0xe17F3c35C18b2Af84ceE2eDed673c6A08A671695)] = 1000; // Branch Series 3 writeOffRates[address(0x99D0333f97432fdEfA25B7634520d505e58B131B)] = 1000; // FactorChain 1 writeOffRates[address(0x37c8B836eA1b89b7cC4cFdDed4C4fbC454CcC679)] = 1000; // Paperchain 3 writeOffRates[address(0xB7d1DE24c0243e6A3eC4De9fAB2B19AB46Fa941F)] = 1001; // UP Series 1 writeOffRates[address(0x3fC72dA5545E2AB6202D81fbEb1C8273Be95068C)] = 1000; // ConsolFreight 4 writeOffRates[address(0xdB07B21109117208a0317adfbed484C87c9c2aFf)] = 1000; // databased.FINANCE 1 writeOffRates[address(0x4b0f712Aa9F91359f48D8628De8483B04530751a)] = 1001; // Peoples 1 } /// @notice writes off an overdue loan /// @param root the address of the root contract function writeOff(address root, uint256 loan) public auth { BorrowerDeployerLike deployer = BorrowerDeployerLike(RootLike(root).borrowerDeployer()); FeedLike feed = FeedLike(deployer.feed()); PileLike pile = PileLike(deployer.pile()); require(writeOffRates[address(pile)] != 0, "WriteOffWrapper/pile-has-no-write-off-group"); ShelfLike shelf = ShelfLike(deployer.shelf()); require(shelf.shelf(loan).tokenId != 0, "WriteOffWrapper/loan-does-not-exist"); uint256 nnow = uniqueDayTimestamp(block.timestamp); bytes32 nftID = feed.nftID(loan); uint256 maturityDate = feed.maturityDate(nftID); require(maturityDate < nnow, "WriteOffWrapper/loan-not-overdue"); pile.changeRate(loan, writeOffRates[address(pile)]); } function file(bytes32 what, address addr, uint256 data) public auth { if (what == "writeOffRates") { writeOffRates[addr] = data; } } }
// SPDX-License-Identifier: AGPL-3.0-only // Copyright (C) Centrifuge 2020, based on MakerDAO dss https://github.com/makerdao/dss pragma solidity >=0.5.15; contract Auth { mapping (address => uint256) public wards; event Rely(address indexed usr); event Deny(address indexed usr); function rely(address usr) external auth { wards[usr] = 1; emit Rely(usr); } function deny(address usr) external auth { wards[usr] = 0; emit Deny(usr); } modifier auth { require(wards[msg.sender] == 1, "not-authorized"); _; } }
// SPDX-License-Identifier: AGPL-3.0-only // Copyright (C) 2018 Rain <[email protected]> pragma solidity >=0.5.15; contract Math { uint256 constant ONE = 10 ** 27; function safeAdd(uint x, uint y) public pure returns (uint z) { require((z = x + y) >= x, "safe-add-failed"); } function safeSub(uint x, uint y) public pure returns (uint z) { require((z = x - y) <= x, "safe-sub-failed"); } function safeMul(uint x, uint y) public pure returns (uint z) { require(y == 0 || (z = x * y) / y == x, "safe-mul-failed"); } function safeDiv(uint x, uint y) public pure returns (uint z) { z = x / y; } function rmul(uint x, uint y) public pure returns (uint z) { z = safeMul(x, y) / ONE; } function rdiv(uint x, uint y) public pure returns (uint z) { require(y > 0, "division by zero"); z = safeAdd(safeMul(x, ONE), y / 2) / y; } function rdivup(uint x, uint y) internal pure returns (uint z) { require(y > 0, "division by zero"); // always rounds up z = safeAdd(safeMul(x, ONE), safeSub(y, 1)) / y; } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.7.6; import "tinlake-math/math.sol"; /// @notice Discounting contract without a state which defines the relevant formulas for the navfeed contract Discounting is Math { /// @notice calculates the discount for a given loan /// @param discountRate the discount rate /// @param fv the future value of the loan /// @param normalizedBlockTimestamp the normalized block time (each day to midnight) /// @param maturityDate the maturity date of the loan /// @return result discount for the loan function calcDiscount(uint256 discountRate, uint256 fv, uint256 normalizedBlockTimestamp, uint256 maturityDate) public pure returns (uint256 result) { return rdiv(fv, rpow(discountRate, safeSub(maturityDate, normalizedBlockTimestamp), ONE)); } /// @notice calculate the future value based on the amount, maturityDate interestRate and recoveryRate /// @param loanInterestRate the interest rate of the loan /// @param amount of the loan (principal) /// @param maturityDate the maturity date of the loan /// @param recoveryRatePD the recovery rate together with the probability of default of the loan /// @return fv future value of the loan function calcFutureValue(uint256 loanInterestRate, uint256 amount, uint256 maturityDate, uint256 recoveryRatePD) public view returns (uint256 fv) { uint256 nnow = uniqueDayTimestamp(block.timestamp); uint256 timeRemaining = 0; if (maturityDate > nnow) { timeRemaining = safeSub(maturityDate, nnow); } return rmul(rmul(rpow(loanInterestRate, timeRemaining, ONE), amount), recoveryRatePD); } /// @notice substracts to values if the result smaller than 0 it returns 0 /// @param x the first value (minuend) /// @param y the second value (subtrahend) /// @return result result of the subtraction function secureSub(uint256 x, uint256 y) public pure returns (uint256 result) { if (y > x) { return 0; } return safeSub(x, y); } /// @notice normalizes a timestamp to round down to the nearest midnight (UTC) /// @param timestamp the timestamp which should be normalized /// @return nTimestamp normalized timestamp function uniqueDayTimestamp(uint256 timestamp) public pure returns (uint256 nTimestamp) { return (1 days) * (timestamp / (1 days)); } /// @notice rpow peforms a math pow operation with fixed point number /// adopted from ds-math /// @param x the base for the pow operation /// @param n the exponent for the pow operation /// @param base the base of the fixed point number /// @return z the result of the pow operation function rpow(uint256 x, uint256 n, uint256 base) public pure returns (uint256 z) { assembly { switch x case 0 { switch n case 0 { z := base } default { z := 0 } } default { switch mod(n, 2) case 0 { z := base } default { z := x } let half := div(base, 2) // for rounding. for { n := div(n, 2) } n { n := div(n, 2) } { let xx := mul(x, x) if iszero(eq(div(xx, x), x)) { revert(0, 0) } let xxRound := add(xx, half) if lt(xxRound, xx) { revert(0, 0) } x := div(xxRound, base) if mod(n, 2) { let zx := mul(z, x) if and(iszero(iszero(x)), iszero(eq(div(zx, x), z))) { revert(0, 0) } let zxRound := add(zx, half) if lt(zxRound, zx) { revert(0, 0) } z := div(zxRound, base) } } } } } }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "tinlake-auth/=lib/tinlake-auth/src/", "tinlake-erc20/=lib/tinlake-erc20/src/", "tinlake-math/=lib/tinlake-math/src/", "tinlake-title/=lib/tinlake-title/src/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "ipfs" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "istanbul", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Rely","type":"event"},{"inputs":[{"internalType":"uint256","name":"discountRate","type":"uint256"},{"internalType":"uint256","name":"fv","type":"uint256"},{"internalType":"uint256","name":"normalizedBlockTimestamp","type":"uint256"},{"internalType":"uint256","name":"maturityDate","type":"uint256"}],"name":"calcDiscount","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"loanInterestRate","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"maturityDate","type":"uint256"},{"internalType":"uint256","name":"recoveryRatePD","type":"uint256"}],"name":"calcFutureValue","outputs":[{"internalType":"uint256","name":"fv","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"rdiv","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"rmul","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"n","type":"uint256"},{"internalType":"uint256","name":"base","type":"uint256"}],"name":"rpow","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"safeAdd","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"safeDiv","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"safeMul","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"safeSub","outputs":[{"internalType":"uint256","name":"z","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"name":"secureSub","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"uniqueDayTimestamp","outputs":[{"internalType":"uint256","name":"nTimestamp","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"root","type":"address"},{"internalType":"uint256","name":"loan","type":"uint256"}],"name":"writeOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"writeOffRates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b503360008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a260016020526103e87fc043db3edf500fc1158114cdec3758a5bd1366f07f5554d5d61b3fb3564c12458190556103e97f394d5b9784c79582366e8f6ebbb7c087cdb359bc40f88a22d46a540a34bfbe928190557f751127a6224240f374b6d10a4d12e8e166a6637d3724ae7ff1a0dffc34f706098190557f98e79411fb3af3cf0a87a4dd7ac07861c3962cfb6718a32130e11208d23b8da18290557f34a5ba086d19884a446923bb1ffa574d54df8a580eb9d1ba4b26f891b61557748290557f52ac53b312ff3f649b80db67c8698aa85984194f6e3539b7c35bb0847cf369208290557f03bd7dc02e365e676212106f9de08cf29ca85aac72be0636ae4ed6b6c14280ee8290557f6963b79e4a81e36786dca0202107befc55fdda0b5b4c1626fca15d8c4908edb18290557ffffdbdf5ee90c900e8a2b2f4833d1c4b2137981d7d68d051671b44ababbfe0778290557fb5c467644771eb9fd045c65f813c9ef26d686e8960b86fc38ba6ce31084c9c968190557f4d996df17b69a6a79eada1881d72ac91fb6fe1ab9f9b05e59377382392cef8e58290557ff85edf82dcbd341d846ed35ec4dc7b6845ad9d8c4ededcb5e79f90281e14517c91909155734b0f712aa9f91359f48d8628de8483b04530751a6000527fb7f5cd1a70cfbd03b57c7efbfe99c71cef3c2af999cce17f24940ab1807de59f55610ec58061024f6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806367b870af116100a2578063bf353dbb11610071578063bf353dbb1461020c578063d05c78da1461021f578063e6cb901314610232578063e96bd8c814610245578063ffe38447146102585761010b565b806367b870af146101c05780639c52a7f1146101d3578063a293d1e8146101e6578063b5931f7c146101f95761010b565b806333e9151c116100de57806333e9151c146101745780633a43c42a1461018757806365fae35e1461019a57806367457022146101ad5761010b565b80630e2286d3146101105780631c5a27db1461013957806322b385d81461014c57806326ed486c14610161575b600080fd5b61012361011e366004610d20565b61026b565b6040516101309190610d9d565b60405180910390f35b610123610147366004610d6c565b6102e6565b61015f61015a366004610c3d565b61033f565b005b61015f61016f366004610c80565b6107e8565b610123610182366004610d08565b610876565b610123610195366004610d6c565b610882565b61015f6101a8366004610c05565b6108b1565b6101236101bb366004610d20565b61094b565b6101236101ce366004610d41565b610964565b61015f6101e1366004610c05565b610a22565b6101236101f4366004610d20565b610abb565b610123610207366004610d20565b610b0b565b61012361021a366004610c05565b610b16565b61012361022d366004610d20565b610b28565b610123610240366004610d20565b610b86565b610123610253366004610d20565b610bd0565b610123610266366004610c05565b610bf3565b60008082116102b4576040805162461bcd60e51b815260206004820152601060248201526f6469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b816102d76102ce856b033b2e3c9fd0803ce8000000610b28565b60028504610b86565b816102de57fe5b049392505050565b6000806102f242610876565b905060008185111561030b576103088583610abb565b90505b61033461032e61032889846b033b2e3c9fd0803ce8000000610964565b8861094b565b8561094b565b979650505050505050565b33600090815260208190526040902054600114610394576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd0b585d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6000826001600160a01b031663fe7a33ad6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103cf57600080fd5b505afa1580156103e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104079190610c21565b90506000816001600160a01b03166337a7b7d86040518163ffffffff1660e01b815260040160206040518083038186803b15801561044457600080fd5b505afa158015610458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047c9190610c21565b90506000826001600160a01b03166362f6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b957600080fd5b505afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f19190610c21565b6001600160a01b0381166000908152600160205260409020549091506105325760405162461bcd60e51b815260040161052990610de9565b60405180910390fd5b6000836001600160a01b031663479b9c6c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561056d57600080fd5b505afa158015610581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a59190610c21565b60405163056e00b360e01b81529091506001600160a01b0382169063056e00b3906105d4908890600401610d9d565b604080518083038186803b1580156105eb57600080fd5b505afa1580156105ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106239190610cb7565b602001516106435760405162461bcd60e51b815260040161052990610da6565b600061064e42610876565b90506000846001600160a01b03166337a5d9ee886040518263ffffffff1660e01b815260040161067e9190610d9d565b60206040518083038186803b15801561069657600080fd5b505afa1580156106aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ce9190610c68565b90506000856001600160a01b031663065dad8f836040518263ffffffff1660e01b81526004016106fe9190610d9d565b60206040518083038186803b15801561071657600080fd5b505afa15801561072a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074e9190610c68565b905082811061076f5760405162461bcd60e51b815260040161052990610e34565b6001600160a01b03851660008181526001602052604090819020549051632a20ec3160e21b815263a883b0c4916107ab918c9190600401610e69565b600060405180830381600087803b1580156107c557600080fd5b505af11580156107d9573d6000803e3d6000fd5b50505050505050505050505050565b3360009081526020819052604090205460011461083d576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd0b585d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b826c77726974654f6666526174657360981b1415610871576001600160a01b03821660009081526001602052604090208190555b505050565b62015180908190040290565b60006108a88461011e876108968688610abb565b6b033b2e3c9fd0803ce8000000610964565b95945050505050565b33600090815260208190526040902054600114610906576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd0b585d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b60006b033b2e3c9fd0803ce80000006102d78484610b28565b6000838015610a045760018416801561097f57859250610983565b8392505b50600283046002850494505b84156109fe5785860286878204146109a657600080fd5b818101818110156109b657600080fd5b85900496505060018516156109f35785830283878204141587151516156109dc57600080fd5b818101818110156109ec57600080fd5b8590049350505b60028504945061098f565b50610a1a565b838015610a145760009250610a18565b8392505b505b509392505050565b33600090815260208190526040902054600114610a77576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd0b585d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b80820382811115610b05576040805162461bcd60e51b815260206004820152600f60248201526e1cd859994b5cdd588b59985a5b1959608a1b604482015290519081900360640190fd5b92915050565b60008183816102de57fe5b60006020819052908152604090205481565b6000811580610b4357505080820282828281610b4057fe5b04145b610b05576040805162461bcd60e51b815260206004820152600f60248201526e1cd859994b5b5d5b0b59985a5b1959608a1b604482015290519081900360640190fd5b80820182811015610b05576040805162461bcd60e51b815260206004820152600f60248201526e1cd859994b5859190b59985a5b1959608a1b604482015290519081900360640190fd5b600082821115610be257506000610b05565b610bec8383610abb565b9392505050565b60016020526000908152604090205481565b600060208284031215610c16578081fd5b8135610bec81610e77565b600060208284031215610c32578081fd5b8151610bec81610e77565b60008060408385031215610c4f578081fd5b8235610c5a81610e77565b946020939093013593505050565b600060208284031215610c79578081fd5b5051919050565b600080600060608486031215610c94578081fd5b833592506020840135610ca681610e77565b929592945050506040919091013590565b600060408284031215610cc8578081fd5b6040516040810181811067ffffffffffffffff82111715610ce557fe5b6040528251610cf381610e77565b81526020928301519281019290925250919050565b600060208284031215610d19578081fd5b5035919050565b60008060408385031215610d32578182fd5b50508035926020909101359150565b600080600060608486031215610d55578283fd5b505081359360208301359350604090920135919050565b60008060008060808587031215610d81578081fd5b5050823594602084013594506040840135936060013592509050565b90815260200190565b60208082526023908201527f57726974654f6666577261707065722f6c6f616e2d646f65732d6e6f742d65786040820152621a5cdd60ea1b606082015260800190565b6020808252602b908201527f57726974654f6666577261707065722f70696c652d6861732d6e6f2d7772697460408201526a0652d6f66662d67726f75760ac1b606082015260800190565b6020808252818101527f57726974654f6666577261707065722f6c6f616e2d6e6f742d6f766572647565604082015260600190565b918252602082015260400190565b6001600160a01b0381168114610e8c57600080fd5b5056fea26469706673582212204c1ea0eb3b24b4d18f8d394b22dbc506c8aeaca331f9337376538d76ef9b347a64736f6c63430007060033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806367b870af116100a2578063bf353dbb11610071578063bf353dbb1461020c578063d05c78da1461021f578063e6cb901314610232578063e96bd8c814610245578063ffe38447146102585761010b565b806367b870af146101c05780639c52a7f1146101d3578063a293d1e8146101e6578063b5931f7c146101f95761010b565b806333e9151c116100de57806333e9151c146101745780633a43c42a1461018757806365fae35e1461019a57806367457022146101ad5761010b565b80630e2286d3146101105780631c5a27db1461013957806322b385d81461014c57806326ed486c14610161575b600080fd5b61012361011e366004610d20565b61026b565b6040516101309190610d9d565b60405180910390f35b610123610147366004610d6c565b6102e6565b61015f61015a366004610c3d565b61033f565b005b61015f61016f366004610c80565b6107e8565b610123610182366004610d08565b610876565b610123610195366004610d6c565b610882565b61015f6101a8366004610c05565b6108b1565b6101236101bb366004610d20565b61094b565b6101236101ce366004610d41565b610964565b61015f6101e1366004610c05565b610a22565b6101236101f4366004610d20565b610abb565b610123610207366004610d20565b610b0b565b61012361021a366004610c05565b610b16565b61012361022d366004610d20565b610b28565b610123610240366004610d20565b610b86565b610123610253366004610d20565b610bd0565b610123610266366004610c05565b610bf3565b60008082116102b4576040805162461bcd60e51b815260206004820152601060248201526f6469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b816102d76102ce856b033b2e3c9fd0803ce8000000610b28565b60028504610b86565b816102de57fe5b049392505050565b6000806102f242610876565b905060008185111561030b576103088583610abb565b90505b61033461032e61032889846b033b2e3c9fd0803ce8000000610964565b8861094b565b8561094b565b979650505050505050565b33600090815260208190526040902054600114610394576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd0b585d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6000826001600160a01b031663fe7a33ad6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103cf57600080fd5b505afa1580156103e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104079190610c21565b90506000816001600160a01b03166337a7b7d86040518163ffffffff1660e01b815260040160206040518083038186803b15801561044457600080fd5b505afa158015610458573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047c9190610c21565b90506000826001600160a01b03166362f6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b957600080fd5b505afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f19190610c21565b6001600160a01b0381166000908152600160205260409020549091506105325760405162461bcd60e51b815260040161052990610de9565b60405180910390fd5b6000836001600160a01b031663479b9c6c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561056d57600080fd5b505afa158015610581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a59190610c21565b60405163056e00b360e01b81529091506001600160a01b0382169063056e00b3906105d4908890600401610d9d565b604080518083038186803b1580156105eb57600080fd5b505afa1580156105ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106239190610cb7565b602001516106435760405162461bcd60e51b815260040161052990610da6565b600061064e42610876565b90506000846001600160a01b03166337a5d9ee886040518263ffffffff1660e01b815260040161067e9190610d9d565b60206040518083038186803b15801561069657600080fd5b505afa1580156106aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ce9190610c68565b90506000856001600160a01b031663065dad8f836040518263ffffffff1660e01b81526004016106fe9190610d9d565b60206040518083038186803b15801561071657600080fd5b505afa15801561072a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074e9190610c68565b905082811061076f5760405162461bcd60e51b815260040161052990610e34565b6001600160a01b03851660008181526001602052604090819020549051632a20ec3160e21b815263a883b0c4916107ab918c9190600401610e69565b600060405180830381600087803b1580156107c557600080fd5b505af11580156107d9573d6000803e3d6000fd5b50505050505050505050505050565b3360009081526020819052604090205460011461083d576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd0b585d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b826c77726974654f6666526174657360981b1415610871576001600160a01b03821660009081526001602052604090208190555b505050565b62015180908190040290565b60006108a88461011e876108968688610abb565b6b033b2e3c9fd0803ce8000000610964565b95945050505050565b33600090815260208190526040902054600114610906576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd0b585d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b60006b033b2e3c9fd0803ce80000006102d78484610b28565b6000838015610a045760018416801561097f57859250610983565b8392505b50600283046002850494505b84156109fe5785860286878204146109a657600080fd5b818101818110156109b657600080fd5b85900496505060018516156109f35785830283878204141587151516156109dc57600080fd5b818101818110156109ec57600080fd5b8590049350505b60028504945061098f565b50610a1a565b838015610a145760009250610a18565b8392505b505b509392505050565b33600090815260208190526040902054600114610a77576040805162461bcd60e51b815260206004820152600e60248201526d1b9bdd0b585d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b80820382811115610b05576040805162461bcd60e51b815260206004820152600f60248201526e1cd859994b5cdd588b59985a5b1959608a1b604482015290519081900360640190fd5b92915050565b60008183816102de57fe5b60006020819052908152604090205481565b6000811580610b4357505080820282828281610b4057fe5b04145b610b05576040805162461bcd60e51b815260206004820152600f60248201526e1cd859994b5b5d5b0b59985a5b1959608a1b604482015290519081900360640190fd5b80820182811015610b05576040805162461bcd60e51b815260206004820152600f60248201526e1cd859994b5859190b59985a5b1959608a1b604482015290519081900360640190fd5b600082821115610be257506000610b05565b610bec8383610abb565b9392505050565b60016020526000908152604090205481565b600060208284031215610c16578081fd5b8135610bec81610e77565b600060208284031215610c32578081fd5b8151610bec81610e77565b60008060408385031215610c4f578081fd5b8235610c5a81610e77565b946020939093013593505050565b600060208284031215610c79578081fd5b5051919050565b600080600060608486031215610c94578081fd5b833592506020840135610ca681610e77565b929592945050506040919091013590565b600060408284031215610cc8578081fd5b6040516040810181811067ffffffffffffffff82111715610ce557fe5b6040528251610cf381610e77565b81526020928301519281019290925250919050565b600060208284031215610d19578081fd5b5035919050565b60008060408385031215610d32578182fd5b50508035926020909101359150565b600080600060608486031215610d55578283fd5b505081359360208301359350604090920135919050565b60008060008060808587031215610d81578081fd5b5050823594602084013594506040840135936060013592509050565b90815260200190565b60208082526023908201527f57726974654f6666577261707065722f6c6f616e2d646f65732d6e6f742d65786040820152621a5cdd60ea1b606082015260800190565b6020808252602b908201527f57726974654f6666577261707065722f70696c652d6861732d6e6f2d7772697460408201526a0652d6f66662d67726f75760ac1b606082015260800190565b6020808252818101527f57726974654f6666577261707065722f6c6f616e2d6e6f742d6f766572647565604082015260600190565b918252602082015260400190565b6001600160a01b0381168114610e8c57600080fd5b5056fea26469706673582212204c1ea0eb3b24b4d18f8d394b22dbc506c8aeaca331f9337376538d76ef9b347a64736f6c63430007060033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.