正在載入此比較的其餘部分。

SUSF (left) vs. UNIF (right)

建立於 差異永不過期
22 刪除
740 行
26 新增
745 行
/**
/**
*Submitted for verification at Etherscan.io on 2021-01-01
*Submitted for verification at Etherscan.io on 2020-12-22
*/
*/


pragma solidity ^0.6.12;
// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;


library SafeCast {
library SafeCast {


function toUint128(uint256 value) internal pure returns (uint128) {
function toUint128(uint256 value) internal pure returns (uint128) {
require(value < 2**128, "SafeCast: value doesn\'t fit in 128 bits");
require(value < 2**128, "SafeCast: value doesn\'t fit in 128 bits");
return uint128(value);
return uint128(value);
}
}


function toUint64(uint256 value) internal pure returns (uint64) {
function toUint64(uint256 value) internal pure returns (uint64) {
require(value < 2**64, "SafeCast: value doesn\'t fit in 64 bits");
require(value < 2**64, "SafeCast: value doesn\'t fit in 64 bits");
return uint64(value);
return uint64(value);
}
}


function toUint32(uint256 value) internal pure returns (uint32) {
function toUint32(uint256 value) internal pure returns (uint32) {
require(value < 2**32, "SafeCast: value doesn\'t fit in 32 bits");
require(value < 2**32, "SafeCast: value doesn\'t fit in 32 bits");
return uint32(value);
return uint32(value);
}
}


function toUint16(uint256 value) internal pure returns (uint16) {
function toUint16(uint256 value) internal pure returns (uint16) {
require(value < 2**16, "SafeCast: value doesn\'t fit in 16 bits");
require(value < 2**16, "SafeCast: value doesn\'t fit in 16 bits");
return uint16(value);
return uint16(value);
}
}


function toUint8(uint256 value) internal pure returns (uint8) {
function toUint8(uint256 value) internal pure returns (uint8) {
require(value < 2**8, "SafeCast: value doesn\'t fit in 8 bits");
require(value < 2**8, "SafeCast: value doesn\'t fit in 8 bits");
return uint8(value);
return uint8(value);
}
}
function toUint256(int256 value) internal pure returns (uint256) {
function toUint256(int256 value) internal pure returns (uint256) {
require(value >= 0, "SafeCast: value must be positive");
require(value >= 0, "SafeCast: value must be positive");
return uint256(value);
return uint256(value);
}
}


function toInt256(uint256 value) internal pure returns (int256) {
function toInt256(uint256 value) internal pure returns (int256) {
require(value < 2**255, "SafeCast: value doesn't fit in an int256");
require(value < 2**255, "SafeCast: value doesn't fit in an int256");
return int256(value);
return int256(value);
}
}
}
}


contract Initializable {
contract Initializable {


bool private initialized;
bool private initialized;


bool private initializing;
bool private initializing;


modifier initializer() {
modifier initializer() {
require(initializing || isConstructor() || !initialized, "Contract instance has already been initialized");
require(initializing || isConstructor() || !initialized, "Contract instance has already been initialized");


bool isTopLevelCall = !initializing;
bool isTopLevelCall = !initializing;
if (isTopLevelCall) {
if (isTopLevelCall) {
initializing = true;
initializing = true;
initialized = true;
initialized = true;
}
}


_;
_;


if (isTopLevelCall) {
if (isTopLevelCall) {
initializing = false;
initializing = false;
}
}
}
}


function isConstructor() private view returns (bool) {
function isConstructor() private view returns (bool) {
address self = address(this);
address self = address(this);
uint256 cs;
uint256 cs;
assembly { cs := extcodesize(self) }
assembly { cs := extcodesize(self) }
return cs == 0;
return cs == 0;
}
}


uint256[50] private ______gap;
uint256[50] private ______gap;
}
}


contract ContextUpgradeSafe is Initializable {
contract ContextUpgradeSafe is Initializable {


function __Context_init() internal initializer {
function __Context_init() internal initializer {
__Context_init_unchained();
__Context_init_unchained();
}
}


function __Context_init_unchained() internal initializer {
function __Context_init_unchained() internal initializer {
}
}


function _msgSender() internal view virtual returns (address payable) {
function _msgSender() internal view virtual returns (address payable) {
return msg.sender;
return msg.sender;
}
}


function _msgData() internal view virtual returns (bytes memory) {
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
return msg.data;
}
}


uint256[50] private __gap;
uint256[50] private __gap;
}
}


contract OwnableUpgradeSafe is Initializable, ContextUpgradeSafe {
contract OwnableUpgradeSafe is Initializable, ContextUpgradeSafe {
address private _owner;
address private _owner;