Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 2 additions & 40 deletions .github/workflows/cron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,48 +62,10 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: "3.10"
python-version: "3.9"

- name: Install python dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt && brownie pm install OpenZeppelin/[email protected]

- name: Patch py-solc-x to use GitHub releases
run: |
python3 << 'EOF'
import os
import site

# Find py-solc-x install location
site_packages = site.getsitepackages()[0]
install_file = os.path.join(site_packages, "solcx", "install.py")

# Read the file
with open(install_file, 'r') as f:
content = f.read()

# Replace the blocked URL with GitHub releases
# Old py-solc-x 1.1.1 uses solc-bin.ethereum.org
content = content.replace(
'SOLC_BASE_URL = "https://solc-bin.ethereum.org/"',
'SOLC_BASE_URL = "https://binaries.soliditylang.org/"'
)
content = content.replace(
'"https://solc-bin.ethereum.org/"',
'"https://binaries.soliditylang.org/"'
)
content = content.replace(
'solc-bin.ethereum.org',
'binaries.soliditylang.org'
)

# Write back
with open(install_file, 'w') as f:
f.write(content)

print("✓ Patched py-solc-x to use binaries.soliditylang.org")
EOF
run: pip install -r requirements.txt && brownie pm install OpenZeppelin/[email protected]

- name: Withdraw Fees
run: echo $REWARDS_CRON && brownie networks import network-config.yaml true && brownie run scripts/contractInteraction/rewards_cron.py --network=rsk-mainnet
Expand Down
42 changes: 2 additions & 40 deletions .github/workflows/cron_amm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,48 +62,10 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: "3.10"
python-version: "3.9"

- name: Install python dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt && brownie pm install OpenZeppelin/[email protected]

- name: Patch py-solc-x to use GitHub releases
run: |
python3 << 'EOF'
import os
import site

# Find py-solc-x install location
site_packages = site.getsitepackages()[0]
install_file = os.path.join(site_packages, "solcx", "install.py")

# Read the file
with open(install_file, 'r') as f:
content = f.read()

# Replace the blocked URL with GitHub releases
# Old py-solc-x 1.1.1 uses solc-bin.ethereum.org
content = content.replace(
'SOLC_BASE_URL = "https://solc-bin.ethereum.org/"',
'SOLC_BASE_URL = "https://binaries.soliditylang.org/"'
)
content = content.replace(
'"https://solc-bin.ethereum.org/"',
'"https://binaries.soliditylang.org/"'
)
content = content.replace(
'solc-bin.ethereum.org',
'binaries.soliditylang.org'
)

# Write back
with open(install_file, 'w') as f:
f.write(content)

print("✓ Patched py-solc-x to use binaries.soliditylang.org")
EOF
run: pip install -r requirements.txt && brownie pm install OpenZeppelin/[email protected]

- name: Withdraw Fees
run: echo $REWARDS_CRON && brownie networks import network-config.yaml true && brownie run scripts/contractInteraction/rewards_cron_amm.py --network=rsk-mainnet
Expand Down
42 changes: 2 additions & 40 deletions .github/workflows/extendstakingcron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,48 +45,10 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: "3.10"
python-version: "3.9"

- name: Install python dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt && brownie pm install OpenZeppelin/[email protected]

- name: Patch py-solc-x to use GitHub releases
run: |
python3 << 'EOF'
import os
import site

# Find py-solc-x install location
site_packages = site.getsitepackages()[0]
install_file = os.path.join(site_packages, "solcx", "install.py")

# Read the file
with open(install_file, 'r') as f:
content = f.read()

# Replace the blocked URL with GitHub releases
# Old py-solc-x 1.1.1 uses solc-bin.ethereum.org
content = content.replace(
'SOLC_BASE_URL = "https://solc-bin.ethereum.org/"',
'SOLC_BASE_URL = "https://binaries.soliditylang.org/"'
)
content = content.replace(
'"https://solc-bin.ethereum.org/"',
'"https://binaries.soliditylang.org/"'
)
content = content.replace(
'solc-bin.ethereum.org',
'binaries.soliditylang.org'
)

# Write back
with open(install_file, 'w') as f:
f.write(content)

print("✓ Patched py-solc-x to use binaries.soliditylang.org")
EOF
run: pip install -r requirements.txt && brownie pm install OpenZeppelin/[email protected]

- name: Extend Staking
run: echo $REWARDS_CRON && brownie networks import network-config.yaml true && brownie run scripts/fouryearvesting/extendStakingCron.py --network=rsk-mainnet
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ jobs:

- name: Installing Packages
run: npm ci --parallel=1
- name: Clear hardhat compiler cache
run: rm -rf ~/.cache/hardhat-nodejs/compilers-v2 || true
- name: Fix solc permissions
run: find ~/.cache/hardhat-nodejs/compilers-v2 -type f -name 'solc-linux-*' -exec chmod +x {} + || true
- name: Checking Formatting
run: npm run lint && npm run prettier && npm run prettier-check
- name: Running Test
Expand Down
42 changes: 2 additions & 40 deletions .github/workflows/setblockcron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,48 +63,10 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: "3.10"
python-version: "3.9"

- name: Install python dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt && brownie pm install OpenZeppelin/[email protected]

