Skip to content

Commit

Permalink
Merge pull request #13 from echonft/feature/blast
Browse files Browse the repository at this point in the history
Added blast specific data on contract
  • Loading branch information
GabrielCartier authored Jul 15, 2024
2 parents be33a37 + 9f076f3 commit fb97001
Show file tree
Hide file tree
Showing 17 changed files with 2,266 additions and 1,554 deletions.
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ MAINNET_RPC_URL=
SEPOLIA_RPC_URL=
PRIVATE_KEY=
MAINNET_PRIVATE_KEY=
ETHERSCAN_KEY=
ETHERSCAN_API_KEY=
11 changes: 11 additions & 0 deletions foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,14 @@ fuzz_runs = 1000
verbosity = 4

gas_reports = ["Echo"]

# Config
[rpc_endpoints]
sepolia = "${SEPOLIA_RPC_URL}"
blast_sepolia = "${BLAST_SEPOLIA_RPC_URL}"
blast = "${BLAST_RPC_URL}"

[etherscan]
sepolia = { key = "${ETHERSCAN_API_KEY}" }
blast_sepolia = { key = "${BLASTSCAN_API_KEY}", url="https://api-sepolia.blastscan.io/api" }
blast = { key = "${BLASTSCAN_API_KEY}", url="https://api.blastscan.io/api" }
55 changes: 55 additions & 0 deletions lib/blast/IBlast.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

enum YieldMode {
AUTOMATIC,
VOID,
CLAIMABLE
}

enum GasMode {
VOID,
CLAIMABLE
}

interface IBlast {
// configure
function configureContract(address contractAddress, YieldMode _yield, GasMode gasMode, address governor) external;
function configure(YieldMode _yield, GasMode gasMode, address governor) external;

// base configuration options
function configureClaimableYield() external;
function configureClaimableYieldOnBehalf(address contractAddress) external;
function configureAutomaticYield() external;
function configureAutomaticYieldOnBehalf(address contractAddress) external;
function configureVoidYield() external;
function configureVoidYieldOnBehalf(address contractAddress) external;
function configureClaimableGas() external;
function configureClaimableGasOnBehalf(address contractAddress) external;
function configureVoidGas() external;
function configureVoidGasOnBehalf(address contractAddress) external;
function configureGovernor(address _governor) external;
function configureGovernorOnBehalf(address _newGovernor, address contractAddress) external;

// claim yield
function claimYield(address contractAddress, address recipientOfYield, uint256 amount) external returns (uint256);
function claimAllYield(address contractAddress, address recipientOfYield) external returns (uint256);

// claim gas
function claimAllGas(address contractAddress, address recipientOfGas) external returns (uint256);
function claimGasAtMinClaimRate(address contractAddress, address recipientOfGas, uint256 minClaimRateBips)
external
returns (uint256);
function claimMaxGas(address contractAddress, address recipientOfGas) external returns (uint256);
function claimGas(address contractAddress, address recipientOfGas, uint256 gasToClaim, uint256 gasSecondsToConsume)
external
returns (uint256);

// read functions
function readClaimableYield(address contractAddress) external view returns (uint256);
function readYieldConfiguration(address contractAddress) external view returns (uint8);
function readGasParams(address contractAddress)
external
view
returns (uint256 etherSeconds, uint256 etherBalance, uint256 lastUpdated, GasMode);
}
7 changes: 7 additions & 0 deletions lib/blast/IBlastPoints.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

interface IBlastPoints {
function configurePointsOperator(address operator) external;
function configurePointsOperatorOnBehalf(address contractAddress, address operator) external;
}
Loading

0 comments on commit fb97001

Please sign in to comment.