build: add campaign factory in update precompiles #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Create Airstream Campaign LL" | ||
env: | ||
API_KEY_ARBISCAN: ${{ secrets.API_KEY_ARBISCAN }} | ||
API_KEY_BSCSCAN: ${{ secrets.API_KEY_BSCSCAN }} | ||
API_KEY_ETHERSCAN: ${{ secrets.API_KEY_ETHERSCAN }} | ||
API_KEY_GNOSISSCAN: ${{ secrets.API_KEY_GNOSISSCAN }} | ||
API_KEY_INFURA: ${{ secrets.API_KEY_INFURA }} | ||
API_KEY_OPTIMISTIC_ETHERSCAN: ${{ secrets.API_KEY_OPTIMISTIC_ETHERSCAN }} | ||
API_KEY_POLYGONSCAN: ${{ secrets.API_KEY_POLYGONSCAN }} | ||
API_KEY_SNOWTRACE: ${{ secrets.API_KEY_SNOWTRACE }} | ||
MNEMONIC: ${{ secrets.MNEMONIC }} | ||
RPC_URL_GOERLI: ${{ secrets.RPC_URL_GOERLI }} | ||
RPC_URL_MAINNET: ${{ secrets.RPC_URL_MAINNET }} | ||
on: | ||
workflow_dispatch: | ||
inputs: | ||
campaignFactory: | ||
description: "Address of the campaign factory contract." | ||
required: true | ||
initialAdmin: | ||
default: "0xF3663da48030b6c88535413Fd643aB0B5F3496ff" | ||
description: "Address of the initial admin of the campaign." | ||
required: false | ||
asset: | ||
description: "Address of the asset to use for airstreams." | ||
required: true | ||
merkleRoot: | ||
description: "Merkle root of the campaign." | ||
required: true | ||
cancelable: | ||
description: "Whether the campaign's airstreams are cancelable." | ||
required: true | ||
expiration: | ||
description: "Expiration of the campaign." | ||
required: true | ||
lockupLinear: | ||
default: "0x6E3678c005815Ab34986D8d66A353Cd3699103DE" | ||
description: "Address of the Lockup Linear contract." | ||
required: false | ||
cliffDuration: | ||
description: "Campaign's airstreams cliff duration." | ||
required: true | ||
totalDuration: | ||
description: "Campaign's airstreams total duration." | ||
required: true | ||
ipfsCID: | ||
description: "IPFS CID of the campaign." | ||
required: true | ||
campaignTotalAmount: | ||
description: "Total amount of the campaign." | ||
required: true | ||
recipientsCount: | ||
description: "Number of recipients in the campaign." | ||
required: true | ||
chain: | ||
default: "goerli" | ||
description: "Chain name as defined in the Foundry config." | ||
required: false | ||
jobs: | ||
create-airstream-campaign-ll: | ||
runs-on: "ubuntu-latest" | ||
steps: | ||
- name: "Check out the repo" | ||
uses: "actions/checkout@v3" | ||
with: | ||
submodules: "recursive" | ||
- name: "Install Foundry" | ||
uses: "foundry-rs/foundry-toolchain@v1" | ||
- name: "Creates a Lockup Linear airstream campaign" | ||
run: >- | ||
forge script script/CreateAirstreamCampaignLL.s.sol | ||
--broadcast | ||
--rpc-url "${{ inputs.chain }}" | ||
--sig "run(address,address,address,bytes32,bool,uint40,address,uint40,uint40,string,uint256,uint256)" | ||
-vvvv | ||
"${{ inputs.campaignFactory }}" | ||
"${{ inputs.initialAdmin }}" | ||
"${{ inputs.asset }}" | ||
"${{ inputs.merkleRoot }}" | ||
"${{ inputs.cancelable }}" | ||
"${{ inputs.expiration }}" | ||
"${{ inputs.lockupLinear }}" | ||
"${{ inputs.cliffDuration }}" | ||
"${{ inputs.totalDuration }}" | ||
"${{ inputs.ipfsCID }}" | ||
"${{ inputs.campaignTotalAmount }}" | ||
"${{ inputs.recipientsCount }}" | ||
- name: "Add workflow summary" | ||
run: | | ||
echo "## Result" >> $GITHUB_STEP_SUMMARY | ||
echo "✅ Done" >> $GITHUB_STEP_SUMMARY |