ETH Price: $2,257.86 (-0.98%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Proposal_230927_03_Rebalance_Moonbeam_Polygon

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 3 : Proposal_230927_03_Rebalance_Moonbeam_Polygon.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.20;

import {IMasterVault} from "src/interfaces/IMasterVault.sol";
import {IProposal} from "src/interfaces/IProposal.sol";

/// @title This proposal rebalances all Moonbeam TVL to Polygon
contract Proposal_230927_03_Rebalance_Moonbeam_Polygon is IProposal {
    function execute() external {
        IMasterVault masterVault = IMasterVault(0x66A3188a218c4fA5a151FE6cDefe7ffE59606304);

        // Set new scores
        uint256[] memory chainIds = new uint256[](4);
        uint256[] memory scores = new uint256[](4);
        chainIds[0] = 1;
        scores[0] = 150;
        chainIds[1] = 137;
        scores[1] = 850;
        chainIds[2] = 1284;
        scores[2] = 0;
        chainIds[3] = 42161;
        scores[3] = 0;

        masterVault.rebalance(1284, 137, 1000, 1);
    }
}

File 2 of 3 : IMasterVault.sol
pragma solidity ^0.8.20;

interface IMasterVault {
    event ActionCompleted();
    event ActionQueued(uint256 amountIn, uint8 actionType);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Deposit(
        address indexed who,
        address indexed receiver,
        address indexed asset,
        uint256 numberOfAssets,
        uint256 numberOfShares,
        uint256 pricePerToken,
        uint256 opId
    );
    event OperationCompleted(uint256 opId);
    event OperationQueued(uint256 opId);
    event OperationStarted(uint256 opId);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event ScoringUpdated(uint256 chainId, uint256 score);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Withdrawal(
        address indexed who,
        address indexed receiver,
        address indexed asset,
        uint256 numberOfAssets,
        uint256 numberOfShares,
        uint256 pricePerToken,
        uint256 opId
    );

    struct RootVaultAction {
        uint8 actionType;
        uint8 slippage;
        uint256 amountIn;
        uint256 amountOut;
    }

    struct CallData {
        address to;
        bytes data;
        uint256 value;
    }

    function addChain(uint256 chainId, uint16 lzChainId, address remoteVaultAddress) external;
    function addToken(address token) external;
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function assetConverter() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function bridgeAdapterToChainId(address) external view returns (uint256);
    function bridgeAdapters(uint256) external view returns (address);
    function burn(uint256 amount) external;
    function burnFrom(address account, uint256 amount) external;
    function call(CallData[] memory calls) external;
    function canNewOperationBeProcessedInstantly() external view returns (bool);
    function chainIdToLzChainId(uint256) external view returns (uint16);
    function currentAction() external view returns (RootVaultAction memory);
    function decimals() external view returns (uint8);
    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool);
    function deposit(address asset, uint256 value, address beneficiary, uint8 slippage) external;
    function dropCurrentAction(bool finalize) external;
    function dropCurrentOperation() external;
    function increaseAllowance(address spender, uint256 addedValue) external returns (bool);
    function isActionInProgress() external view returns (bool);
    function isQueueBusy() external view returns (bool);
    function isQueueEmpty() external view returns (bool);
    function isTransferExpected(bytes32) external view returns (bool);
    function lzEndpoint() external view returns (address);
    function lzReceive(uint16 _srcChainId, bytes memory _srcAddress, uint64 _nonce, bytes memory _payload) external;
    function mainAsset() external view returns (address);
    function minSlippageProvider() external view returns (address);
    function name() external view returns (string memory);
    function operations(uint256) external view returns (uint8 opType, bytes memory params, bool isInitialized);
    function operationsQueue() external view returns (uint256 nextOperation, uint256 currentOperation);
    function owner() external view returns (address);
    function portfolioScore(uint256) external view returns (uint256);
    function processAction(uint256 amountToProcess) external returns (bool isExecutedCompletly);
    function rebalance(uint256 srcChainId, uint256 dstChainId, uint256 shareToRebalance, uint8 slippage) external;
    function rebalancer() external view returns (address);
    function redeem(address asset, uint256 shares, address beneficiary, uint8 slippage) external payable;
    function redeemIdToAssetsTransferred(uint256) external view returns (uint256);
    function removeChain(uint256 chainId) external;
    function removeToken(address token) external;
    function renounceOwnership() external;
    function rootVault() external view returns (address);
    function setNewMinSlippageProvider(address newProvider) external;
    function setNewNextOperation(uint256 newNextOperation) external;
    function setNewRebalancer(address newRebalancer) external;
    function startNextOperation() external payable;
    function symbol() external view returns (string memory);
    function totalAssets() external view returns (uint256 assets);
    function totalAssetsAfterDeposit(uint256) external view returns (uint256);
    function totalAssetsBeforeDeposit(uint256) external view returns (uint256);
    function totalPortfolioScore() external view returns (uint256 score);
    function totalSupply() external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function transferCompleted(bytes32 transferId, uint256 value, uint8 slippage) external;
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
    function transferOwnership(address newOwner) external;
    function trustedRemotes(uint16) external view returns (bytes memory);
    function updateBridgeAdapter(uint256 chainId, address bridgeAdapter) external;
    function updateScores(uint256[] memory chains, uint256[] memory scores) external;
}

File 3 of 3 : IProposal.sol
pragma solidity ^0.8.20;

interface IProposal {
    function execute() external;
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": true,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080806040523461001657610217908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c63614619541461002a57600080fd5b8190346101595781600319360112610159576100458161015c565b600481526080366020830137816100c36040516100618161015c565b60048152608036602083013760016100788561018e565b5260966100848261018e565b526089610090856101b1565b5261035261009d826101b1565b5261a4b16100bd61050495866100b2826101c1565b52856100bd856101c1565b526101d1565b527366a3188a218c4fa5a151fe6cdefe7ffe59606304803b1561015557608483926040519485938492630bd5e4a160e41b84526004840152608960248401526103e86044840152600160648401525af1801561014a57610121575080f35b67ffffffffffffffff81116101365760405280f35b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5050fd5b50fd5b60a0810190811067ffffffffffffffff82111761017857604052565b634e487b7160e01b600052604160045260246000fd5b80511561019b5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101561019b5760400190565b80516002101561019b5760600190565b80516003101561019b576080019056fea2646970667358221220ec0272ca492585031a307d3e0a476a18b5edb5ee9bb7cc7a399f11548eb8b32a64736f6c63430008140033

Deployed Bytecode

0x608080604052600436101561001357600080fd5b600090813560e01c63614619541461002a57600080fd5b8190346101595781600319360112610159576100458161015c565b600481526080366020830137816100c36040516100618161015c565b60048152608036602083013760016100788561018e565b5260966100848261018e565b526089610090856101b1565b5261035261009d826101b1565b5261a4b16100bd61050495866100b2826101c1565b52856100bd856101c1565b526101d1565b527366a3188a218c4fa5a151fe6cdefe7ffe59606304803b1561015557608483926040519485938492630bd5e4a160e41b84526004840152608960248401526103e86044840152600160648401525af1801561014a57610121575080f35b67ffffffffffffffff81116101365760405280f35b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5050fd5b50fd5b60a0810190811067ffffffffffffffff82111761017857604052565b634e487b7160e01b600052604160045260246000fd5b80511561019b5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101561019b5760400190565b80516002101561019b5760600190565b80516003101561019b576080019056fea2646970667358221220ec0272ca492585031a307d3e0a476a18b5edb5ee9bb7cc7a399f11548eb8b32a64736f6c63430008140033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

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.