Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
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
Contract Source Code (Solidity Standard Json-Input format)
// 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);
}
}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;
}pragma solidity ^0.8.20;
interface IProposal {
function execute() external;
}{
"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
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080806040523461001657610217908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c63614619541461002a57600080fd5b8190346101595781600319360112610159576100458161015c565b600481526080366020830137816100c36040516100618161015c565b60048152608036602083013760016100788561018e565b5260966100848261018e565b526089610090856101b1565b5261035261009d826101b1565b5261a4b16100bd61050495866100b2826101c1565b52856100bd856101c1565b526101d1565b527366a3188a218c4fa5a151fe6cdefe7ffe59606304803b1561015557608483926040519485938492630bd5e4a160e41b84526004840152608960248401526103e86044840152600160648401525af1801561014a57610121575080f35b67ffffffffffffffff81116101365760405280f35b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5050fd5b50fd5b60a0810190811067ffffffffffffffff82111761017857604052565b634e487b7160e01b600052604160045260246000fd5b80511561019b5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101561019b5760400190565b80516002101561019b5760600190565b80516003101561019b576080019056fea2646970667358221220ec0272ca492585031a307d3e0a476a18b5edb5ee9bb7cc7a399f11548eb8b32a64736f6c63430008140033
Deployed Bytecode
0x608080604052600436101561001357600080fd5b600090813560e01c63614619541461002a57600080fd5b8190346101595781600319360112610159576100458161015c565b600481526080366020830137816100c36040516100618161015c565b60048152608036602083013760016100788561018e565b5260966100848261018e565b526089610090856101b1565b5261035261009d826101b1565b5261a4b16100bd61050495866100b2826101c1565b52856100bd856101c1565b526101d1565b527366a3188a218c4fa5a151fe6cdefe7ffe59606304803b1561015557608483926040519485938492630bd5e4a160e41b84526004840152608960248401526103e86044840152600160648401525af1801561014a57610121575080f35b67ffffffffffffffff81116101365760405280f35b634e487b7160e01b82526041600452602482fd5b6040513d84823e3d90fd5b5050fd5b50fd5b60a0810190811067ffffffffffffffff82111761017857604052565b634e487b7160e01b600052604160045260246000fd5b80511561019b5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101561019b5760400190565b80516002101561019b5760600190565b80516003101561019b576080019056fea2646970667358221220ec0272ca492585031a307d3e0a476a18b5edb5ee9bb7cc7a399f11548eb8b32a64736f6c63430008140033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.