Latest 25 from a total of 75,163 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Call Bridge Call | 31224589 | 1 hr ago | IN | 0.10352754 FRAX | 0.00002985 | ||||
| Call Bridge Call | 31224462 | 1 hr ago | IN | 0.10420948 FRAX | 0.00002449 | ||||
| Call Bridge Call | 31224433 | 1 hr ago | IN | 0.12582993 FRAX | 0.00003064 | ||||
| Call Bridge Call | 31220881 | 3 hrs ago | IN | 2.7589875 FRAX | 0.00002571 | ||||
| Call Bridge Call | 31220637 | 3 hrs ago | IN | 0.25942421 FRAX | 0.00001882 | ||||
| Call Bridge Call | 31212876 | 8 hrs ago | IN | 0.10550892 FRAX | 0.0000238 | ||||
| Call Bridge Call | 31199572 | 15 hrs ago | IN | 0.03049668 FRAX | 0.00004223 | ||||
| Execute With Tok... | 31196281 | 17 hrs ago | IN | 0 FRAX | 0.00003047 | ||||
| Execute With Tok... | 31192627 | 19 hrs ago | IN | 0 FRAX | 0.00012282 | ||||
| Execute With Tok... | 31184939 | 23 hrs ago | IN | 0 FRAX | 0.0001409 | ||||
| Execute With Tok... | 31184866 | 23 hrs ago | IN | 0 FRAX | 0.00013905 | ||||
| Execute With Tok... | 31184539 | 23 hrs ago | IN | 0 FRAX | 0.00020079 | ||||
| Call Bridge Call | 31182874 | 24 hrs ago | IN | 0.12334303 FRAX | 0.00007593 | ||||
| Execute With Tok... | 31180690 | 26 hrs ago | IN | 0 FRAX | 0.00003397 | ||||
| Call Bridge Call | 31170308 | 31 hrs ago | IN | 0.26083197 FRAX | 0.00002657 | ||||
| Execute With Tok... | 31170133 | 31 hrs ago | IN | 0 FRAX | 0.00002371 | ||||
| Execute With Tok... | 31170091 | 31 hrs ago | IN | 0 FRAX | 0.00002568 | ||||
| Call Bridge Call | 31151343 | 42 hrs ago | IN | 1.02317627 FRAX | 0.00004809 | ||||
| Execute With Tok... | 31146714 | 44 hrs ago | IN | 0 FRAX | 0.00006838 | ||||
| Execute With Tok... | 31133981 | 2 days ago | IN | 0 FRAX | 0.00002698 | ||||
| Call Bridge Call | 31109571 | 2 days ago | IN | 6.70487802 FRAX | 0.00008234 | ||||
| Call Bridge Call | 31109389 | 2 days ago | IN | 0.40951104 FRAX | 0.00006282 | ||||
| Execute With Tok... | 31107512 | 2 days ago | IN | 0 FRAX | 0.00042778 | ||||
| Call Bridge Call | 31098098 | 2 days ago | IN | 2.34207842 FRAX | 0.00046721 | ||||
| Execute With Tok... | 31094893 | 3 days ago | IN | 0 FRAX | 0.00006023 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 31226001 | 55 mins ago | 0.03330445 FRAX | ||||
| 31226001 | 55 mins ago | 0.03330445 FRAX | ||||
| 31224589 | 1 hr ago | 0.10352754 FRAX | ||||
| 31224462 | 1 hr ago | 0.10420948 FRAX | ||||
| 31224433 | 1 hr ago | 0.12582993 FRAX | ||||
| 31220881 | 3 hrs ago | 0.26946093 FRAX | ||||
| 31220881 | 3 hrs ago | 2.48952657 FRAX | ||||
| 31220637 | 3 hrs ago | 0.25942421 FRAX | ||||
| 31212876 | 8 hrs ago | 0.10550892 FRAX | ||||
| 31212526 | 8 hrs ago | 0.03324999 FRAX | ||||
| 31212526 | 8 hrs ago | 0.03324999 FRAX | ||||
| 31199572 | 15 hrs ago | 0.03049668 FRAX | ||||
| 31187109 | 22 hrs ago | 0.07102024 FRAX | ||||
| 31187109 | 22 hrs ago | 0.07102024 FRAX | ||||
| 31182874 | 24 hrs ago | 0.12334303 FRAX | ||||
| 31175797 | 28 hrs ago | 0.34790181 FRAX | ||||
| 31175797 | 28 hrs ago | 0.34790181 FRAX | ||||
| 31171351 | 31 hrs ago | 0.0706486 FRAX | ||||
| 31171351 | 31 hrs ago | 0.0706486 FRAX | ||||
| 31170308 | 31 hrs ago | 0.26083197 FRAX | ||||
| 31162631 | 36 hrs ago | 0.26423617 FRAX | ||||
| 31162631 | 36 hrs ago | 0.26423617 FRAX | ||||
| 31151343 | 42 hrs ago | 0.02317627 FRAX | ||||
| 31151343 | 42 hrs ago | 1 FRAX | ||||
| 31143740 | 46 hrs ago | 0.0740013 FRAX |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SquidRouterProxy
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
Yes with 99999 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;
import {InitProxy} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/upgradable/InitProxy.sol";
/// @notice Proxy contract for Squid router. Enable id checking for secure updates.
contract SquidRouterProxy is InitProxy {
/// @notice Set implementation contract expected id.
/// @return id Identifier used to match proxy and implementation.
function contractId() internal pure override returns (bytes32 id) {
id = keccak256("squid-router");
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// General interface for upgradable contracts
interface IContractIdentifier {
/**
* @notice Returns the contract ID. It can be used as a check during upgrades.
* @dev Meant to be overridden in derived contracts.
* @return bytes32 The contract ID
*/
function contractId() external pure returns (bytes32);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IProxy } from './IProxy.sol';
// General interface for upgradable contracts
interface IInitProxy is IProxy {
function init(
address implementationAddress,
address newOwner,
bytes memory params
) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// General interface for upgradable contracts
interface IProxy {
error InvalidOwner();
error InvalidImplementation();
error SetupFailed();
error NotOwner();
error AlreadyInitialized();
function implementation() external view returns (address);
function setup(bytes calldata setupParams) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IProxy } from '../interfaces/IProxy.sol';
/**
* @title BaseProxy Contract
* @dev This abstract contract implements a basic proxy that stores an implementation address. Fallback function
* calls are delegated to the implementation. This contract is meant to be inherited by other proxy contracts.
*/
abstract contract BaseProxy is IProxy {
// bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
// keccak256('owner')
bytes32 internal constant _OWNER_SLOT = 0x02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0;
/**
* @dev Returns the current implementation address.
* @return implementation_ The address of the current implementation contract
*/
function implementation() public view virtual returns (address implementation_) {
assembly {
implementation_ := sload(_IMPLEMENTATION_SLOT)
}
}
/**
* @dev Shadows the setup function of the implementation contract so it can't be called directly via the proxy.
* @param params The setup parameters for the implementation contract.
*/
function setup(bytes calldata params) external {}
/**
* @dev Returns the contract ID. It can be used as a check during upgrades. Meant to be implemented in derived contracts.
* @return bytes32 The contract ID
*/
function contractId() internal pure virtual returns (bytes32);
/**
* @dev Fallback function. Delegates the call to the current implementation contract.
*/
fallback() external payable virtual {
address implementation_ = implementation();
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())
}
}
}
/**
* @dev Payable fallback function. Can be overridden in derived contracts.
*/
receive() external payable virtual {}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IInitProxy } from '../interfaces/IInitProxy.sol';
import { IContractIdentifier } from '../interfaces/IContractIdentifier.sol';
import { BaseProxy } from './BaseProxy.sol';
/**
* @title InitProxy Contract
* @notice A proxy contract that can be initialized to use a specified implementation and owner. Inherits from BaseProxy
* and implements the IInitProxy interface.
* @dev This proxy is constructed empty and then later initialized with the implementation contract address, new owner address,
* and any optional setup parameters.
*/
contract InitProxy is BaseProxy, IInitProxy {
/**
* @dev Initializes the contract and sets the caller as the owner of the contract.
*/
constructor() {
assembly {
sstore(_OWNER_SLOT, caller())
}
}
function contractId() internal pure virtual override returns (bytes32) {
return bytes32(0);
}
/**
* @notice Initializes the proxy contract with the specified implementation, new owner, and any optional setup parameters.
* @param implementationAddress The address of the implementation contract
* @param newOwner The address of the new proxy owner
* @param params Optional parameters to be passed to the setup function of the implementation contract
* @dev This function is only callable by the owner of the proxy. If the proxy has already been initialized, it will revert.
* If the contract ID of the implementation is incorrect, it will also revert. It then stores the implementation address and
* new owner address in the designated storage slots and calls the setup function on the implementation (if setup params exist).
*/
function init(
address implementationAddress,
address newOwner,
bytes memory params
) external {
address owner;
assembly {
owner := sload(_OWNER_SLOT)
}
if (msg.sender != owner) revert NotOwner();
if (implementation() != address(0)) revert AlreadyInitialized();
bytes32 id = contractId();
// Skipping the check if contractId() is not set by an inheriting proxy contract
if (id != bytes32(0) && IContractIdentifier(implementationAddress).contractId() != id)
revert InvalidImplementation();
assembly {
sstore(_IMPLEMENTATION_SLOT, implementationAddress)
sstore(_OWNER_SLOT, newOwner)
}
if (params.length != 0) {
(bool success, ) = implementationAddress.delegatecall(
abi.encodeWithSelector(BaseProxy.setup.selector, params)
);
if (!success) revert SetupFailed();
}
}
}{
"optimizer": {
"enabled": true,
"runs": 99999
},
"viaIR": true,
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"InvalidImplementation","type":"error"},{"inputs":[],"name":"InvalidOwner","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"SetupFailed","type":"error"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementationAddress","type":"address"},{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"params","type":"bytes"}],"name":"setup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080806040523461003957337f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c055610631908161003f8239f35b600080fdfe60806040526004361015610015575b366105ba57005b6000803560e01c908163378dfd8e14610048575080635c60da1b1461004357639ded06df0361000e57610263565b6101f2565b346100f55760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761007f6100f8565b610087610120565b6044359067ffffffffffffffff82116100f157366023830112156100f157816004013592846100b5856101b8565b936100c36040519586610172565b85855236602487830101116100ed57856100ea96602460209301838801378501015261037a565b80f35b5080fd5b8380fd5b80fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011b57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011b57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176101b357604052565b610143565b67ffffffffffffffff81116101b357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3461011b5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011b5760207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011b5760043567ffffffffffffffff80821161011b573660238301121561011b57816004013590811161011b573691016024011161011b57005b9081602091031261011b575190565b6040513d6000823e3d90fd5b60208082528251818301819052939260005b858110610336575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b8181018301518482016040015282016102f6565b3d15610375573d9061035b826101b8565b916103696040519384610172565b82523d6000602084013e565b606090565b91907f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0805473ffffffffffffffffffffffffffffffffffffffff8091163303610590577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9080825416610566576020600491604051928380927f8291286c0000000000000000000000000000000000000000000000000000000082528a165afa8015610561577fc097d45e5a99ca772ab5ec2e5457c2e249760944b95b0b97cbb6b03ec55bae8491600091610532575b50036105085784905555805161045e575050565b60009182916040516104ca8161049e60208201947f9ded06df000000000000000000000000000000000000000000000000000000008652602483016102e4565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610172565b51915af46104d661034a565b50156104de57565b60046040517f97905dfb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f68155f9a000000000000000000000000000000000000000000000000000000008152fd5b610554915060203d60201161055a575b61054c8183610172565b8101906102c9565b3861044a565b503d610542565b6102d8565b60046040517f0dc149f0000000000000000000000000000000000000000000000000000000008152fd5b60046040517f30cd7471000000000000000000000000000000000000000000000000000000008152fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e156105f7573d90f35b3d90fdfea2646970667358221220e2c51cc007895f9f695469b90301305471fa3d3751f735ed425805f0937e412964736f6c63430008170033
Deployed Bytecode
0x60806040526004361015610015575b366105ba57005b6000803560e01c908163378dfd8e14610048575080635c60da1b1461004357639ded06df0361000e57610263565b6101f2565b346100f55760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761007f6100f8565b610087610120565b6044359067ffffffffffffffff82116100f157366023830112156100f157816004013592846100b5856101b8565b936100c36040519586610172565b85855236602487830101116100ed57856100ea96602460209301838801378501015261037a565b80f35b5080fd5b8380fd5b80fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011b57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011b57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176101b357604052565b610143565b67ffffffffffffffff81116101b357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3461011b5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011b5760207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011b5760043567ffffffffffffffff80821161011b573660238301121561011b57816004013590811161011b573691016024011161011b57005b9081602091031261011b575190565b6040513d6000823e3d90fd5b60208082528251818301819052939260005b858110610336575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b8181018301518482016040015282016102f6565b3d15610375573d9061035b826101b8565b916103696040519384610172565b82523d6000602084013e565b606090565b91907f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0805473ffffffffffffffffffffffffffffffffffffffff8091163303610590577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9080825416610566576020600491604051928380927f8291286c0000000000000000000000000000000000000000000000000000000082528a165afa8015610561577fc097d45e5a99ca772ab5ec2e5457c2e249760944b95b0b97cbb6b03ec55bae8491600091610532575b50036105085784905555805161045e575050565b60009182916040516104ca8161049e60208201947f9ded06df000000000000000000000000000000000000000000000000000000008652602483016102e4565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610172565b51915af46104d661034a565b50156104de57565b60046040517f97905dfb000000000000000000000000000000000000000000000000000000008152fd5b60046040517f68155f9a000000000000000000000000000000000000000000000000000000008152fd5b610554915060203d60201161055a575b61054c8183610172565b8101906102c9565b3861044a565b503d610542565b6102d8565b60046040517f0dc149f0000000000000000000000000000000000000000000000000000000008152fd5b60046040517f30cd7471000000000000000000000000000000000000000000000000000000008152fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546000808092368280378136915af43d82803e156105f7573d90f35b3d90fdfea2646970667358221220e2c51cc007895f9f695469b90301305471fa3d3751f735ed425805f0937e412964736f6c63430008170033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
Multichain Portfolio | 35 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.