From 3a63ee254a6496d6c0250b443ca9a8ae1ae0ba72 Mon Sep 17 00:00:00 2001 From: 0xAustrian Date: Wed, 4 Sep 2024 11:16:32 -0300 Subject: [PATCH] create deploy script for strategies --- script/DeployBase.sol | 2 +- ...DeployDonationVotingMerkleDistribution.sol | 20 +++++++++++++++++++ script/DeployDonationVotingOffchain.sol | 19 ++++++++++++++++++ script/DeployDonationVotingOnchain.sol | 17 ++++++++++++++++ script/DeployEasyRPGF.sol | 17 ++++++++++++++++ script/DeployQVImpactStream.sol | 17 ++++++++++++++++ script/DeployQVSimple.sol | 17 ++++++++++++++++ script/DeployRFPSimple.sol | 17 ++++++++++++++++ 8 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 script/DeployDonationVotingMerkleDistribution.sol create mode 100644 script/DeployDonationVotingOffchain.sol create mode 100644 script/DeployDonationVotingOnchain.sol create mode 100644 script/DeployEasyRPGF.sol create mode 100644 script/DeployQVImpactStream.sol create mode 100644 script/DeployQVSimple.sol create mode 100644 script/DeployRFPSimple.sol diff --git a/script/DeployBase.sol b/script/DeployBase.sol index 9909af399..0a6645416 100644 --- a/script/DeployBase.sol +++ b/script/DeployBase.sol @@ -13,7 +13,7 @@ abstract contract DeployBase is Script { vm.startBroadcast(); address _contract = _deploy(block.chainid, _params); vm.stopBroadcast(); - + console.log("Deployed contract at address: %s", _contract); } diff --git a/script/DeployDonationVotingMerkleDistribution.sol b/script/DeployDonationVotingMerkleDistribution.sol new file mode 100644 index 000000000..6ff4eb960 --- /dev/null +++ b/script/DeployDonationVotingMerkleDistribution.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {DeployBase} from "script/DeployBase.sol"; +import {DonationVotingMerkleDistribution} from + "contracts/strategies/examples/donation-voting/DonationVotingMerkleDistribution.sol"; + +contract DeployDonationVotingMerkleDistribution is DeployBase { + function setUp() public { + // Mainnet + address _allo = 0x0000000000000000000000000000000000000000; + bool _directTransfer = false; + _deploymentParams[1] = abi.encode(_allo, _directTransfer); + } + + function _deploy(uint256, bytes memory _data) internal override returns (address _contract) { + (address _allo, bool _directTransfer) = abi.decode(_data, (address, bool)); + return address(new DonationVotingMerkleDistribution(_allo, _directTransfer)); + } +} diff --git a/script/DeployDonationVotingOffchain.sol b/script/DeployDonationVotingOffchain.sol new file mode 100644 index 000000000..2a06f4bdc --- /dev/null +++ b/script/DeployDonationVotingOffchain.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {DeployBase} from "script/DeployBase.sol"; +import {DonationVotingOffchain} from "contracts/strategies/examples/donation-voting/DonationVotingOffchain.sol"; + +contract DeployDonationVotingOffchain is DeployBase { + function setUp() public { + // Mainnet + address _allo = 0x0000000000000000000000000000000000000000; + bool _directTransfer = false; + _deploymentParams[1] = abi.encode(_allo, _directTransfer); + } + + function _deploy(uint256, bytes memory _data) internal override returns (address _contract) { + (address _allo, bool _directTransfer) = abi.decode(_data, (address, bool)); + return address(new DonationVotingOffchain(_allo, _directTransfer)); + } +} diff --git a/script/DeployDonationVotingOnchain.sol b/script/DeployDonationVotingOnchain.sol new file mode 100644 index 000000000..1ae92d5c8 --- /dev/null +++ b/script/DeployDonationVotingOnchain.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {DeployBase} from "script/DeployBase.sol"; +import {DonationVotingOnchain} from "contracts/strategies/examples/donation-voting/DonationVotingOnchain.sol"; + +contract DeployDonationVotingOnchain is DeployBase { + function setUp() public { + // Mainnet + address _allo = 0x0000000000000000000000000000000000000000; + _deploymentParams[1] = abi.encode(_allo); + } + + function _deploy(uint256, bytes memory _data) internal override returns (address _contract) { + return address(new DonationVotingOnchain(abi.decode(_data, (address)))); + } +} diff --git a/script/DeployEasyRPGF.sol b/script/DeployEasyRPGF.sol new file mode 100644 index 000000000..4b6570ac9 --- /dev/null +++ b/script/DeployEasyRPGF.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {DeployBase} from "script/DeployBase.sol"; +import {EasyRPGF} from "contracts/strategies/examples/easy-rpgf/EasyRPGF.sol"; + +contract DeployEasyRPGF is DeployBase { + function setUp() public { + // Mainnet + address _allo = 0x0000000000000000000000000000000000000000; + _deploymentParams[1] = abi.encode(_allo); + } + + function _deploy(uint256, bytes memory _data) internal override returns (address _contract) { + return address(new EasyRPGF(abi.decode(_data, (address)))); + } +} diff --git a/script/DeployQVImpactStream.sol b/script/DeployQVImpactStream.sol new file mode 100644 index 000000000..84cd07b39 --- /dev/null +++ b/script/DeployQVImpactStream.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {DeployBase} from "script/DeployBase.sol"; +import {QVImpactStream} from "contracts/strategies/examples/impact-stream/QVImpactStream.sol"; + +contract DeployQVImpactStream is DeployBase { + function setUp() public { + // Mainnet + address _allo = 0x0000000000000000000000000000000000000000; + _deploymentParams[1] = abi.encode(_allo); + } + + function _deploy(uint256, bytes memory _data) internal override returns (address _contract) { + return address(new QVImpactStream(abi.decode(_data, (address)))); + } +} diff --git a/script/DeployQVSimple.sol b/script/DeployQVSimple.sol new file mode 100644 index 000000000..50c76c1d4 --- /dev/null +++ b/script/DeployQVSimple.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {DeployBase} from "script/DeployBase.sol"; +import {QVSimple} from "contracts/strategies/examples/quadratic-voting/QVSimple.sol"; + +contract DeployQVSimple is DeployBase { + function setUp() public { + // Mainnet + address _allo = 0x0000000000000000000000000000000000000000; + _deploymentParams[1] = abi.encode(_allo); + } + + function _deploy(uint256, bytes memory _data) internal override returns (address _contract) { + return address(new QVSimple(abi.decode(_data, (address)))); + } +} diff --git a/script/DeployRFPSimple.sol b/script/DeployRFPSimple.sol new file mode 100644 index 000000000..2bb252aa8 --- /dev/null +++ b/script/DeployRFPSimple.sol @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import {DeployBase} from "script/DeployBase.sol"; +import {RFPSimple} from "contracts/strategies/examples/rfp/RFPSimple.sol"; + +contract DeployRFPSimple is DeployBase { + function setUp() public { + // Mainnet + address _allo = 0x0000000000000000000000000000000000000000; + _deploymentParams[1] = abi.encode(_allo); + } + + function _deploy(uint256, bytes memory _data) internal override returns (address _contract) { + return address(new RFPSimple(abi.decode(_data, (address)))); + } +}