Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify.
View contract in Sourcify repository
- Contract name:
- DeployProposalsManager
- Optimization enabled
- true
- Compiler version
- v0.6.11+commit.5ef660b1
- Optimization runs
- 200
- EVM Version
- istanbul
- Verified at
- 2026-04-22T22:50:02.337752Z
DeployProposalsManager.sol
/* Update:
* Wallet added to Deploy Procedure
*/
/* Discussion:
* https://gitcoin.co/grants/154/decentralized-flexible-organization
*/
/* Description:
* DFOHub - Proposal Manager Creation.
* This specific DFOHub functionality is called during the new DFO creation procedure.
* It just initializes a new Proposal Manager, cloning the logic from the original DFOHub one.
* This is a solo-Functionality made as a workaround of the cumulative gas consumption problem.
*/
/* Update:
* Introducing DoubleProxy to let external Constracts always locate the DFO proxy
*/
pragma solidity ^0.6.0;
contract DeployProposalsManager {
function onStart(address, address) public {
}
function onStop(address) public {
}
function deployProposalsManager(address sender, uint256) public returns (address mvdFunctionalityProposalManagerAddress, address mvdWallet, address doubleProxy) {
IMVDProxy senderProxy = IMVDProxy(msg.sender);
senderProxy
.emitEvent("DFOCollateralContractsCloned(address_indexed,address,address,address)", abi.encodePacked(sender), bytes(""),
abi.encode(
mvdFunctionalityProposalManagerAddress = clone(senderProxy.getMVDFunctionalityProposalManagerAddress()),
mvdWallet = clone(senderProxy.getMVDWalletAddress()),
doubleProxy = clone(senderProxy.getDoubleProxyAddress())
)
);
}
function clone(address original) private returns(address copy) {
assembly {
mstore(0, or(0x5880730000000000000000000000000000000000000000803b80938091923cF3, mul(original, 0x1000000000000000000)))
copy := create(0, 0, 32)
switch extcodesize(copy) case 0 { invalid() }
}
}
}
interface IMVDProxy {
function getMVDFunctionalityProposalManagerAddress() external view returns(address);
function getMVDWalletAddress() external view returns(address);
function getDoubleProxyAddress() external view returns(address);
function emitEvent(string calldata eventSignature, bytes calldata firstIndex, bytes calldata secondIndex, bytes calldata data) external;
}
Compiler Settings
{"remappings":[],"optimizer":{"runs":200,"enabled":true},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"evmVersion":"istanbul","compilationTarget":{"DeployProposalsManager.sol":"DeployProposalsManager"}}
Contract ABI
[{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"address","name":"mvdFunctionalityProposalManagerAddress","internalType":"address"},{"type":"address","name":"mvdWallet","internalType":"address"},{"type":"address","name":"doubleProxy","internalType":"address"}],"name":"deployProposalsManager","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"onStart","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"onStop","inputs":[{"type":"address","name":"","internalType":"address"}]}]
Contract Creation Code
0x608060405234801561001057600080fd5b50610505806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80638d52dd8114610046578063ebf754c714610076578063fc41271d146100cd575b600080fd5b6100746004803603604081101561005c57600080fd5b506001600160a01b03813581169160200135166100f3565b005b6100a26004803603604081101561008c57600080fd5b506001600160a01b0381351690602001356100f7565b604080516001600160a01b039485168152928416602084015292168183015290519081900360600190f35b610074600480360360208110156100e357600080fd5b50356001600160a01b0316610445565b5050565b600080600080339050806001600160a01b0316630c2593888760405160200180826001600160a01b03166001600160a01b031660601b8152601401915050604051602081830303815290604052604051806020016040528060008152506101c1856001600160a01b031663c5c2fb6b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561019057600080fd5b505afa1580156101a4573d6000803e3d6000fd5b505050506040513d60208110156101ba57600080fd5b5051610448565b975087610200866001600160a01b03166331c6903d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561019057600080fd5b97508761023f876001600160a01b031663a58ea7436040518163ffffffff1660e01b815260040160206040518083038186803b15801561019057600080fd5b97508760405160200180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b0316815260200193505050506040516020818303038152906040526040518463ffffffff1660e01b815260040180806020018060200180602001806020018581038552604581526020018061048b60459139606001858103845288818151815260200191508051906020019080838360005b838110156103145781810151838201526020016102fc565b50505050905090810190601f1680156103415780820380516001836020036101000a031916815260200191505b50858103835287518152875160209182019189019080838360005b8381101561037457818101518382015260200161035c565b50505050905090810190601f1680156103a15780820380516001836020036101000a031916815260200191505b50858103825286518152865160209182019188019080838360005b838110156103d45781810151838201526020016103bc565b50505050905090810190601f1680156104015780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b15801561042557600080fd5b505af1158015610439573d6000803e3d6000fd5b50505050509250925092565b50565b60006901000000000000000000820268803b80938091923cf36258807360e81b01176000526020600080f09050803b801561048257610484565bfe5b5091905056fe44464f436f6c6c61746572616c436f6e747261637473436c6f6e656428616464726573735f696e64657865642c616464726573732c616464726573732c6164647265737329a2646970667358221220791a4d62535c87da7d92d0db7cfe50f68e72289842077bf2cf8ff58e1605809764736f6c634300060b0033
Deployed ByteCode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c80638d52dd8114610046578063ebf754c714610076578063fc41271d146100cd575b600080fd5b6100746004803603604081101561005c57600080fd5b506001600160a01b03813581169160200135166100f3565b005b6100a26004803603604081101561008c57600080fd5b506001600160a01b0381351690602001356100f7565b604080516001600160a01b039485168152928416602084015292168183015290519081900360600190f35b610074600480360360208110156100e357600080fd5b50356001600160a01b0316610445565b5050565b600080600080339050806001600160a01b0316630c2593888760405160200180826001600160a01b03166001600160a01b031660601b8152601401915050604051602081830303815290604052604051806020016040528060008152506101c1856001600160a01b031663c5c2fb6b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561019057600080fd5b505afa1580156101a4573d6000803e3d6000fd5b505050506040513d60208110156101ba57600080fd5b5051610448565b975087610200866001600160a01b03166331c6903d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561019057600080fd5b97508761023f876001600160a01b031663a58ea7436040518163ffffffff1660e01b815260040160206040518083038186803b15801561019057600080fd5b97508760405160200180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b0316815260200193505050506040516020818303038152906040526040518463ffffffff1660e01b815260040180806020018060200180602001806020018581038552604581526020018061048b60459139606001858103845288818151815260200191508051906020019080838360005b838110156103145781810151838201526020016102fc565b50505050905090810190601f1680156103415780820380516001836020036101000a031916815260200191505b50858103835287518152875160209182019189019080838360005b8381101561037457818101518382015260200161035c565b50505050905090810190601f1680156103a15780820380516001836020036101000a031916815260200191505b50858103825286518152865160209182019188019080838360005b838110156103d45781810151838201526020016103bc565b50505050905090810190601f1680156104015780820380516001836020036101000a031916815260200191505b50975050505050505050600060405180830381600087803b15801561042557600080fd5b505af1158015610439573d6000803e3d6000fd5b50505050509250925092565b50565b60006901000000000000000000820268803b80938091923cf36258807360e81b01176000526020600080f09050803b801561048257610484565bfe5b5091905056fe44464f436f6c6c61746572616c436f6e747261637473436c6f6e656428616464726573735f696e64657865642c616464726573732c616464726573732c6164647265737329a2646970667358221220791a4d62535c87da7d92d0db7cfe50f68e72289842077bf2cf8ff58e1605809764736f6c634300060b0033