Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 4213359 | 163 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
MathHelpers
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
Yes with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
/**
* @dev MathHelpers contract is recommended to use only in Shortcuts passed to EnsoWallet
*
* Based on OpenZepplin Contracts v4.7.3:
* - utils/math/Math.sol
* (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/math/Math.sol)
* - utils/math/SafeMath.sol
* (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/math/SafeMath.sol)
*/
contract MathHelpers {
uint256 public constant VERSION = 2;
/**
* @dev Returns the largest of two numbers.
*/
function max(uint256 a, uint256 b) external pure returns (uint256) {
return a >= b ? a : b;
}
/**
* @dev Returns the smallest of two numbers.
*/
function min(uint256 a, uint256 b) external pure returns (uint256) {
return a < b ? a : b;
}
/**
* @dev Returns the average of two numbers. The result is rounded towards
* zero.
*/
function average(uint256 a, uint256 b) external pure returns (uint256) {
return (a & b) + (a ^ b) / 2;
}
/**
* @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) external pure returns (uint256) {
return a + b;
}
/**
* @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) external pure returns (uint256) {
return a - b;
}
/**
* @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) external pure returns (uint256) {
return a * b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator.
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) external pure returns (uint256) {
return a / b;
}
/**
* @dev Returns the sum of an array of unsigned integers.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function sum(uint256[] memory values) external pure returns (uint256 total) {
uint256 length = values.length;
for (uint256 i = 0; i < length; ++i) {
total += values[i];
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting 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) external pure returns (uint256) {
return a % b;
}
/**
* @dev Returns the results a math operation if a condition is met. Otherwise returns the 'a' value without any
* modification.
*/
function conditional(bool condition, bytes4 method, uint256 a, uint256 b) external view returns (uint256) {
if (condition) {
(bool success, bytes memory n) = address(this).staticcall(abi.encodeWithSelector(method, a, b));
if (success) return abi.decode(n, (uint256));
}
return a;
}
}{
"evmVersion": "cancun",
"libraries": {},
"metadata": {
"appendCBOR": false,
"bytecodeHash": "none",
"useLiteralContent": false
},
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": [
"@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",
"@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/",
"@layerzerolabs/lz-evm-oapp-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/oapp/",
"@uniswap/v4-core/=lib/v4-core/",
"@uniswap/v4-periphery/=lib/v4-periphery/",
"devtools/=lib/devtools/packages/toolbox-foundry/src/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"enso-weiroll/=lib/enso-weiroll/contracts/",
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
"layerzero-v2/=lib/layerzero-v2/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/",
"safe-contracts/=lib/safe-tools/lib/safe-contracts/contracts/",
"safe-tools/=lib/safe-tools/src/",
"solady/=lib/solady/src/",
"solmate/=lib/solady/lib/solmate/src/",
"@ensdomains/=lib/v4-core/node_modules/@ensdomains/",
"@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/",
"forge-gas-snapshot/=lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/src/",
"hardhat/=lib/v4-core/node_modules/hardhat/",
"permit2/=lib/v4-periphery/lib/permit2/",
"v4-core/=lib/v4-core/src/",
"v4-periphery/=lib/v4-periphery/"
],
"viaIR": true
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"name":"VERSION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"add","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"average","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"condition","type":"bool"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"conditional","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"div","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"max","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"min","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"mod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"mul","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"sub","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"sum","outputs":[{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"pure","type":"function"}]Contract Creation Code
60808060405234601557610407908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081630194db8e14610238575080632b7423ab146102185780636d5433e6146101f8578063771602f7146101df5780637ae2b5c7146101b7578063a391c15b14610197578063b67d77c514610175578063c8a4ac9c14610137578063cf698e3d146100e9578063f43f523a146100b45763ffa1ad7414610095575f80fd5b346100b0575f3660031901126100b057602060405160028152f35b5f80fd5b346100b0576100c23661034a565b9081156100d55760209160405191068152f35b634e487b7160e01b5f52601260045260245ffd5b346100b05760803660031901126100b05760043580151581036100b057602435906001600160e01b0319821682036100b05760209161012f91606435916044359161036d565b604051908152f35b346100b0576101453661034a565b9081810291818304149015171561016157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b346100b0576101833661034a565b810390811161016157602090604051908152f35b346100b0576101a53661034a565b80156100d55760209104604051908152f35b346100b05760206101c73661034a565b808210156101d85750604051908152f35b905061012f565b346100b057602061012f6101f23661034a565b90610360565b346100b05760206102083661034a565b8082106101d85750604051908152f35b346100b057602061012f61022b3661034a565b80821860011c9116610360565b346100b05760203660031901126100b05760043567ffffffffffffffff81116100b057366023820112156100b057806004013567ffffffffffffffff8111610314578060051b9061028c6020830185610328565b835260246020840191830101913683116100b057602401905b82821061030457835f81515f925b8184106102c557602083604051908152f35b909181518410156102f0576102e660019160208660051b8501015190610360565b93019291906102b3565b634e487b7160e01b5f52603260045260245ffd5b81358152602091820191016102a5565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761031457604052565b60409060031901126100b0576004359060243590565b9190820180921161016157565b9290919261037a57505090565b5f91829160405190602082019283528560248301526044820152604481526103a3606482610328565b5190305afa3d156103ff573d9067ffffffffffffffff821161031457604051916103d7601f8201601f191660200184610328565b82523d5f602084013e5b6103e9575090565b90506020818051810103126100b0576020015190565b6060906103e156
Deployed Bytecode
0x6080806040526004361015610012575f80fd5b5f3560e01c9081630194db8e14610238575080632b7423ab146102185780636d5433e6146101f8578063771602f7146101df5780637ae2b5c7146101b7578063a391c15b14610197578063b67d77c514610175578063c8a4ac9c14610137578063cf698e3d146100e9578063f43f523a146100b45763ffa1ad7414610095575f80fd5b346100b0575f3660031901126100b057602060405160028152f35b5f80fd5b346100b0576100c23661034a565b9081156100d55760209160405191068152f35b634e487b7160e01b5f52601260045260245ffd5b346100b05760803660031901126100b05760043580151581036100b057602435906001600160e01b0319821682036100b05760209161012f91606435916044359161036d565b604051908152f35b346100b0576101453661034a565b9081810291818304149015171561016157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b346100b0576101833661034a565b810390811161016157602090604051908152f35b346100b0576101a53661034a565b80156100d55760209104604051908152f35b346100b05760206101c73661034a565b808210156101d85750604051908152f35b905061012f565b346100b057602061012f6101f23661034a565b90610360565b346100b05760206102083661034a565b8082106101d85750604051908152f35b346100b057602061012f61022b3661034a565b80821860011c9116610360565b346100b05760203660031901126100b05760043567ffffffffffffffff81116100b057366023820112156100b057806004013567ffffffffffffffff8111610314578060051b9061028c6020830185610328565b835260246020840191830101913683116100b057602401905b82821061030457835f81515f925b8184106102c557602083604051908152f35b909181518410156102f0576102e660019160208660051b8501015190610360565b93019291906102b3565b634e487b7160e01b5f52603260045260245ffd5b81358152602091820191016102a5565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff82111761031457604052565b60409060031901126100b0576004359060243590565b9190820180921161016157565b9290919261037a57505090565b5f91829160405190602082019283528560248301526044820152604481526103a3606482610328565b5190305afa3d156103ff573d9067ffffffffffffffff821161031457604051916103d7601f8201601f191660200184610328565b82523d5f602084013e5b6103e9575090565b90506020818051810103126100b0576020015190565b6060906103e156
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.