Skip to content

Commit

Permalink
Add deploy scripts (#11)
Browse files Browse the repository at this point in the history
* Add deploy scripts

* Fix script used in DeployConstantProductTest

* Fix script used in DeployAllContractsTest
  • Loading branch information
fedgiac authored Feb 7, 2024
1 parent 179be24 commit efc1171
Show file tree
Hide file tree
Showing 9 changed files with 117 additions and 24 deletions.
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,14 @@ $ forge test
```shell
$ forge fmt
```

### Deploy

All contracts in this repo can be deployed and verified on the block explorer as follows:

```sh
export ETHERSCAN_API_KEY='your API key here'
PK='the private key of the deployer'
ETH_RPC_URL='https://rpc.node.url.here.example.com'
forge script 'script/DeployAllContracts.s.sol:DeployAllContracts' -vvvv --rpc-url "$ETH_RPC_URL" --private-key "$PK" --verify --broadcast
```
12 changes: 0 additions & 12 deletions script/Counter.s.sol

This file was deleted.

12 changes: 0 additions & 12 deletions script/Deploy.sol

This file was deleted.

18 changes: 18 additions & 0 deletions script/DeployAllContracts.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0 <0.9.0;

import {Script} from "forge-std/Script.sol";

import {DeployUniswapV2PriceOracle, UniswapV2PriceOracle} from "./single-deployment/UniswapV2PriceOracle.s.sol";
import {DeployConstantProduct, ConstantProduct} from "./single-deployment/ConstantProduct.s.sol";

contract DeployAllContracts is DeployConstantProduct, DeployUniswapV2PriceOracle {
function run() public override(DeployConstantProduct, DeployUniswapV2PriceOracle) {
deployAll();
}

function deployAll() public returns (ConstantProduct constantProduct, UniswapV2PriceOracle uniswapV2PriceOracle) {
constantProduct = deployConstantProduct();
uniswapV2PriceOracle = deployUniswapV2PriceOracle();
}
}
17 changes: 17 additions & 0 deletions script/single-deployment/ConstantProduct.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0 <0.9.0;

import {Script} from "forge-std/Script.sol";

import {ConstantProduct} from "src/ConstantProduct.sol";

contract DeployConstantProduct is Script {
function run() public virtual {
deployConstantProduct();
}

function deployConstantProduct() internal returns (ConstantProduct) {
vm.broadcast();
return new ConstantProduct();
}
}
17 changes: 17 additions & 0 deletions script/single-deployment/UniswapV2PriceOracle.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0 <0.9.0;

import {Script} from "forge-std/Script.sol";

import {UniswapV2PriceOracle} from "src/oracles/UniswapV2PriceOracle.sol";

contract DeployUniswapV2PriceOracle is Script {
function run() public virtual {
deployUniswapV2PriceOracle();
}

function deployUniswapV2PriceOracle() internal returns (UniswapV2PriceOracle) {
vm.broadcast();
return new UniswapV2PriceOracle();
}
}
18 changes: 18 additions & 0 deletions test/script/DeployAllContracts.t.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0 <0.9.0;

import {Test} from "forge-std/Test.sol";

import {DeployAllContracts} from "script/DeployAllContracts.s.sol";

contract DeployAllContractsTest is Test {
DeployAllContracts script;

function setUp() public {
script = new DeployAllContracts();
}

function testDoesNotRevert() public {
script.run();
}
}
18 changes: 18 additions & 0 deletions test/script/single-deployment/DeployConstantProduct.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0 <0.9.0;

import {Test} from "forge-std/Test.sol";

import {DeployConstantProduct} from "script/single-deployment/ConstantProduct.s.sol";

contract DeployConstantProductTest is Test {
DeployConstantProduct script;

function setUp() public {
script = new DeployConstantProduct();
}

function testDoesNotRevert() public {
script.run();
}
}
18 changes: 18 additions & 0 deletions test/script/single-deployment/DeployUniswapV2PriceOracle.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0 <0.9.0;

import {Test} from "forge-std/Test.sol";

import {DeployUniswapV2PriceOracle} from "script/single-deployment/UniswapV2PriceOracle.s.sol";

contract DeployUniswapV2PriceOracleTest is Test {
DeployUniswapV2PriceOracle script;

function setUp() public {
script = new DeployUniswapV2PriceOracle();
}

function testDoesNotRevert() public {
script.run();
}
}

0 comments on commit efc1171

Please sign in to comment.