Source Code (Proxy)
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 41 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Process Redempti... | 21171358 | 405 days ago | IN | 0 ETH | 0.00675628 | ||||
| Process Redempti... | 21147093 | 408 days ago | IN | 0 ETH | 0.00210066 | ||||
| Process Redempti... | 21122333 | 412 days ago | IN | 0 ETH | 0.00584258 | ||||
| Process Redempti... | 21116636 | 413 days ago | IN | 0 ETH | 0.0014088 | ||||
| Process Redempti... | 21114225 | 413 days ago | IN | 0 ETH | 0.00173191 | ||||
| Process Redempti... | 21093983 | 416 days ago | IN | 0 ETH | 0.0068777 | ||||
| Process Redempti... | 21073574 | 419 days ago | IN | 0 ETH | 0.0042075 | ||||
| Process Redempti... | 21066332 | 420 days ago | IN | 0 ETH | 0.00658015 | ||||
| Process Redempti... | 21044461 | 423 days ago | IN | 0 ETH | 0.00510262 | ||||
| Process Redempti... | 21036881 | 424 days ago | IN | 0 ETH | 0.00564676 | ||||
| Process Redempti... | 20994793 | 430 days ago | IN | 0 ETH | 0.00339193 | ||||
| Process Redempti... | 20886105 | 445 days ago | IN | 0 ETH | 0.00443308 | ||||
| Process Redempti... | 20843284 | 451 days ago | IN | 0 ETH | 0.00533017 | ||||
| Process Redempti... | 20836987 | 452 days ago | IN | 0 ETH | 0.00444985 | ||||
| Process Redempti... | 20765627 | 462 days ago | IN | 0 ETH | 0.00178046 | ||||
| Process Redempti... | 20714141 | 469 days ago | IN | 0 ETH | 0.00302876 | ||||
| Process Redempti... | 20692743 | 472 days ago | IN | 0 ETH | 0.00693321 | ||||
| Process Redempti... | 20673518 | 474 days ago | IN | 0 ETH | 0.00032129 | ||||
| Process Redempti... | 20615191 | 483 days ago | IN | 0 ETH | 0.00049437 | ||||
| Process Redempti... | 20535243 | 494 days ago | IN | 0 ETH | 0.00222675 | ||||
| Process Redempti... | 20320203 | 524 days ago | IN | 0 ETH | 0.00581818 | ||||
| Process Redempti... | 20291990 | 528 days ago | IN | 0 ETH | 0.00114584 | ||||
| Process Redempti... | 20184910 | 543 days ago | IN | 0 ETH | 0.00228709 | ||||
| Process Redempti... | 20063483 | 560 days ago | IN | 0 ETH | 0.00631941 | ||||
| Process Redempti... | 20027584 | 565 days ago | IN | 0 ETH | 0.00843932 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60806040 | 18821432 | 734 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Proxy
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.7;
import { IDefaultImplementationBeacon } from "./interfaces/IDefaultImplementationBeacon.sol";
import { SlotManipulatable } from "./SlotManipulatable.sol";
/// @title A completely transparent, and thus interface-less, proxy contract.
contract Proxy is SlotManipulatable {
/// @dev Storage slot with the address of the current factory. `keccak256('eip1967.proxy.factory') - 1`.
bytes32 private constant FACTORY_SLOT = bytes32(0x7a45a402e4cb6e08ebc196f20f66d5d30e67285a2a8aa80503fa409e727a4af1);
/// @dev Storage slot with the address of the current factory. `keccak256('eip1967.proxy.implementation') - 1`.
bytes32 private constant IMPLEMENTATION_SLOT = bytes32(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc);
/**
* @dev The constructor requires at least one of `factory_` or `implementation_`.
* If an implementation is not provided, the factory is treated as an IDefaultImplementationBeacon
* to fetch the default implementation.
* @param factory_ The address of a proxy factory, if any.
* @param implementation_ The address of the implementation contract being proxied, if any.
*/
constructor(address factory_, address implementation_) {
_setSlotValue(FACTORY_SLOT, bytes32(uint256(uint160(factory_))));
// If the implementation is empty, fetch it from the factory, which can act as a beacon.
address implementation = implementation_ == address(0)
? IDefaultImplementationBeacon(factory_).defaultImplementation()
: implementation_;
require(implementation != address(0));
_setSlotValue(IMPLEMENTATION_SLOT, bytes32(uint256(uint160(implementation))));
}
fallback() payable external virtual {
bytes32 implementation = _getSlotValue(IMPLEMENTATION_SLOT);
require(address(uint160(uint256(implementation))).code.length != uint256(0));
assembly {
calldatacopy(0, 0, calldatasize())
let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)
returndatacopy(0, 0, returndatasize())
switch result
case 0 {
revert(0, returndatasize())
}
default {
return(0, returndatasize())
}
}
}
}// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.7;
/// @title An beacon that provides a default implementation for proxies, must implement IDefaultImplementationBeacon.
interface IDefaultImplementationBeacon {
/// @dev The address of an implementation for proxies.
function defaultImplementation() external view returns (address defaultImplementation_);
}// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.7;
abstract contract SlotManipulatable {
function _getReferenceTypeSlot(bytes32 slot_, bytes32 key_) internal pure returns (bytes32 value_) {
return keccak256(abi.encodePacked(key_, slot_));
}
function _getSlotValue(bytes32 slot_) internal view returns (bytes32 value_) {
assembly {
value_ := sload(slot_)
}
}
function _setSlotValue(bytes32 slot_, bytes32 value_) internal {
assembly {
sstore(slot_, value_)
}
}
}{
"remappings": [
"address-registry/=modules/address-registry/contracts/",
"contract-test-utils/=modules/erc20/modules/contract-test-utils/contracts/",
"ds-test/=modules/forge-std/lib/ds-test/src/",
"erc20-helper/=modules/erc20-helper/src/",
"erc20/=modules/erc20/",
"fixed-term-loan-manager/=modules/fixed-term-loan-manager/contracts/",
"fixed-term-loan/=modules/fixed-term-loan/contracts/",
"forge-std/=modules/forge-std/src/",
"globals/=modules/globals/contracts/",
"liquidations/=modules/liquidations/contracts/",
"maple-proxy-factory/=modules/open-term-loan/modules/maple-proxy-factory/",
"non-transparent-proxy/=modules/globals/modules/non-transparent-proxy/",
"ntp/=modules/pool-permission-manager/modules/ntp/",
"open-term-loan-manager/=modules/open-term-loan-manager/contracts/",
"open-term-loan/=modules/open-term-loan/contracts/",
"pool-permission-manager/=modules/pool-permission-manager/contracts/",
"pool/=modules/pool/contracts/",
"proxy-factory/=modules/open-term-loan/modules/maple-proxy-factory/modules/proxy-factory/",
"withdrawal-manager-cyclical/=modules/withdrawal-manager-cyclical/contracts/",
"withdrawal-manager-queue/=modules/withdrawal-manager-queue/contracts/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs"
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "london",
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"factory_","type":"address"},{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]Contract Creation Code
608060405234801561001057600080fd5b5060405161024538038061024583398101604081905261002f91610169565b6001600160a01b0382167f7a45a402e4cb6e08ebc196f20f66d5d30e67285a2a8aa80503fa409e727a4af15560006001600160a01b0382161561007257816100e3565b826001600160a01b031663b39c45936040518163ffffffff1660e01b815260040160206040518083038186803b1580156100ab57600080fd5b505afa1580156100bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e39190610147565b90506001600160a01b0381166100f857600080fd5b6001600160a01b03167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc555061019c9050565b80516001600160a01b038116811461014257600080fd5b919050565b60006020828403121561015957600080fd5b6101628261012b565b9392505050565b6000806040838503121561017c57600080fd5b6101858361012b565b91506101936020840161012b565b90509250929050565b609b806101aa6000396000f3fe60806040526000602d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b0381163b604257600080fd5b3660008037600080366000845af43d6000803e8080156060573d6000f35b3d6000fdfea2646970667358221220c8872fc7fbfd8b65110f1223c01eeccb9f4a10ea824be092efdc9476b129c14964736f6c63430008070033000000000000000000000000ca33105902e8d232ddfb9f71ff3d79c7e7f2c4e50000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526000602d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b90506001600160a01b0381163b604257600080fd5b3660008037600080366000845af43d6000803e8080156060573d6000f35b3d6000fdfea2646970667358221220c8872fc7fbfd8b65110f1223c01eeccb9f4a10ea824be092efdc9476b129c14964736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ca33105902e8d232ddfb9f71ff3d79c7e7f2c4e50000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : factory_ (address): 0xca33105902E8d232DDFb9f71Ff3D79C7E7f2C4e5
Arg [1] : implementation_ (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000ca33105902e8d232ddfb9f71ff3d79c7e7f2c4e5
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.