- name: Patch py-solc-x to use GitHub releases
run: |
python3 << 'EOF'
import os
import site

# Find py-solc-x install location
site_packages = site.getsitepackages()[0]
install_file = os.path.join(site_packages, "solcx", "install.py")

# Read the file
with open(install_file, 'r') as f:
content = f.read()

# Replace the blocked URL with GitHub releases
# Old py-solc-x 1.1.1 uses solc-bin.ethereum.org
content = content.replace(
'SOLC_BASE_URL = "https://solc-bin.ethereum.org/"',
'SOLC_BASE_URL = "https://binaries.soliditylang.org/"'
)
content = content.replace(
'"https://solc-bin.ethereum.org/"',
'"https://binaries.soliditylang.org/"'
)
content = content.replace(
'solc-bin.ethereum.org',
'binaries.soliditylang.org'
)

# Write back
with open(install_file, 'w') as f:
f.write(content)

print("✓ Patched py-solc-x to use binaries.soliditylang.org")
EOF
run: pip install -r requirements.txt && brownie pm install OpenZeppelin/[email protected]

- name: Set Block
run: echo $REWARDS_CRON && brownie networks import network-config.yaml true && brownie run scripts/contractInteraction/setBlock_cron.py --network=rsk-mainnet
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,5 @@ typechain/
venv/
!/external/artifacts/
cache_hardhat/
secrets/
secrets/
tenderly.yaml
92 changes: 92 additions & 0 deletions contracts/feeds/PriceFeedV1PoolOracleBOS.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
pragma solidity >=0.5.0 <0.6.0;

import "./PriceFeeds.sol";
import "./IV1PoolOracle.sol";
import "../openzeppelin/Ownable.sol";
import "../openzeppelin/Address.sol";
import "../openzeppelin/SafeMath.sol";
import "./IPriceFeeds.sol";

/**
* @notice The BOS-specific Price Feed V1 Pool Oracle contract.
* Clone of PriceFeedV1PoolOracle with a distinct contract name for BOS deployment.
*/
contract PriceFeedV1PoolOracleBOS is IPriceFeedsExt, Ownable {
using SafeMath for uint256;

address public v1PoolOracleAddress;
address public wRBTCAddress;
address public docAddress;
address public baseCurrency;

event SetV1PoolOracleAddress(address indexed v1PoolOracleAddress, address changerAddress);
event SetWRBTCAddress(address indexed wRBTCAddress, address changerAddress);
event SetDOCAddress(address indexed docAddress, address changerAddress);
event SetBaseCurrency(address indexed baseCurrency, address changerAddress);

constructor(
address _v1PoolOracleAddress,
address _wRBTCAddress,
address _docAddress,
address _baseCurrency
) public {
setRBTCAddress(_wRBTCAddress);
setDOCAddress(_docAddress);
setV1PoolOracleAddress(_v1PoolOracleAddress);
setBaseCurrency(_baseCurrency);
}

function latestAnswer() external view returns (uint256) {
IV1PoolOracle _v1PoolOracle = IV1PoolOracle(v1PoolOracleAddress);

uint256 _price = _v1PoolOracle.latestPrice(baseCurrency);
uint256 priceInUSD = _convertAnswerToUsd(_price);
require(priceInUSD != 0, "price error");

return priceInUSD;
}

function _convertAnswerToUsd(uint256 _valueInBTC) private view returns (uint256) {
address _priceFeeds = msg.sender;

uint256 precision = IPriceFeeds(_priceFeeds).queryPrecision(wRBTCAddress, docAddress);
uint256 valueInUSD = IPriceFeeds(_priceFeeds).queryReturn(
wRBTCAddress,
docAddress,
_valueInBTC
);

return valueInUSD.mul(precision).div(1e18);
}

function setV1PoolOracleAddress(address _v1PoolOracleAddress) public onlyOwner {
require(Address.isContract(_v1PoolOracleAddress), "_v1PoolOracleAddress not a contract");
IV1PoolOracle _v1PoolOracle = IV1PoolOracle(_v1PoolOracleAddress);
address liquidityPool = _v1PoolOracle.liquidityPool();
require(
ILiquidityPoolV1Converter(liquidityPool).reserveTokens(0) == wRBTCAddress ||
ILiquidityPoolV1Converter(liquidityPool).reserveTokens(1) == wRBTCAddress,
"one of the two reserves needs to be wrbtc"
);
v1PoolOracleAddress = _v1PoolOracleAddress;
emit SetV1PoolOracleAddress(v1PoolOracleAddress, msg.sender);
}

function setRBTCAddress(address _wRBTCAddress) public onlyOwner {
require(_wRBTCAddress != address(0), "wRBTC address cannot be zero address");
wRBTCAddress = _wRBTCAddress;
emit SetWRBTCAddress(wRBTCAddress, msg.sender);
}

function setDOCAddress(address _docAddress) public onlyOwner {
require(_docAddress != address(0), "DOC address cannot be zero address");
docAddress = _docAddress;
emit SetDOCAddress(_docAddress, msg.sender);
}

function setBaseCurrency(address _baseCurrency) public onlyOwner {
require(_baseCurrency != address(0), "Base currency address cannot be zero address");
baseCurrency = _baseCurrency;
emit SetBaseCurrency(_baseCurrency, msg.sender);
}
}
Loading
Loading