Source Code
Overview
ETH Balance
0 ETH
ETH Value
$0.00Latest 6 from a total of 6 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Initiate Bridge | 21416098 | 11 hrs ago | IN | 0.00668 ETH | 0.00000144 | ||||
| Initiate Bridge | 21415031 | 12 hrs ago | IN | 0.006477 ETH | 0.00000144 | ||||
| Initiate Bridge | 21412899 | 12 hrs ago | IN | 0.006708 ETH | 0.00000145 | ||||
| Initiate Bridge | 21411952 | 12 hrs ago | IN | 0.004648 ETH | 0.00000247 | ||||
| Initiate Bridge | 21409803 | 13 hrs ago | IN | 0.025575 ETH | 0.00000297 | ||||
| Initiate Bridge | 21097012 | 4 days ago | IN | 0.013089 ETH | 0.0000015 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BridgeRouterETH
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/**
*Submitted for verification at KatanaScan.com on 2026-01-08
*/
// File: @openzeppelin/contracts/utils/Context.sol
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
// File: @openzeppelin/contracts/access/Ownable.sol
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* The initial owner is set to the address provided by the deployer. This can
* later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// File: @openzeppelin/contracts/utils/ReentrancyGuard.sol
// OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol)
pragma solidity ^0.8.20;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at,
* consider using {ReentrancyGuardTransient} instead.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
abstract contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant NOT_ENTERED = 1;
uint256 private constant ENTERED = 2;
uint256 private _status;
/**
* @dev Unauthorized reentrant call.
*/
error ReentrancyGuardReentrantCall();
constructor() {
_status = NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and making it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
_nonReentrantBefore();
_;
_nonReentrantAfter();
}
function _nonReentrantBefore() private {
// On the first call to nonReentrant, _status will be NOT_ENTERED
if (_status == ENTERED) {
revert ReentrancyGuardReentrantCall();
}
// Any calls to nonReentrant after this point will fail
_status = ENTERED;
}
function _nonReentrantAfter() private {
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = NOT_ENTERED;
}
/**
* @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
* `nonReentrant` function in the call stack.
*/
function _reentrancyGuardEntered() internal view returns (bool) {
return _status == ENTERED;
}
}
// File: @openzeppelin/contracts/utils/Pausable.sol
// OpenZeppelin Contracts (last updated v5.3.0) (utils/Pausable.sol)
pragma solidity ^0.8.20;
/**
* @dev Contract module which allows children to implement an emergency stop
* mechanism that can be triggered by an authorized account.
*
* This module is used through inheritance. It will make available the
* modifiers `whenNotPaused` and `whenPaused`, which can be applied to
* the functions of your contract. Note that they will not be pausable by
* simply including this module, only once the modifiers are put in place.
*/
abstract contract Pausable is Context {
bool private _paused;
/**
* @dev Emitted when the pause is triggered by `account`.
*/
event Paused(address account);
/**
* @dev Emitted when the pause is lifted by `account`.
*/
event Unpaused(address account);
/**
* @dev The operation failed because the contract is paused.
*/
error EnforcedPause();
/**
* @dev The operation failed because the contract is not paused.
*/
error ExpectedPause();
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*
* Requirements:
*
* - The contract must not be paused.
*/
modifier whenNotPaused() {
_requireNotPaused();
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*
* Requirements:
*
* - The contract must be paused.
*/
modifier whenPaused() {
_requirePaused();
_;
}
/**
* @dev Returns true if the contract is paused, and false otherwise.
*/
function paused() public view virtual returns (bool) {
return _paused;
}
/**
* @dev Throws if the contract is paused.
*/
function _requireNotPaused() internal view virtual {
if (paused()) {
revert EnforcedPause();
}
}
/**
* @dev Throws if the contract is not paused.
*/
function _requirePaused() internal view virtual {
if (!paused()) {
revert ExpectedPause();
}
}
/**
* @dev Triggers stopped state.
*
* Requirements:
*
* - The contract must not be paused.
*/
function _pause() internal virtual whenNotPaused {
_paused = true;
emit Paused(_msgSender());
}
/**
* @dev Returns to normal state.
*
* Requirements:
*
* - The contract must be paused.
*/
function _unpause() internal virtual whenPaused {
_paused = false;
emit Unpaused(_msgSender());
}
}
// File: BridgeRouterETH.sol
pragma solidity ^0.8.20;
contract BridgeRouterETH is Ownable, ReentrancyGuard, Pausable {
uint256 public totalVolume;
uint256 public totalTransactions;
mapping(address => uint256) public userVolume;
mapping(address => uint256) public userTransactions;
event BridgeInitiated(
address indexed user,
uint256 indexed destinationChainId,
uint256 amount,
uint256 timestamp
);
event VolumeRecorded(
address indexed user,
uint256 amount,
uint256 totalUserVolume,
uint256 totalProtocolVolume
);
error InvalidAmount();
error TransferFailed();
constructor() Ownable(msg.sender) {}
function initiateBridge(
uint256 destinationChainId
) external payable nonReentrant whenNotPaused {
if (msg.value == 0) revert InvalidAmount();
(bool success, ) = payable(msg.sender).call{value: msg.value}("");
if (!success) revert TransferFailed();
totalVolume += msg.value;
totalTransactions += 1;
userVolume[msg.sender] += msg.value;
userTransactions[msg.sender] += 1;
emit BridgeInitiated(
msg.sender,
destinationChainId,
msg.value,
block.timestamp
);
emit VolumeRecorded(
msg.sender,
msg.value,
userVolume[msg.sender],
totalVolume
);
}
function getUserStats(address user) external view returns (
uint256 volume,
uint256 transactions
) {
return (userVolume[user], userTransactions[user]);
}
function getProtocolStats() external view returns (
uint256 volume,
uint256 transactions
) {
return (totalVolume, totalTransactions);
}
function pause() external onlyOwner {
_pause();
}
function unpause() external onlyOwner {
_unpause();
}
function emergencyWithdraw() external onlyOwner {
uint256 balance = address(this).balance;
(bool success, ) = payable(owner()).call{value: balance}("");
if (!success) revert TransferFailed();
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"destinationChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"BridgeInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalUserVolume","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalProtocolVolume","type":"uint256"}],"name":"VolumeRecorded","type":"event"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getProtocolStats","outputs":[{"internalType":"uint256","name":"volume","type":"uint256"},{"internalType":"uint256","name":"transactions","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserStats","outputs":[{"internalType":"uint256","name":"volume","type":"uint256"},{"internalType":"uint256","name":"transactions","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"destinationChainId","type":"uint256"}],"name":"initiateBridge","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalTransactions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalVolume","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userTransactions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userVolume","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561000f575f80fd5b50338061003557604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61003e81610048565b5060018055610097565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610773806100a45f395ff3fe6080604052600436106100dc575f3560e01c80638456cb591161007c578063b9a6003811610057578063b9a6003814610258578063bf81beac1461026d578063db2e21bc14610280578063f2fde38b14610294575f80fd5b80638456cb59146101f35780638da5cb5b14610207578063a6769ef81461022d575f80fd5b80635c975abb116100b75780635c975abb146101915780635f81a57c146101b3578063715018a6146101c8578063771aceef146101dc575f80fd5b80633f4ba83a146100e75780634e43603a146100fd57806359d7191414610158575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b506100fb6102b3565b005b348015610108575f80fd5b5061013e6101173660046106d4565b6001600160a01b03165f908152600560209081526040808320546006909252909120549091565b604080519283526020830191909152015b60405180910390f35b348015610163575f80fd5b506101836101723660046106d4565b60066020525f908152604090205481565b60405190815260200161014f565b34801561019c575f80fd5b5060025460ff16604051901515815260200161014f565b3480156101be575f80fd5b5061018360035481565b3480156101d3575f80fd5b506100fb6102c5565b3480156101e7575f80fd5b5060035460045461013e565b3480156101fe575f80fd5b506100fb6102d6565b348015610212575f80fd5b505f546040516001600160a01b03909116815260200161014f565b348015610238575f80fd5b506101836102473660046106d4565b60056020525f908152604090205481565b348015610263575f80fd5b5061018360045481565b6100fb61027b366004610701565b6102e6565b34801561028b575f80fd5b506100fb61048d565b34801561029f575f80fd5b506100fb6102ae3660046106d4565b61051a565b6102bb610559565b6102c3610585565b565b6102cd610559565b6102c35f6105d7565b6102de610559565b6102c3610626565b6102ee610663565b6102f661068d565b345f036103165760405163162908e360e11b815260040160405180910390fd5b6040515f90339034908381818185875af1925050503d805f8114610355576040519150601f19603f3d011682016040523d82523d5f602084013e61035a565b606091505b505090508061037c576040516312171d8360e31b815260040160405180910390fd5b3460035f82825461038d9190610718565b92505081905550600160045f8282546103a69190610718565b9091555050335f90815260056020526040812080543492906103c9908490610718565b9091555050335f9081526006602052604081208054600192906103ed908490610718565b909155505060408051348152426020820152839133917f76543904528179ee2444e3a1dca9aab81404195d13ac1855ecd3a3c2fc7fe686910160405180910390a3335f81815260056020908152604091829020546003548351348152928301919091528183015290517fbe136f55822a8400613c511fe3a4ab8aeaa1df9c6d834afd7d8531039e327b099181900360600190a25061048a60018055565b50565b610495610559565b475f6104a85f546001600160a01b031690565b6001600160a01b0316826040515f6040518083038185875af1925050503d805f81146104ef576040519150601f19603f3d011682016040523d82523d5f602084013e6104f4565b606091505b5050905080610516576040516312171d8360e31b815260040160405180910390fd5b5050565b610522610559565b6001600160a01b03811661055057604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61048a816105d7565b5f546001600160a01b031633146102c35760405163118cdaa760e01b8152336004820152602401610547565b61058d6106b1565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61062e61068d565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586105ba3390565b60026001540361068657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b60025460ff16156102c35760405163d93c066560e01b815260040160405180910390fd5b60025460ff166102c357604051638dfc202b60e01b815260040160405180910390fd5b5f602082840312156106e4575f80fd5b81356001600160a01b03811681146106fa575f80fd5b9392505050565b5f60208284031215610711575f80fd5b5035919050565b8082018082111561073757634e487b7160e01b5f52601160045260245ffd5b9291505056fea26469706673582212205cf12a46a1938d6c2dc46db2163b3f82e23bdd483c53f0d856b0ac62d512a80664736f6c63430008140033
Deployed Bytecode
0x6080604052600436106100dc575f3560e01c80638456cb591161007c578063b9a6003811610057578063b9a6003814610258578063bf81beac1461026d578063db2e21bc14610280578063f2fde38b14610294575f80fd5b80638456cb59146101f35780638da5cb5b14610207578063a6769ef81461022d575f80fd5b80635c975abb116100b75780635c975abb146101915780635f81a57c146101b3578063715018a6146101c8578063771aceef146101dc575f80fd5b80633f4ba83a146100e75780634e43603a146100fd57806359d7191414610158575f80fd5b366100e357005b5f80fd5b3480156100f2575f80fd5b506100fb6102b3565b005b348015610108575f80fd5b5061013e6101173660046106d4565b6001600160a01b03165f908152600560209081526040808320546006909252909120549091565b604080519283526020830191909152015b60405180910390f35b348015610163575f80fd5b506101836101723660046106d4565b60066020525f908152604090205481565b60405190815260200161014f565b34801561019c575f80fd5b5060025460ff16604051901515815260200161014f565b3480156101be575f80fd5b5061018360035481565b3480156101d3575f80fd5b506100fb6102c5565b3480156101e7575f80fd5b5060035460045461013e565b3480156101fe575f80fd5b506100fb6102d6565b348015610212575f80fd5b505f546040516001600160a01b03909116815260200161014f565b348015610238575f80fd5b506101836102473660046106d4565b60056020525f908152604090205481565b348015610263575f80fd5b5061018360045481565b6100fb61027b366004610701565b6102e6565b34801561028b575f80fd5b506100fb61048d565b34801561029f575f80fd5b506100fb6102ae3660046106d4565b61051a565b6102bb610559565b6102c3610585565b565b6102cd610559565b6102c35f6105d7565b6102de610559565b6102c3610626565b6102ee610663565b6102f661068d565b345f036103165760405163162908e360e11b815260040160405180910390fd5b6040515f90339034908381818185875af1925050503d805f8114610355576040519150601f19603f3d011682016040523d82523d5f602084013e61035a565b606091505b505090508061037c576040516312171d8360e31b815260040160405180910390fd5b3460035f82825461038d9190610718565b92505081905550600160045f8282546103a69190610718565b9091555050335f90815260056020526040812080543492906103c9908490610718565b9091555050335f9081526006602052604081208054600192906103ed908490610718565b909155505060408051348152426020820152839133917f76543904528179ee2444e3a1dca9aab81404195d13ac1855ecd3a3c2fc7fe686910160405180910390a3335f81815260056020908152604091829020546003548351348152928301919091528183015290517fbe136f55822a8400613c511fe3a4ab8aeaa1df9c6d834afd7d8531039e327b099181900360600190a25061048a60018055565b50565b610495610559565b475f6104a85f546001600160a01b031690565b6001600160a01b0316826040515f6040518083038185875af1925050503d805f81146104ef576040519150601f19603f3d011682016040523d82523d5f602084013e6104f4565b606091505b5050905080610516576040516312171d8360e31b815260040160405180910390fd5b5050565b610522610559565b6001600160a01b03811661055057604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61048a816105d7565b5f546001600160a01b031633146102c35760405163118cdaa760e01b8152336004820152602401610547565b61058d6106b1565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61062e61068d565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586105ba3390565b60026001540361068657604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b60025460ff16156102c35760405163d93c066560e01b815260040160405180910390fd5b60025460ff166102c357604051638dfc202b60e01b815260040160405180910390fd5b5f602082840312156106e4575f80fd5b81356001600160a01b03811681146106fa575f80fd5b9392505050565b5f60208284031215610711575f80fd5b5035919050565b8082018082111561073757634e487b7160e01b5f52601160045260245ffd5b9291505056fea26469706673582212205cf12a46a1938d6c2dc46db2163b3f82e23bdd483c53f0d856b0ac62d512a80664736f6c63430008140033
Deployed Bytecode Sourcemap
10566:2302:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12528:67;;;;;;;;;;;;;:::i;:::-;;12079:190;;;;;;;;;;-1:-1:-1;12079:190:0;;;;;:::i;:::-;-1:-1:-1;;;;;12220:16:0;12148:14;12220:16;;;:10;:16;;;;;;;;;12238;:22;;;;;;;12220:16;;12079:190;;;;;479:25:1;;;535:2;520:18;;513:34;;;;452:18;12079:190:0;;;;;;;;10768:51;;;;;;;;;;-1:-1:-1;10768:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;704:25:1;;;692:2;677:18;10768:51:0;558:177:1;9470:86:0;;;;;;;;;;-1:-1:-1;9541:7:0;;;;9470:86;;905:14:1;;898:22;880:41;;868:2;853:18;9470:86:0;740:187:1;10638:26:0;;;;;;;;;;;;;;;;3361:103;;;;;;;;;;;;;:::i;12277:172::-;;;;;;;;;;-1:-1:-1;12410:11:0;;12423:17;;12277:172;;12457:63;;;;;;;;;;;;;:::i;2686:87::-;;;;;;;;;;-1:-1:-1;2732:7:0;2759:6;2686:87;;-1:-1:-1;;;;;2759:6:0;;;1078:51:1;;1066:2;1051:18;2686:87:0;932:203:1;10716:45:0;;;;;;;;;;-1:-1:-1;10716:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;10671:32;;;;;;;;;;;;;;;;11269:802;;;;;;:::i;:::-;;:::i;12603:225::-;;;;;;;;;;;;;:::i;3619:220::-;;;;;;;;;;-1:-1:-1;3619:220:0;;;;;:::i;:::-;;:::i;12528:67::-;2572:13;:11;:13::i;:::-;12577:10:::1;:8;:10::i;:::-;12528:67::o:0;3361:103::-;2572:13;:11;:13::i;:::-;3426:30:::1;3453:1;3426:18;:30::i;12457:63::-:0;2572:13;:11;:13::i;:::-;12504:8:::1;:6;:8::i;11269:802::-:0;6786:21;:19;:21::i;:::-;9075:19:::1;:17;:19::i;:::-;11396:9:::2;11409:1;11396:14:::0;11392:42:::2;;11419:15;;-1:-1:-1::0;;;11419:15:0::2;;;;;;;;;;;11392:42;11474:46;::::0;11456:12:::2;::::0;11482:10:::2;::::0;11506:9:::2;::::0;11456:12;11474:46;11456:12;11474:46;11506:9;11482:10;11474:46:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11455:65;;;11536:7;11531:37;;11552:16;;-1:-1:-1::0;;;11552:16:0::2;;;;;;;;;;;11531:37;11604:9;11589:11;;:24;;;;;;;:::i;:::-;;;;;;;;11645:1;11624:17;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;11668:10:0::2;11657:22;::::0;;;:10:::2;:22;::::0;;;;:35;;11683:9:::2;::::0;11657:22;:35:::2;::::0;11683:9;;11657:35:::2;:::i;:::-;::::0;;;-1:-1:-1;;11720:10:0::2;11703:28;::::0;;;:16:::2;:28;::::0;;;;:33;;11735:1:::2;::::0;11703:28;:33:::2;::::0;11735:1;;11703:33:::2;:::i;:::-;::::0;;;-1:-1:-1;;11762:138:0::2;::::0;;11850:9:::2;479:25:1::0;;11874:15:0::2;535:2:1::0;520:18;;513:34;11817:18:0;;11792:10:::2;::::0;11762:138:::2;::::0;452:18:1;11762:138:0::2;;;;;;;11955:10;12004:22;::::0;;;:10:::2;:22;::::0;;;;;;;;;12041:11:::2;::::0;11926:137;;11980:9:::2;1964:25:1::0;;2005:18;;;1998:34;;;;2048:18;;;2041:34;11926:137:0;;::::2;::::0;;;;1952:2:1;11926:137:0;;::::2;11381:690;6830:20:::0;6121:1;7372:21;;7189:212;6830:20;11269:802;:::o;12603:225::-;2572:13;:11;:13::i;:::-;12680:21:::1;12662:15;12739:7;2732::::0;2759:6;-1:-1:-1;;;;;2759:6:0;;2686:87;12739:7:::1;-1:-1:-1::0;;;;;12731:21:0::1;12760:7;12731:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12712:60;;;12788:7;12783:37;;12804:16;;-1:-1:-1::0;;;12804:16:0::1;;;;;;;;;;;12783:37;12651:177;;12603:225::o:0;3619:220::-;2572:13;:11;:13::i;:::-;-1:-1:-1;;;;;3704:22:0;::::1;3700:93;;3750:31;::::0;-1:-1:-1;;;3750:31:0;;3778:1:::1;3750:31;::::0;::::1;1078:51:1::0;1051:18;;3750:31:0::1;;;;;;;;3700:93;3803:28;3822:8;3803:18;:28::i;2851:166::-:0;2732:7;2759:6;-1:-1:-1;;;;;2759:6:0;775:10;2911:23;2907:103;;2958:40;;-1:-1:-1;;;2958:40:0;;775:10;2958:40;;;1078:51:1;1051:18;;2958:40:0;932:203:1;10371:120:0;9334:16;:14;:16::i;:::-;10430:7:::1;:15:::0;;-1:-1:-1;;10430:15:0::1;::::0;;10461:22:::1;775:10:::0;10470:12:::1;10461:22;::::0;-1:-1:-1;;;;;1096:32:1;;;1078:51;;1066:2;1051:18;10461:22:0::1;;;;;;;10371:120::o:0;3999:191::-;4073:16;4092:6;;-1:-1:-1;;;;;4109:17:0;;;-1:-1:-1;;;;;;4109:17:0;;;;;;4142:40;;4092:6;;;;;;;4142:40;;4073:16;4142:40;4062:128;3999:191;:::o;10112:118::-;9075:19;:17;:19::i;:::-;10172:7:::1;:14:::0;;-1:-1:-1;;10172:14:0::1;10182:4;10172:14;::::0;;10202:20:::1;10209:12;775:10:::0;;695:98;6866:315;6164:1;6995:7;;:18;6991:88;;7037:30;;-1:-1:-1;;;7037:30:0;;;;;;;;;;;6991:88;6164:1;7156:7;:17;6866:315::o;9629:132::-;9541:7;;;;9691:63;;;9727:15;;-1:-1:-1;;;9727:15:0;;;;;;;;;;;9838:130;9541:7;;;;9897:64;;9934:15;;-1:-1:-1;;;9934:15:0;;;;;;;;;;;14:286:1;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:1;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:1:o;1140:180::-;1199:6;1252:2;1240:9;1231:7;1227:23;1223:32;1220:52;;;1268:1;1265;1258:12;1220:52;-1:-1:-1;1291:23:1;;1140:180;-1:-1:-1;1140:180:1:o;1535:222::-;1600:9;;;1621:10;;;1618:133;;;1673:10;1668:3;1664:20;1661:1;1654:31;1708:4;1705:1;1698:15;1736:4;1733:1;1726:15;1618:133;1535:222;;;;:::o
Swarm Source
ipfs://5cf12a46a1938d6c2dc46db2163b3f82e23bdd483c53f0d856b0ac62d512a806
Loading...
Loading
Loading...
Loading
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.