Source Code
Latest 16 from a total of 16 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Bribe | 39332541 | 27 hrs ago | IN | 0 ETH | 0.00000098 | ||||
| Bribe | 39030141 | 8 days ago | IN | 0 ETH | 0.00000083 | ||||
| Bribe | 38727741 | 15 days ago | IN | 0 ETH | 0.00000089 | ||||
| Bribe | 38425341 | 22 days ago | IN | 0 ETH | 0.00000398 | ||||
| Bribe | 38122942 | 29 days ago | IN | 0 ETH | 0.00000232 | ||||
| Bribe | 37820541 | 36 days ago | IN | 0 ETH | 0.00000633 | ||||
| Bribe | 37518143 | 43 days ago | IN | 0 ETH | 0.00000332 | ||||
| Bribe | 37215741 | 50 days ago | IN | 0 ETH | 0.00000548 | ||||
| Bribe | 36913342 | 57 days ago | IN | 0 ETH | 0.00000378 | ||||
| Bribe | 36610941 | 64 days ago | IN | 0 ETH | 0.00000537 | ||||
| Bribe | 36352052 | 70 days ago | IN | 0 ETH | 0.00000113 | ||||
| Bribe | 36265341 | 72 days ago | IN | 0 ETH | 0.00000064 | ||||
| Bribe | 35998575 | 78 days ago | IN | 0 ETH | 0.00000041 | ||||
| Bribe | 35998517 | 78 days ago | IN | 0 ETH | 0.00000043 | ||||
| Bribe | 35998431 | 78 days ago | IN | 100 wei | 0.00000018 | ||||
| Bribe | 35996315 | 78 days ago | IN | 0 ETH | 0.00000906 |
Latest 1 internal transaction
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 35627121 | 86 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x191F3aF4...0a8932B0c The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
PoolBoosterMerkl
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.0;
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { IPoolBooster } from "../interfaces/poolBooster/IPoolBooster.sol";
import { IMerklDistributor } from "../interfaces/poolBooster/IMerklDistributor.sol";
interface IERC1271 {
/**
* @dev Should return whether the signature provided is valid for the provided data
* @param hash Hash of the data to be signed
* @param signature Signature byte array associated with _data
*/
function isValidSignature(bytes32 hash, bytes memory signature)
external
view
returns (bytes4 magicValue);
}
/**
* @title Pool booster for Merkl distributor
* @author Origin Protocol Inc
*/
contract PoolBoosterMerkl is IPoolBooster, IERC1271 {
/// @notice address of merkl distributor
IMerklDistributor public immutable merklDistributor;
/// @notice address of the OS token
IERC20 public immutable rewardToken;
/// @notice if balance under this amount the bribe action is skipped
uint256 public constant MIN_BRIBE_AMOUNT = 1e10;
/// @notice Campaign duration in seconds
uint32 public immutable duration; // -> should be immutable
/// @notice Campaign type
uint32 public immutable campaignType;
/// @notice Owner of the campaign
address public immutable creator;
/// @notice Campaign data
bytes public campaignData;
constructor(
address _rewardToken,
address _merklDistributor,
uint32 _duration,
uint32 _campaignType,
address _creator,
bytes memory _campaignData
) {
require(_rewardToken != address(0), "Invalid rewardToken address");
require(
_merklDistributor != address(0),
"Invalid merklDistributor address"
);
require(_campaignData.length > 0, "Invalid campaignData");
require(_duration > 1 hours, "Invalid duration");
campaignType = _campaignType;
duration = _duration;
creator = _creator;
merklDistributor = IMerklDistributor(_merklDistributor);
rewardToken = IERC20(_rewardToken);
campaignData = _campaignData;
}
/// @notice Create a campaign on the Merkl distributor
function bribe() external override {
// Ensure token is approved for the Merkl distributor
uint256 minAmount = merklDistributor.rewardTokenMinAmounts(
address(rewardToken)
);
require(minAmount > 0, "Min reward amount must be > 0");
// if balance too small or below threshold, do no bribes
uint256 balance = rewardToken.balanceOf(address(this));
if (
balance < MIN_BRIBE_AMOUNT ||
(balance * 1 hours < minAmount * duration)
) {
return;
}
// Approve the bribe contract to spend the reward token
rewardToken.approve(address(merklDistributor), balance);
// Notify the bribe contract of the reward amount
merklDistributor.signAndCreateCampaign(
IMerklDistributor.CampaignParameters({
campaignId: bytes32(0),
creator: creator,
rewardToken: address(rewardToken),
amount: balance,
campaignType: campaignType,
startTimestamp: getNextPeriodStartTime(),
duration: duration,
campaignData: campaignData
}),
bytes("")
);
emit BribeExecuted(balance);
}
/// @notice Used to sign a campaign on the Merkl distributor
function isValidSignature(bytes32, bytes memory)
external
view
override
returns (bytes4 magicValue)
{
require(msg.sender == address(merklDistributor), "Invalid sender");
// bytes4(keccak256("isValidSignature(bytes32,bytes)")) == 0x1626ba7e
return bytes4(0x1626ba7e);
}
/// @notice Returns the timestamp for the start of the next period based on the configured duration
function getNextPeriodStartTime() public view returns (uint32) {
// Calculate the timestamp for the next period boundary
return uint32((block.timestamp / duration + 1) * duration);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface IMerklDistributor {
struct CampaignParameters {
// POPULATED ONCE CREATED
// ID of the campaign. This can be left as a null bytes32 when creating campaigns
// on Merkl.
bytes32 campaignId;
// CHOSEN BY CAMPAIGN CREATOR
// Address of the campaign creator, if marked as address(0), it will be overriden with the
// address of the `msg.sender` creating the campaign
address creator;
// Address of the token used as a reward
address rewardToken;
// Amount of `rewardToken` to distribute across all the epochs
// Amount distributed per epoch is `amount/numEpoch`
uint256 amount;
// Type of campaign
uint32 campaignType;
// Timestamp at which the campaign should start
uint32 startTimestamp;
// Duration of the campaign in seconds. Has to be a multiple of EPOCH = 3600
uint32 duration;
// Extra data to pass to specify the campaign
bytes campaignData;
}
function createCampaign(CampaignParameters memory newCampaign)
external
returns (bytes32);
function signAndCreateCampaign(
CampaignParameters memory newCampaign,
bytes memory _signature
) external returns (bytes32);
function sign(bytes memory _signature) external;
function rewardTokenMinAmounts(address _rewardToken)
external
view
returns (uint256);
}// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.0;
interface IPoolBooster {
event BribeExecuted(uint256 amount);
/// @notice Execute the bribe action
function bribe() external;
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_rewardToken","type":"address"},{"internalType":"address","name":"_merklDistributor","type":"address"},{"internalType":"uint32","name":"_duration","type":"uint32"},{"internalType":"uint32","name":"_campaignType","type":"uint32"},{"internalType":"address","name":"_creator","type":"address"},{"internalType":"bytes","name":"_campaignData","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BribeExecuted","type":"event"},{"inputs":[],"name":"MIN_BRIBE_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bribe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"campaignData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"campaignType","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"duration","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextPeriodStartTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merklDistributor","outputs":[{"internalType":"contract IMerklDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
0x61012060405234801561001157600080fd5b5060405161103e38038061103e83398101604081905261003091610204565b6001600160a01b03861661008b5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c696420726577617264546f6b656e2061646472657373000000000060448201526064015b60405180910390fd5b6001600160a01b0385166100e15760405162461bcd60e51b815260206004820181905260248201527f496e76616c6964206d65726b6c4469737472696275746f7220616464726573736044820152606401610082565b60008151116101325760405162461bcd60e51b815260206004820152601460248201527f496e76616c69642063616d706169676e446174610000000000000000000000006044820152606401610082565b610e108463ffffffff161161017c5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b210323ab930ba34b7b760811b6044820152606401610082565b63ffffffff80841660e052841660c0526001600160a01b0380831661010052858116608052861660a05260006101b282826103ac565b5050505050505061046a565b80516001600160a01b03811681146101d557600080fd5b919050565b805163ffffffff811681146101d557600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c0878903121561021d57600080fd5b610226876101be565b9550610234602088016101be565b9450610242604088016101da565b9350610250606088016101da565b925061025e608088016101be565b60a08801519092506001600160401b0381111561027a57600080fd5b8701601f8101891361028b57600080fd5b80516001600160401b038111156102a4576102a46101ee565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102d2576102d26101ee565b6040528181528282016020018b10156102ea57600080fd5b60005b82811015610309576020818501810151838301820152016102ed565b506000602083830101528093505050509295509295509295565b600181811c9082168061033757607f821691505b60208210810361035757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103a757806000526020600020601f840160051c810160208510156103845750805b601f840160051c820191505b818110156103a45760008155600101610390565b50505b505050565b81516001600160401b038111156103c5576103c56101ee565b6103d9816103d38454610323565b8461035d565b6020601f82116001811461040d57600083156103f55750848201515b600019600385901b1c1916600184901b1784556103a4565b600084815260208120601f198516915b8281101561043d578785015182556020948501946001909201910161041d565b508482101561045b5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60805160a05160c05160e05161010051610b376105076000396000818160a801526105af0152600081816101a7015261061301526000818160ec0152818161028e0152818161047801526106520152600081816101e3015281816102e9015281816103eb015281816104fb01526105de0152600081816101540152818161021201528181610314015281816104cc015261056b0152610b376000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806337d0208c1161006657806337d0208c1461017e5780633978033f14610188578063759dadce146101a2578063edd5271e146101c9578063f7c618c1146101de57600080fd5b806302d05d3f146100a35780630fb5a6b4146100e75780631626ba7e146101235780632fa4abea1461014f57806334bb9c1714610176575b600080fd5b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61010e7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100de565b610136610131366004610856565b610205565b6040516001600160e01b031990911681526020016100de565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b61010e610285565b6101866102d2565b005b6101946402540be40081565b6040519081526020016100de565b61010e7f000000000000000000000000000000000000000000000000000000000000000081565b6101d16107b2565b6040516100de919061095f565b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102755760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21039b2b73232b960911b60448201526064015b60405180910390fd5b50630b135d3f60e11b5b92915050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166102b8814261098f565b6102c39060016109b1565b6102cd91906109c4565b905090565b604051630ab35fb160e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690632acd7ec490602401602060405180830381865afa15801561035d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038191906109db565b9050600081116103d35760405162461bcd60e51b815260206004820152601d60248201527f4d696e2072657761726420616d6f756e74206d757374206265203e2030000000604482015260640161026c565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e91906109db565b90506402540be4008110806104ac575061049e63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016836109c4565b6104aa82610e106109c4565b105b156104b5575050565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015610544573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056891906109f4565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e55f577b6040518061010001604052806000801b81526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020018481526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001610645610285565b63ffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff1681526020016000805461068990610a16565b80601f01602080910402602001604051908101604052809291908181526020018280546106b590610a16565b80156107025780601f106106d757610100808354040283529160200191610702565b820191906000526020600020905b8154815290600101906020018083116106e557829003601f168201915b5050505050815250604051806020016040528060008152506040518363ffffffff1660e01b8152600401610737929190610a50565b6020604051808303816000875af1158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a91906109db565b506040518181527f1424c3a24f9b1f30558ab0a7b48e07ce9f7d85b293a69a90356e1478504232eb9060200160405180910390a15050565b600080546107bf90610a16565b80601f01602080910402602001604051908101604052809291908181526020018280546107eb90610a16565b80156108385780601f1061080d57610100808354040283529160200191610838565b820191906000526020600020905b81548152906001019060200180831161081b57829003601f168201915b505050505081565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561086957600080fd5b82359150602083013567ffffffffffffffff81111561088757600080fd5b8301601f8101851361089857600080fd5b803567ffffffffffffffff8111156108b2576108b2610840565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156108e1576108e1610840565b6040528181528282016020018710156108f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000815180845260005b8181101561093f57602081850181015186830182015201610923565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006109726020830184610919565b9392505050565b634e487b7160e01b600052601160045260246000fd5b6000826109ac57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561027f5761027f610979565b808202811582820484141761027f5761027f610979565b6000602082840312156109ed57600080fd5b5051919050565b600060208284031215610a0657600080fd5b8151801515811461097257600080fd5b600181811c90821680610a2a57607f821691505b602082108103610a4a57634e487b7160e01b600052602260045260246000fd5b50919050565b604081528251604082015260018060a01b03602084015116606082015260018060a01b036040840151166080820152606083015160a082015260006080840151610aa260c084018263ffffffff169052565b5060a084015163ffffffff811660e08401525060c084015163ffffffff81166101008401525060e0840151610100610120840152610ae4610140840182610919565b90508281036020840152610af88185610919565b9594505050505056fea2646970667358221220817db8bdc668d25df24aadb8b56f8a0ab82b2dd31c90c4f91b3a56e8725f85dc64736f6c634300081c0033000000000000000000000000dbfefd2e8460a6ee4955a68582f85708baea60a30000000000000000000000008bb4c975ff3c250e0ceea271728547f3802b36fd0000000000000000000000000000000000000000000000000000000000093a80000000000000000000000000000000000000000000000000000000000000002d0000000000000000000000004ff1b9d9ba8558f5eafcec096318ea0d8b54197100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000016067a66cbacb2fe48ec4326932d4528215ad11656a86135f2795f5b90e501eb53800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806337d0208c1161006657806337d0208c1461017e5780633978033f14610188578063759dadce146101a2578063edd5271e146101c9578063f7c618c1146101de57600080fd5b806302d05d3f146100a35780630fb5a6b4146100e75780631626ba7e146101235780632fa4abea1461014f57806334bb9c1714610176575b600080fd5b6100ca7f0000000000000000000000004ff1b9d9ba8558f5eafcec096318ea0d8b54197181565b6040516001600160a01b0390911681526020015b60405180910390f35b61010e7f0000000000000000000000000000000000000000000000000000000000093a8081565b60405163ffffffff90911681526020016100de565b610136610131366004610856565b610205565b6040516001600160e01b031990911681526020016100de565b6100ca7f0000000000000000000000008bb4c975ff3c250e0ceea271728547f3802b36fd81565b61010e610285565b6101866102d2565b005b6101946402540be40081565b6040519081526020016100de565b61010e7f000000000000000000000000000000000000000000000000000000000000002d81565b6101d16107b2565b6040516100de919061095f565b6100ca7f000000000000000000000000dbfefd2e8460a6ee4955a68582f85708baea60a381565b6000336001600160a01b037f0000000000000000000000008bb4c975ff3c250e0ceea271728547f3802b36fd16146102755760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21039b2b73232b960911b60448201526064015b60405180910390fd5b50630b135d3f60e11b5b92915050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000093a80166102b8814261098f565b6102c39060016109b1565b6102cd91906109c4565b905090565b604051630ab35fb160e21b81526001600160a01b037f000000000000000000000000dbfefd2e8460a6ee4955a68582f85708baea60a3811660048301526000917f0000000000000000000000008bb4c975ff3c250e0ceea271728547f3802b36fd90911690632acd7ec490602401602060405180830381865afa15801561035d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038191906109db565b9050600081116103d35760405162461bcd60e51b815260206004820152601d60248201527f4d696e2072657761726420616d6f756e74206d757374206265203e2030000000604482015260640161026c565b6040516370a0823160e01b81523060048201526000907f000000000000000000000000dbfefd2e8460a6ee4955a68582f85708baea60a36001600160a01b0316906370a0823190602401602060405180830381865afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e91906109db565b90506402540be4008110806104ac575061049e63ffffffff7f0000000000000000000000000000000000000000000000000000000000093a8016836109c4565b6104aa82610e106109c4565b105b156104b5575050565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000008bb4c975ff3c250e0ceea271728547f3802b36fd81166004830152602482018390527f000000000000000000000000dbfefd2e8460a6ee4955a68582f85708baea60a3169063095ea7b3906044016020604051808303816000875af1158015610544573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056891906109f4565b507f0000000000000000000000008bb4c975ff3c250e0ceea271728547f3802b36fd6001600160a01b031663e55f577b6040518061010001604052806000801b81526020017f0000000000000000000000004ff1b9d9ba8558f5eafcec096318ea0d8b5419716001600160a01b031681526020017f000000000000000000000000dbfefd2e8460a6ee4955a68582f85708baea60a36001600160a01b031681526020018481526020017f000000000000000000000000000000000000000000000000000000000000002d63ffffffff168152602001610645610285565b63ffffffff1681526020017f0000000000000000000000000000000000000000000000000000000000093a8063ffffffff1681526020016000805461068990610a16565b80601f01602080910402602001604051908101604052809291908181526020018280546106b590610a16565b80156107025780601f106106d757610100808354040283529160200191610702565b820191906000526020600020905b8154815290600101906020018083116106e557829003601f168201915b5050505050815250604051806020016040528060008152506040518363ffffffff1660e01b8152600401610737929190610a50565b6020604051808303816000875af1158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a91906109db565b506040518181527f1424c3a24f9b1f30558ab0a7b48e07ce9f7d85b293a69a90356e1478504232eb9060200160405180910390a15050565b600080546107bf90610a16565b80601f01602080910402602001604051908101604052809291908181526020018280546107eb90610a16565b80156108385780601f1061080d57610100808354040283529160200191610838565b820191906000526020600020905b81548152906001019060200180831161081b57829003601f168201915b505050505081565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561086957600080fd5b82359150602083013567ffffffffffffffff81111561088757600080fd5b8301601f8101851361089857600080fd5b803567ffffffffffffffff8111156108b2576108b2610840565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156108e1576108e1610840565b6040528181528282016020018710156108f957600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000815180845260005b8181101561093f57602081850181015186830182015201610923565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006109726020830184610919565b9392505050565b634e487b7160e01b600052601160045260246000fd5b6000826109ac57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561027f5761027f610979565b808202811582820484141761027f5761027f610979565b6000602082840312156109ed57600080fd5b5051919050565b600060208284031215610a0657600080fd5b8151801515811461097257600080fd5b600181811c90821680610a2a57607f821691505b602082108103610a4a57634e487b7160e01b600052602260045260246000fd5b50919050565b604081528251604082015260018060a01b03602084015116606082015260018060a01b036040840151166080820152606083015160a082015260006080840151610aa260c084018263ffffffff169052565b5060a084015163ffffffff811660e08401525060c084015163ffffffff81166101008401525060e0840151610100610120840152610ae4610140840182610919565b90508281036020840152610af88185610919565b9594505050505056fea2646970667358221220817db8bdc668d25df24aadb8b56f8a0ab82b2dd31c90c4f91b3a56e8725f85dc64736f6c634300081c0033
Loading...
Loading
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.