Source Code
Overview
ETH Balance
0 ETH
Token Holdings
More Info
ContractCreator
Multichain Info
N/A
Latest 22 from a total of 22 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Accept Ownership | 7024080 | 79 days ago | IN | 0 ETH | 0.0003925 | ||||
Nominate New Own... | 7024079 | 79 days ago | IN | 0 ETH | 0.0006629 | ||||
Set Associated C... | 6800516 | 115 days ago | IN | 0 ETH | 0.00637952 | ||||
Set Associated C... | 6768776 | 120 days ago | IN | 0 ETH | 0.00643012 | ||||
Set Associated C... | 6491224 | 165 days ago | IN | 0 ETH | 0.00148863 | ||||
Add Collateral C... | 6491206 | 165 days ago | IN | 0 ETH | 0.00533755 | ||||
Remove Collatera... | 6491177 | 165 days ago | IN | 0 ETH | 0.00320788 | ||||
Set Collateral B... | 6486189 | 166 days ago | IN | 0 ETH | 0.00160398 | ||||
Set Collateral B... | 6486188 | 166 days ago | IN | 0 ETH | 0.00158673 | ||||
Set Collateral B... | 6486187 | 166 days ago | IN | 0 ETH | 0.0016658 | ||||
Set Collateral B... | 6486186 | 166 days ago | IN | 0 ETH | 0.0012184 | ||||
Set Collateral B... | 6486185 | 166 days ago | IN | 0 ETH | 0.00170841 | ||||
Set Collateral B... | 6486184 | 166 days ago | IN | 0 ETH | 0.00156219 | ||||
Set Collateral B... | 6486083 | 166 days ago | IN | 0 ETH | 0.00154766 | ||||
Set Collateral B... | 6486074 | 166 days ago | IN | 0 ETH | 0.00076975 | ||||
Set Associated C... | 6485586 | 166 days ago | IN | 0 ETH | 0.00146492 | ||||
Add Collateral C... | 6485583 | 166 days ago | IN | 0 ETH | 0.00224172 | ||||
Add Collateral C... | 6485582 | 166 days ago | IN | 0 ETH | 0.00228488 | ||||
Add Collateral C... | 6485581 | 166 days ago | IN | 0 ETH | 0.00241621 | ||||
Add Collateral C... | 6485580 | 166 days ago | IN | 0 ETH | 0.00247658 | ||||
Add Collateral C... | 6485579 | 166 days ago | IN | 0 ETH | 0.00249809 | ||||
Add Collateral C... | 6485578 | 166 days ago | IN | 0 ETH | 0.0032376 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ExternWrappedStateTokenLightChain
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity =0.8.24; import "./State.sol"; import "../interfaces/IERC20.sol"; // Libraries import "./SafeDecimalMath.sol"; import "../libraries/TransferHelper.sol"; contract ExternWrappedStateTokenLightChain is State { using SafeMath for uint256; using SafeDecimalMath for uint256; /* ========== STATE VARIABLES ========== */ /* Other ERC20 fields. */ string public name; string public symbol; // uint256 public totalSupply; uint8 public decimals; mapping(bytes32 => uint256) public totalSupplyPerKey; mapping(bytes32 => address) public collateralCurrency; bytes32[] public availableCollateralCurrencies; mapping(bytes32 => mapping(address => uint256)) public collateralByIssuer; address internal constant NULL_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; constructor( string memory _name, string memory _symbol, uint8 _decimals, address _owner, address _associatedContract ) State(_owner, _associatedContract) { name = _name; symbol = _symbol; decimals = _decimals; } function getAvailableCollaterals() external view returns (bytes32[] memory) { return availableCollateralCurrencies; } /* ========== MUTATIVE FUNCTIONS ========== */ function addCollateralCurrency( address _collateralAddress, bytes32 _currencyKey ) external onlyOwner { require( collateralCurrency[_currencyKey] == address(0), "Collateral Currency Key exists already" ); collateralCurrency[_currencyKey] = _collateralAddress; availableCollateralCurrencies.push(_currencyKey); emit CollateralCurrencyAdded(_currencyKey, _collateralAddress); } function removeCollateralCurrency(bytes32 _currencyKey) external onlyOwner { _removeCollateralCurrency(_currencyKey); } function _removeCollateralCurrency(bytes32 _currencyKey) private { require( collateralCurrency[_currencyKey] != address(0), "Collateral Currency Key no exists" ); address collateralAddress = collateralCurrency[_currencyKey]; delete collateralCurrency[_currencyKey]; uint256 availableLength = availableCollateralCurrencies.length - 1; for (uint256 ii = 0; ii <= availableLength; ii++) { if (availableCollateralCurrencies[ii] == _currencyKey) { availableCollateralCurrencies[ii] = availableCollateralCurrencies[availableLength]; availableCollateralCurrencies.pop(); break; } } emit CollateralCurrencyRemoved(_currencyKey, collateralAddress); } function increaseCollateral( address _to, bytes32 _currencyKey, uint256 _collateralAmount ) external onlyAssociatedContract { totalSupplyPerKey[_currencyKey] = totalSupplyPerKey[_currencyKey] + _collateralAmount; collateralByIssuer[_currencyKey][_to] = collateralByIssuer[_currencyKey][_to] + _collateralAmount; } function decreaseCollateral( address _to, bytes32 _currencyKey, uint256 _collateralAmount ) external onlyAssociatedContract { totalSupplyPerKey[_currencyKey] = totalSupplyPerKey[_currencyKey] - _collateralAmount; collateralByIssuer[_currencyKey][_to] = collateralByIssuer[_currencyKey][_to] - _collateralAmount; } function withdrawCollateral( address _to, bytes32 _currencyKey, uint256 _collateralAmount ) external onlyAssociatedContract { if (collateralCurrency[_currencyKey] == NULL_ADDRESS) { require( address(this).balance >= _collateralAmount, "Insufficient ETH balance to withdraw." ); TransferHelper.safeTransferETH(_to, _collateralAmount); } else { require( IERC20(collateralCurrency[_currencyKey]).balanceOf(address(this)) >= _collateralAmount, "Insufficient Collateral Balance to withdraw on Contract." ); TransferHelper.safeTransfer(collateralCurrency[_currencyKey], _to, _collateralAmount); } } // admin functions for dev version function withdrawFundsByAdmin( address _to, bytes32 _currencyKey, uint256 _collateralAmount ) external onlyOwner { if (collateralCurrency[_currencyKey] == NULL_ADDRESS) { require( address(this).balance >= _collateralAmount, "Insufficient ETH balance to withdraw." ); TransferHelper.safeTransferETH(_to, _collateralAmount); } else { require( IERC20(collateralCurrency[_currencyKey]).balanceOf(address(this)) >= _collateralAmount, "Insufficient Collateral Balance to withdraw on Contract." ); TransferHelper.safeTransfer(collateralCurrency[_currencyKey], _to, _collateralAmount); } } // For dev function setCollateralBalance( address _account, bytes32 _currencyKey, uint256 _amount ) external onlyOwner { collateralByIssuer[_currencyKey][_account] = _amount; totalSupplyPerKey[_currencyKey] += _amount; emit SetCollateralBalance(_account, _currencyKey, _amount); } receive() external payable {} // ========== EVENTS ========== event CollateralCurrencyAdded(bytes32 currencyKey, address collateralCurrency); event CollateralCurrencyRemoved(bytes32 currencyKey, address collateralCurrency); event SetCollateralBalance(address indexed _account, bytes32 _currencyKey, uint256 _amount); }
// SPDX-License-Identifier: MIT pragma solidity =0.8.24; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath: division by zero"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath: modulo by zero"); return a % b; } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.24; interface IERC20 { // ERC20 Optional Views function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); // Views function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); // Mutative functions function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); // Events event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity =0.8.24; // from Uniswap TransferHelper library library TransferHelper { function safeApprove(address token, address to, uint256 value) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); (bool success, bytes memory data) = token.call( abi.encodeWithSelector(0x095ea7b3, to, value) ); require( success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper::safeApprove: approve failed" ); } function safeTransfer(address token, address to, uint256 value) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call( abi.encodeWithSelector(0xa9059cbb, to, value) ); require( success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper::safeTransfer: transfer failed" ); } function safeTransferFrom(address token, address from, address to, uint256 value) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call( abi.encodeWithSelector(0x23b872dd, from, to, value) ); require( success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper::transferFrom: transferFrom failed" ); } function safeTransferETH(address to, uint256 value) internal { (bool success, ) = to.call{value: value}(new bytes(0)); require(success, "TransferHelper::safeTransferETH: ETH transfer failed"); } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.24; contract Owned { address public owner; address public nominatedOwner; constructor(address _owner) { require(_owner != address(0), "Owner address cannot be 0"); owner = _owner; emit OwnerChanged(address(0), _owner); } function nominateNewOwner(address _owner) external onlyOwner { nominatedOwner = _owner; emit OwnerNominated(_owner); } function acceptOwnership() external { require( msg.sender == nominatedOwner, "You must be nominated before you can accept ownership" ); emit OwnerChanged(owner, nominatedOwner); owner = nominatedOwner; nominatedOwner = address(0); } modifier onlyOwner() { _onlyOwner(); _; } function _onlyOwner() private view { require(msg.sender == owner, "Only the contract owner may perform this action"); } event OwnerNominated(address newOwner); event OwnerChanged(address oldOwner, address newOwner); }
// SPDX-License-Identifier: MIT pragma solidity =0.8.24; // Libraries // import "openzeppelin-solidity-2.3.0/contracts/math/SafeMath.sol"; import "../externals/openzeppelin/SafeMath.sol"; library SafeDecimalMath { using SafeMath for uint256; /* Number of decimal places in the representations. */ uint8 public constant decimals = 18; uint8 public constant highPrecisionDecimals = 27; /* The number representing 1.0. */ uint256 public constant UNIT = 10 ** uint256(decimals); /* The number representing 1.0 for higher fidelity numbers. */ uint256 public constant PRECISE_UNIT = 10 ** uint256(highPrecisionDecimals); uint256 private constant UNIT_TO_HIGH_PRECISION_CONVERSION_FACTOR = 10 ** uint256(highPrecisionDecimals - decimals); /** * @return Provides an interface to UNIT. */ function unit() external pure returns (uint256) { return UNIT; } /** * @return Provides an interface to PRECISE_UNIT. */ function preciseUnit() external pure returns (uint256) { return PRECISE_UNIT; } /** * @return The result of multiplying x and y, interpreting the operands as fixed-point * decimals. * * @dev A unit factor is divided out after the product of x and y is evaluated, * so that product must be less than 2**256. As this is an integer division, * the internal division always rounds down. This helps save on gas. Rounding * is more expensive on gas. */ function multiplyDecimal(uint256 x, uint256 y) internal pure returns (uint256) { /* Divide by UNIT to remove the extra factor introduced by the product. */ return x.mul(y) / UNIT; } /** * @return The result of safely multiplying x and y, interpreting the operands * as fixed-point decimals of the specified precision unit. * * @dev The operands should be in the form of a the specified unit factor which will be * divided out after the product of x and y is evaluated, so that product must be * less than 2**256. * * Unlike multiplyDecimal, this function rounds the result to the nearest increment. * Rounding is useful when you need to retain fidelity for small decimal numbers * (eg. small fractions or percentages). */ function _multiplyDecimalRound( uint256 x, uint256 y, uint256 precisionUnit ) private pure returns (uint256) { /* Divide by UNIT to remove the extra factor introduced by the product. */ uint256 quotientTimesTen = x.mul(y) / (precisionUnit / 10); if (quotientTimesTen % 10 >= 5) { quotientTimesTen += 10; } return quotientTimesTen / 10; } /** * @return The result of safely multiplying x and y, interpreting the operands * as fixed-point decimals of a precise unit. * * @dev The operands should be in the precise unit factor which will be * divided out after the product of x and y is evaluated, so that product must be * less than 2**256. * * Unlike multiplyDecimal, this function rounds the result to the nearest increment. * Rounding is useful when you need to retain fidelity for small decimal numbers * (eg. small fractions or percentages). */ function multiplyDecimalRoundPrecise(uint256 x, uint256 y) internal pure returns (uint256) { return _multiplyDecimalRound(x, y, PRECISE_UNIT); } /** * @return The result of safely multiplying x and y, interpreting the operands * as fixed-point decimals of a standard unit. * * @dev The operands should be in the standard unit factor which will be * divided out after the product of x and y is evaluated, so that product must be * less than 2**256. * * Unlike multiplyDecimal, this function rounds the result to the nearest increment. * Rounding is useful when you need to retain fidelity for small decimal numbers * (eg. small fractions or percentages). */ function multiplyDecimalRound(uint256 x, uint256 y) internal pure returns (uint256) { return _multiplyDecimalRound(x, y, UNIT); } /** * @return The result of safely dividing x and y. The return value is a high * precision decimal. * * @dev y is divided after the product of x and the standard precision unit * is evaluated, so the product of x and UNIT must be less than 2**256. As * this is an integer division, the result is always rounded down. * This helps save on gas. Rounding is more expensive on gas. */ function divideDecimal(uint256 x, uint256 y) internal pure returns (uint256) { /* Reintroduce the UNIT factor that will be divided out by y. */ return x.mul(UNIT).div(y); } /** * @return The result of safely dividing x and y. The return value is as a rounded * decimal in the precision unit specified in the parameter. * * @dev y is divided after the product of x and the specified precision unit * is evaluated, so the product of x and the specified precision unit must * be less than 2**256. The result is rounded to the nearest increment. */ function _divideDecimalRound( uint256 x, uint256 y, uint256 precisionUnit ) private pure returns (uint256) { uint256 resultTimesTen = x.mul(precisionUnit * 10).div(y); if (resultTimesTen % 10 >= 5) { resultTimesTen += 10; } return resultTimesTen / 10; } /** * @return The result of safely dividing x and y. The return value is as a rounded * standard precision decimal. * * @dev y is divided after the product of x and the standard precision unit * is evaluated, so the product of x and the standard precision unit must * be less than 2**256. The result is rounded to the nearest increment. */ function divideDecimalRound(uint256 x, uint256 y) internal pure returns (uint256) { return _divideDecimalRound(x, y, UNIT); } /** * @return The result of safely dividing x and y. The return value is as a rounded * high precision decimal. * * @dev y is divided after the product of x and the high precision unit * is evaluated, so the product of x and the high precision unit must * be less than 2**256. The result is rounded to the nearest increment. */ function divideDecimalRoundPrecise(uint256 x, uint256 y) internal pure returns (uint256) { return _divideDecimalRound(x, y, PRECISE_UNIT); } /** * @dev Convert a standard decimal representation to a high precision one. */ function decimalToPreciseDecimal(uint256 i) internal pure returns (uint256) { return i.mul(UNIT_TO_HIGH_PRECISION_CONVERSION_FACTOR); } /** * @dev Convert a high precision decimal to a standard decimal representation. */ function preciseDecimalToDecimal(uint256 i) internal pure returns (uint256) { uint256 quotientTimesTen = i / (UNIT_TO_HIGH_PRECISION_CONVERSION_FACTOR / 10); if (quotientTimesTen % 10 >= 5) { quotientTimesTen += 10; } return quotientTimesTen / 10; } // Computes `a - b`, setting the value to 0 if b > a. function floorsub(uint256 a, uint256 b) internal pure returns (uint256) { return b >= a ? 0 : a - b; } /* ---------- Utilities ---------- */ /* * Absolute value of the input, returned as a signed number. */ function signedAbs(int256 x) internal pure returns (int256) { return x < 0 ? -x : x; } /* * Absolute value of the input, returned as an unsigned number. */ function abs(int256 x) internal pure returns (uint256) { return uint256(signedAbs(x)); } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.24; // Inheritance import "./Owned.sol"; contract State is Owned { // the address of the contract that can modify variables // this can only be changed by the owner of this contract address public associatedContract; constructor(address _owner, address _associatedContract) Owned(_owner) { // This contract is abstract, and thus cannot be instantiated directly require(owner != address(0), "Owner must be set"); associatedContract = _associatedContract; emit AssociatedContractUpdated(_associatedContract); } /* ========== SETTERS ========== */ // Change the associated contract to a new address function setAssociatedContract(address _associatedContract) external onlyOwner { associatedContract = _associatedContract; emit AssociatedContractUpdated(_associatedContract); } /* ========== MODIFIERS ========== */ modifier onlyAssociatedContract() { require( msg.sender == associatedContract, "Only the associated contract can perform this action" ); _; } /* ========== EVENTS ========== */ event AssociatedContractUpdated(address associatedContract); }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_associatedContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"associatedContract","type":"address"}],"name":"AssociatedContractUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"currencyKey","type":"bytes32"},{"indexed":false,"internalType":"address","name":"collateralCurrency","type":"address"}],"name":"CollateralCurrencyAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"currencyKey","type":"bytes32"},{"indexed":false,"internalType":"address","name":"collateralCurrency","type":"address"}],"name":"CollateralCurrencyRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_currencyKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SetCollateralBalance","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_collateralAddress","type":"address"},{"internalType":"bytes32","name":"_currencyKey","type":"bytes32"}],"name":"addCollateralCurrency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"associatedContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"availableCollateralCurrencies","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"name":"collateralByIssuer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"collateralCurrency","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_currencyKey","type":"bytes32"},{"internalType":"uint256","name":"_collateralAmount","type":"uint256"}],"name":"decreaseCollateral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAvailableCollaterals","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_currencyKey","type":"bytes32"},{"internalType":"uint256","name":"_collateralAmount","type":"uint256"}],"name":"increaseCollateral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_currencyKey","type":"bytes32"}],"name":"removeCollateralCurrency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_associatedContract","type":"address"}],"name":"setAssociatedContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bytes32","name":"_currencyKey","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setCollateralBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"totalSupplyPerKey","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_currencyKey","type":"bytes32"},{"internalType":"uint256","name":"_collateralAmount","type":"uint256"}],"name":"withdrawCollateral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_currencyKey","type":"bytes32"},{"internalType":"uint256","name":"_collateralAmount","type":"uint256"}],"name":"withdrawFundsByAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620017ba380380620017ba8339810160408190526200003491620002b0565b8181816001600160a01b038116620000935760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1506000546001600160a01b0316620001395760405162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b60448201526064016200008a565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039060200160405180910390a150600390506200019b8682620003ea565b506004620001aa8582620003ea565b50506005805460ff191660ff939093169290921790915550620004b6915050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001f357600080fd5b81516001600160401b0380821115620002105762000210620001cb565b604051601f8301601f19908116603f011681019082821181831017156200023b576200023b620001cb565b81604052838152602092508660208588010111156200025957600080fd5b600091505b838210156200027d57858201830151818301840152908201906200025e565b6000602085830101528094505050505092915050565b80516001600160a01b0381168114620002ab57600080fd5b919050565b600080600080600060a08688031215620002c957600080fd5b85516001600160401b0380821115620002e157600080fd5b620002ef89838a01620001e1565b965060208801519150808211156200030657600080fd5b506200031588828901620001e1565b945050604086015160ff811681146200032d57600080fd5b92506200033d6060870162000293565b91506200034d6080870162000293565b90509295509295909350565b600181811c908216806200036e57607f821691505b6020821081036200038f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003e5576000816000526020600020601f850160051c81016020861015620003c05750805b601f850160051c820191505b81811015620003e157828155600101620003cc565b5050505b505050565b81516001600160401b03811115620004065762000406620001cb565b6200041e8162000417845462000359565b8462000395565b602080601f8311600181146200045657600084156200043d5750858301515b600019600386901b1c1916600185901b178555620003e1565b600085815260208120601f198616915b82811015620004875788860151825594840194600190910190840162000466565b5085821015620004a65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6112f480620004c66000396000f3fe60806040526004361061012e5760003560e01c806353a47bb7116100ab578063ace2e3081161006f578063ace2e3081461035b578063aefc4ccb1461037d578063baa766991461039d578063c4760350146103ca578063e26a3804146103ea578063e54660a91461040a57600080fd5b806353a47bb7146102b957806372af494b146102f157806379ba5097146103115780638da5cb5b1461032657806395d89b411461034657600080fd5b80633c1ac27d116100f25780633c1ac27d146102195780634564a5a0146102395780634d364242146102595780634d902d1c1461027957806352f445ca1461029957600080fd5b806306fdde031461013a57806307d554b2146101655780631287b845146101ab5780631627540c146101cd578063313ce567146101ed57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061014f610440565b60405161015c9190610ffb565b60405180910390f35b34801561017157600080fd5b5061019d61018036600461104a565b600960209081526000928352604080842090915290825290205481565b60405190815260200161015c565b3480156101b757600080fd5b506101cb6101c6366004611076565b6104ce565b005b3480156101d957600080fd5b506101cb6101e836600461108f565b6104e2565b3480156101f957600080fd5b506005546102079060ff1681565b60405160ff909116815260200161015c565b34801561022557600080fd5b506101cb6102343660046110b1565b61053f565b34801561024557600080fd5b5061019d610254366004611076565b610722565b34801561026557600080fd5b506101cb6102743660046110b1565b610743565b34801561028557600080fd5b506101cb6102943660046110b1565b61074b565b3480156102a557600080fd5b506101cb6102b436600461108f565b6107e0565b3480156102c557600080fd5b506001546102d9906001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b3480156102fd57600080fd5b506101cb61030c3660046110b1565b610836565b34801561031d57600080fd5b506101cb6108dd565b34801561033257600080fd5b506000546102d9906001600160a01b031681565b34801561035257600080fd5b5061014f6109c7565b34801561036757600080fd5b506103706109d4565b60405161015c91906110e4565b34801561038957600080fd5b506002546102d9906001600160a01b031681565b3480156103a957600080fd5b5061019d6103b8366004611076565b60066020526000908152604090205481565b3480156103d657600080fd5b506101cb6103e53660046110b1565b610a2c565b3480156103f657600080fd5b506101cb610405366004611128565b610aa7565b34801561041657600080fd5b506102d9610425366004611076565b6007602052600090815260409020546001600160a01b031681565b6003805461044d90611152565b80601f016020809104026020016040519081016040528092919081815260200182805461047990611152565b80156104c65780601f1061049b576101008083540402835291602001916104c6565b820191906000526020600020905b8154815290600101906020018083116104a957829003601f168201915b505050505081565b6104d6610bbe565b6104df81610c32565b50565b6104ea610bbe565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906020015b60405180910390a150565b6002546001600160a01b031633146105725760405162461bcd60e51b81526004016105699061118c565b60405180910390fd5b6000828152600760205260409020546001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed190161061257804710156106035760405162461bcd60e51b815260206004820152602560248201527f496e73756666696369656e74204554482062616c616e636520746f2077697468604482015264323930bb9760d91b6064820152608401610569565b61060d8382610dcc565b505050565b600082815260076020526040908190205490516370a0823160e01b815230600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015610667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068b91906111e0565b10156106ff5760405162461bcd60e51b815260206004820152603860248201527f496e73756666696369656e7420436f6c6c61746572616c2042616c616e63652060448201527f746f207769746864726177206f6e20436f6e74726163742e00000000000000006064820152608401610569565b60008281526007602052604090205461060d906001600160a01b03168483610ea6565b6008818154811061073257600080fd5b600091825260209091200154905081565b610572610bbe565b610753610bbe565b60008281526009602090815260408083206001600160a01b0387168452825280832084905584835260069091528120805483929061079290849061120f565b909155505060408051838152602081018390526001600160a01b038516917f344f0c38387fb41b2527a46454ccf4025a39c0579534768c299b8f9bfc5b891d910160405180910390a2505050565b6107e8610bbe565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e0390602001610534565b6002546001600160a01b031633146108605760405162461bcd60e51b81526004016105699061118c565b60008281526006602052604090205461087a90829061120f565b600083815260066020908152604080832093909355600981528282206001600160a01b0387168352905220546108b190829061120f565b60009283526009602090815260408085206001600160a01b039096168552949052929091209190915550565b6001546001600160a01b031633146109555760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610569565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6004805461044d90611152565b60606008805480602002602001604051908101604052809291908181526020018280548015610a2257602002820191906000526020600020905b815481526020019060010190808311610a0e575b5050505050905090565b6002546001600160a01b03163314610a565760405162461bcd60e51b81526004016105699061118c565b600082815260066020526040902054610a70908290611228565b600083815260066020908152604080832093909355600981528282206001600160a01b0387168352905220546108b1908290611228565b610aaf610bbe565b6000818152600760205260409020546001600160a01b031615610b235760405162461bcd60e51b815260206004820152602660248201527f436f6c6c61746572616c2043757272656e6379204b65792065786973747320616044820152656c726561647960d01b6064820152608401610569565b600081815260076020908152604080832080546001600160a01b0319166001600160a01b0387169081179091556008805460018101825594527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39093018490558051848152918201929092527ff26817ef4a264ce7192b47037313ed526b8099264161f96222669e2c5cc96f9a910160405180910390a15050565b6000546001600160a01b03163314610c305760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610569565b565b6000818152600760205260409020546001600160a01b0316610ca05760405162461bcd60e51b815260206004820152602160248201527f436f6c6c61746572616c2043757272656e6379204b6579206e6f2065786973746044820152607360f81b6064820152608401610569565b600081815260076020526040812080546001600160a01b031981169091556008546001600160a01b039091169190610cda90600190611228565b905060005b818111610d85578360088281548110610cfa57610cfa61123b565b906000526020600020015403610d735760088281548110610d1d57610d1d61123b565b906000526020600020015460088281548110610d3b57610d3b61123b565b6000918252602090912001556008805480610d5857610d58611251565b60019003818190600052602060002001600090559055610d85565b80610d7d81611267565b915050610cdf565b50604080518481526001600160a01b03841660208201527f41782c0aba7b1ee74c87cb8a3f8fc55429062f81b085c323cd45494346851f34910160405180910390a1505050565b604080516000808252602082019092526001600160a01b038416908390604051610df69190611280565b60006040518083038185875af1925050503d8060008114610e33576040519150601f19603f3d011682016040523d82523d6000602084013e610e38565b606091505b505090508061060d5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610569565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691610f029190611280565b6000604051808303816000865af19150503d8060008114610f3f576040519150601f19603f3d011682016040523d82523d6000602084013e610f44565b606091505b5091509150818015610f6e575080511580610f6e575080806020019051810190610f6e919061129c565b610fd05760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b6064820152608401610569565b5050505050565b60005b83811015610ff2578181015183820152602001610fda565b50506000910152565b602081526000825180602084015261101a816040850160208701610fd7565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461104557600080fd5b919050565b6000806040838503121561105d57600080fd5b8235915061106d6020840161102e565b90509250929050565b60006020828403121561108857600080fd5b5035919050565b6000602082840312156110a157600080fd5b6110aa8261102e565b9392505050565b6000806000606084860312156110c657600080fd5b6110cf8461102e565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b8181101561111c57835183529284019291840191600101611100565b50909695505050505050565b6000806040838503121561113b57600080fd5b6111448361102e565b946020939093013593505050565b600181811c9082168061116657607f821691505b60208210810361118657634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526034908201527f4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e604082015273103832b93337b936903a3434b99030b1ba34b7b760611b606082015260800190565b6000602082840312156111f257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115611222576112226111f9565b92915050565b81810381811115611222576112226111f9565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060018201611279576112796111f9565b5060010190565b60008251611292818460208701610fd7565b9190910192915050565b6000602082840312156112ae57600080fd5b815180151581146110aa57600080fdfea26469706673582212208b94c56aadc907c16d43fc503124cf99865fcff468655d8ccdbd12283a31c63264736f6c6343000818003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000006f808ae3445a711ecaa4da5c8330b051541a4de00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e577261707065642053796e74687200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075753594e54485200000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061012e5760003560e01c806353a47bb7116100ab578063ace2e3081161006f578063ace2e3081461035b578063aefc4ccb1461037d578063baa766991461039d578063c4760350146103ca578063e26a3804146103ea578063e54660a91461040a57600080fd5b806353a47bb7146102b957806372af494b146102f157806379ba5097146103115780638da5cb5b1461032657806395d89b411461034657600080fd5b80633c1ac27d116100f25780633c1ac27d146102195780634564a5a0146102395780634d364242146102595780634d902d1c1461027957806352f445ca1461029957600080fd5b806306fdde031461013a57806307d554b2146101655780631287b845146101ab5780631627540c146101cd578063313ce567146101ed57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061014f610440565b60405161015c9190610ffb565b60405180910390f35b34801561017157600080fd5b5061019d61018036600461104a565b600960209081526000928352604080842090915290825290205481565b60405190815260200161015c565b3480156101b757600080fd5b506101cb6101c6366004611076565b6104ce565b005b3480156101d957600080fd5b506101cb6101e836600461108f565b6104e2565b3480156101f957600080fd5b506005546102079060ff1681565b60405160ff909116815260200161015c565b34801561022557600080fd5b506101cb6102343660046110b1565b61053f565b34801561024557600080fd5b5061019d610254366004611076565b610722565b34801561026557600080fd5b506101cb6102743660046110b1565b610743565b34801561028557600080fd5b506101cb6102943660046110b1565b61074b565b3480156102a557600080fd5b506101cb6102b436600461108f565b6107e0565b3480156102c557600080fd5b506001546102d9906001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b3480156102fd57600080fd5b506101cb61030c3660046110b1565b610836565b34801561031d57600080fd5b506101cb6108dd565b34801561033257600080fd5b506000546102d9906001600160a01b031681565b34801561035257600080fd5b5061014f6109c7565b34801561036757600080fd5b506103706109d4565b60405161015c91906110e4565b34801561038957600080fd5b506002546102d9906001600160a01b031681565b3480156103a957600080fd5b5061019d6103b8366004611076565b60066020526000908152604090205481565b3480156103d657600080fd5b506101cb6103e53660046110b1565b610a2c565b3480156103f657600080fd5b506101cb610405366004611128565b610aa7565b34801561041657600080fd5b506102d9610425366004611076565b6007602052600090815260409020546001600160a01b031681565b6003805461044d90611152565b80601f016020809104026020016040519081016040528092919081815260200182805461047990611152565b80156104c65780601f1061049b576101008083540402835291602001916104c6565b820191906000526020600020905b8154815290600101906020018083116104a957829003601f168201915b505050505081565b6104d6610bbe565b6104df81610c32565b50565b6104ea610bbe565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906020015b60405180910390a150565b6002546001600160a01b031633146105725760405162461bcd60e51b81526004016105699061118c565b60405180910390fd5b6000828152600760205260409020546001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed190161061257804710156106035760405162461bcd60e51b815260206004820152602560248201527f496e73756666696369656e74204554482062616c616e636520746f2077697468604482015264323930bb9760d91b6064820152608401610569565b61060d8382610dcc565b505050565b600082815260076020526040908190205490516370a0823160e01b815230600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa158015610667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068b91906111e0565b10156106ff5760405162461bcd60e51b815260206004820152603860248201527f496e73756666696369656e7420436f6c6c61746572616c2042616c616e63652060448201527f746f207769746864726177206f6e20436f6e74726163742e00000000000000006064820152608401610569565b60008281526007602052604090205461060d906001600160a01b03168483610ea6565b6008818154811061073257600080fd5b600091825260209091200154905081565b610572610bbe565b610753610bbe565b60008281526009602090815260408083206001600160a01b0387168452825280832084905584835260069091528120805483929061079290849061120f565b909155505060408051838152602081018390526001600160a01b038516917f344f0c38387fb41b2527a46454ccf4025a39c0579534768c299b8f9bfc5b891d910160405180910390a2505050565b6107e8610bbe565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e0390602001610534565b6002546001600160a01b031633146108605760405162461bcd60e51b81526004016105699061118c565b60008281526006602052604090205461087a90829061120f565b600083815260066020908152604080832093909355600981528282206001600160a01b0387168352905220546108b190829061120f565b60009283526009602090815260408085206001600160a01b039096168552949052929091209190915550565b6001546001600160a01b031633146109555760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610569565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6004805461044d90611152565b60606008805480602002602001604051908101604052809291908181526020018280548015610a2257602002820191906000526020600020905b815481526020019060010190808311610a0e575b5050505050905090565b6002546001600160a01b03163314610a565760405162461bcd60e51b81526004016105699061118c565b600082815260066020526040902054610a70908290611228565b600083815260066020908152604080832093909355600981528282206001600160a01b0387168352905220546108b1908290611228565b610aaf610bbe565b6000818152600760205260409020546001600160a01b031615610b235760405162461bcd60e51b815260206004820152602660248201527f436f6c6c61746572616c2043757272656e6379204b65792065786973747320616044820152656c726561647960d01b6064820152608401610569565b600081815260076020908152604080832080546001600160a01b0319166001600160a01b0387169081179091556008805460018101825594527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39093018490558051848152918201929092527ff26817ef4a264ce7192b47037313ed526b8099264161f96222669e2c5cc96f9a910160405180910390a15050565b6000546001600160a01b03163314610c305760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610569565b565b6000818152600760205260409020546001600160a01b0316610ca05760405162461bcd60e51b815260206004820152602160248201527f436f6c6c61746572616c2043757272656e6379204b6579206e6f2065786973746044820152607360f81b6064820152608401610569565b600081815260076020526040812080546001600160a01b031981169091556008546001600160a01b039091169190610cda90600190611228565b905060005b818111610d85578360088281548110610cfa57610cfa61123b565b906000526020600020015403610d735760088281548110610d1d57610d1d61123b565b906000526020600020015460088281548110610d3b57610d3b61123b565b6000918252602090912001556008805480610d5857610d58611251565b60019003818190600052602060002001600090559055610d85565b80610d7d81611267565b915050610cdf565b50604080518481526001600160a01b03841660208201527f41782c0aba7b1ee74c87cb8a3f8fc55429062f81b085c323cd45494346851f34910160405180910390a1505050565b604080516000808252602082019092526001600160a01b038416908390604051610df69190611280565b60006040518083038185875af1925050503d8060008114610e33576040519150601f19603f3d011682016040523d82523d6000602084013e610e38565b606091505b505090508061060d5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b6064820152608401610569565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691610f029190611280565b6000604051808303816000865af19150503d8060008114610f3f576040519150601f19603f3d011682016040523d82523d6000602084013e610f44565b606091505b5091509150818015610f6e575080511580610f6e575080806020019051810190610f6e919061129c565b610fd05760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b6064820152608401610569565b5050505050565b60005b83811015610ff2578181015183820152602001610fda565b50506000910152565b602081526000825180602084015261101a816040850160208701610fd7565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461104557600080fd5b919050565b6000806040838503121561105d57600080fd5b8235915061106d6020840161102e565b90509250929050565b60006020828403121561108857600080fd5b5035919050565b6000602082840312156110a157600080fd5b6110aa8261102e565b9392505050565b6000806000606084860312156110c657600080fd5b6110cf8461102e565b95602085013595506040909401359392505050565b6020808252825182820181905260009190848201906040850190845b8181101561111c57835183529284019291840191600101611100565b50909695505050505050565b6000806040838503121561113b57600080fd5b6111448361102e565b946020939093013593505050565b600181811c9082168061116657607f821691505b60208210810361118657634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526034908201527f4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e604082015273103832b93337b936903a3434b99030b1ba34b7b760611b606082015260800190565b6000602082840312156111f257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115611222576112226111f9565b92915050565b81810381811115611222576112226111f9565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060018201611279576112796111f9565b5060010190565b60008251611292818460208701610fd7565b9190910192915050565b6000602082840312156112ae57600080fd5b815180151581146110aa57600080fdfea26469706673582212208b94c56aadc907c16d43fc503124cf99865fcff468655d8ccdbd12283a31c63264736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000120000000000000000000000006f808ae3445a711ecaa4da5c8330b051541a4de00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e577261707065642053796e74687200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075753594e54485200000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Wrapped Synthr
Arg [1] : _symbol (string): WSYNTHR
Arg [2] : _decimals (uint8): 18
Arg [3] : _owner (address): 0x6F808aE3445A711ecAa4DA5c8330B051541A4dE0
Arg [4] : _associatedContract (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000006f808ae3445a711ecaa4da5c8330b051541a4de0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [6] : 577261707065642053796e746872000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [8] : 5753594e54485200000000000000000000000000000000000000000000000000
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.