Skip to content
Merged
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Oracle and Relayer based Message Protocol.
|------------|--------------------------------------------|
| ORMP | 0x00000000001523057a05d6293C1e5171eE33eE0A |
| Oracle | 0x00000000046bc530804d66B6b64f7aF69B4E4E81 |
| OracleV2 | 0x00000000023D0348fD049690E97b2E76DB051Cc9 |
| Relayer | 0x0000000000808fE9bDCc1d180EfbF5C53552a6b1 |
| MsgDAO | 0x000000000879926D12aF396788C0785B7e581e53 |

Expand Down
10 changes: 8 additions & 2 deletions bin/dao.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ c3=$PWD/script/input/c3.json

deployer=$(jq -r ".DEPLOYER" $c3)
dao=$(jq -r ".MSGDAO" $c3)
subapi_dao=$(jq -r ".SUBAPIDAO_ADDR" $c3)
ormp=$(jq -r ".ORMP_ADDR" $c3)
oracle=$(jq -r ".ORACLE_ADDR" $c3)
oracle=$(jq -r ".ORACLEV2_ADDR" $c3)
relayer=$(jq -r ".RELAYER_ADDR" $c3)

set -x

# seth send -F $deployer $ormp "changeSetter(address)" $dao --chain darwinia
# seth send -F $deployer $ormp "changeSetter(address)" $dao --chain arbitrum
# seth send -F $deployer $ormp "changeSetter(address)" $dao --chain ethereum
Expand All @@ -20,4 +23,7 @@ relayer=$(jq -r ".RELAYER_ADDR" $c3)

# seth send -F $deployer $relayer "changeOwner(address)" $dao --chain darwinia
# seth send -F $deployer $relayer "changeOwner(address)" $dao --chain arbitrum
seth send -F $deployer $relayer "changeOwner(address)" $dao --chain ethereum
# seth send -F $deployer $relayer "changeOwner(address)" $dao --chain ethereum

seth send -F $deployer $oracle "changeOwner(address)" $subapi_dao --chain crab
seth send -F $deployer $oracle "changeOwner(address)" $subapi_dao --chain sepolia
9 changes: 4 additions & 5 deletions bin/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@
set -eo pipefail

# forge script script/deploy/Deploy.s.sol:Deploy --chain-id 1 --legacy --broadcast --verify --slow
forge script script/deploy/Deploy.s.sol:Deploy --chain-id 46 --broadcast --verify --slow
forge script script/deploy/Deploy.s.sol:Deploy --chain-id 42161 --broadcast --verify --slow --legacy
# forge script script/deploy/Deploy.s.sol:Deploy --chain-id 46 --broadcast --verify --slow
# forge script script/deploy/Deploy.s.sol:Deploy --chain-id 42161 --broadcast --verify --slow --legacy

# forge script script/deploy/Deploy.s.sol:Deploy --chain-id 44 --broadcast --verify
forge script script/deploy/Deploy.s.sol:Deploy --chain-id 44 --broadcast --verify --skip-simulation --slow
# forge script script/deploy/Deploy.s.sol:Deploy --chain-id 421614 --broadcast --verify
# forge script script/deploy/Deploy.s.sol:Deploy --chain-id 11155111 --broadcast --verify

forge script script/deploy/Deploy.s.sol:Deploy --chain-id 11155111 --broadcast --verify
2 changes: 1 addition & 1 deletion bin/fee.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@ set -x
forge script script/fee/Fee.s.sol:Fee --sig "run(uint256)" 11155111 --chain-id 44 --broadcast
# forge script script/fee/Fee.s.sol:Fee --sig "run(uint256)" 421614 --chain-id 44 --broadcast
# forge script script/fee/Fee.s.sol:Fee --sig "run(uint256)" 421614 --chain-id 11155111 --broadcast
# forge script script/fee/Fee.s.sol:Fee --sig "run(uint256)" 44 --chain-id 11155111 --broadcast
forge script script/fee/Fee.s.sol:Fee --sig "run(uint256)" 44 --chain-id 11155111 --broadcast
# forge script script/fee/Fee.s.sol:Fee --sig "run(uint256)" 44 --chain-id 421614 --broadcast --skip-simulation --legacy
# forge script script/fee/Fee.s.sol:Fee --sig "run(uint256)" 11155111 --chain-id 421614 --broadcast --skip-simulation --legacy
5 changes: 3 additions & 2 deletions bin/verify.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ c3=$PWD/script/input/c3.json

deployer=$(jq -r ".DEPLOYER" $c3)
ormp=$(jq -r ".ORMP_ADDR" $c3)
oracle=$(jq -r ".ORACLE_ADDR" $c3)
oracle=$(jq -r ".ORACLEV2_ADDR" $c3)
relayer=$(jq -r ".RELAYER_ADDR" $c3)
subapi=$(jq -r ".SUBAPI_ADDR" $c3)

verify() {
local addr; addr=$1
Expand All @@ -28,6 +27,8 @@ verify() {
$path > script/output/$chain_id/$name.v.json)
}

verify $oracle 44 $(cast abi-encode "constructor(address,address)" $deployer $ormp) src/eco/OracleV2.sol:OracleV2

# verify $ormp 42161 $(cast abi-encode "constructor(address)" $deployer) src/ORMP.sol:ORMP
# verify $ormp 46 $(cast abi-encode "constructor(address)" $deployer) src/ORMP.sol:ORMP
# verify $oracle 42161 $(cast abi-encode "constructor(address,address,address)" $deployer $ormp $subapi) src/eco/Oracle.sol:Oracle
Expand Down
20 changes: 9 additions & 11 deletions script/deploy/Deploy.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {ScriptTools} from "create3-deploy/script/ScriptTools.sol";

import {ORMP} from "../../src/ORMP.sol";
import {Relayer} from "../../src/eco/Relayer.sol";
import {Oracle} from "../../src/eco/Oracle.sol";
import {OracleV2} from "../../src/eco/OracleV2.sol";

interface III {
function PROTOCOL() external view returns (address);
Expand All @@ -35,7 +35,6 @@ contract Deploy is Common {
bytes32 ORACLE_SALT;
address RELAYER_ADDR;
bytes32 RELAYER_SALT;
address SUBAPI_ADDR;

string c3;
string config;
Expand All @@ -62,11 +61,10 @@ contract Deploy is Common {

ORMP_ADDR = c3.readAddress(".ORMP_ADDR");
ORMP_SALT = c3.readBytes32(".ORMP_SALT");
ORACLE_ADDR = c3.readAddress(".ORACLE_ADDR");
ORACLE_SALT = c3.readBytes32(".ORACLE_SALT");
ORACLE_ADDR = c3.readAddress(".ORACLEV2_ADDR");
ORACLE_SALT = c3.readBytes32(".ORACLEV2_SALT");
RELAYER_ADDR = c3.readAddress(".RELAYER_ADDR");
RELAYER_SALT = c3.readBytes32(".RELAYER_SALT");
SUBAPI_ADDR = c3.readAddress(".SUBAPI_ADDR");

deployer = config.readAddress(".DEPLOYER");
dao = config.readAddress(".DAO");
Expand All @@ -78,9 +76,9 @@ contract Deploy is Common {
function run() public {
require(deployer == msg.sender, "!deployer");

deployProtocol();
// deployProtocol();
deployOralce();
deployRelayer();
// deployRelayer();

setConfig();

Expand All @@ -103,8 +101,8 @@ contract Deploy is Common {

/// @notice Deploy the Oracle
function deployOralce() public broadcast returns (address) {
bytes memory byteCode = type(Oracle).creationCode;
bytes memory initCode = bytes.concat(byteCode, abi.encode(deployer, ORMP_ADDR, SUBAPI_ADDR));
bytes memory byteCode = type(OracleV2).creationCode;
bytes memory initCode = bytes.concat(byteCode, abi.encode(deployer, ORMP_ADDR));
address oracle = _deploy3(ORACLE_SALT, initCode);
require(oracle == ORACLE_ADDR, "!oracle");

Expand Down Expand Up @@ -136,8 +134,8 @@ contract Deploy is Common {

III(ORACLE_ADDR).setApproved(oracleOperator, true);
require(III(ORACLE_ADDR).isApproved(oracleOperator), "!o-operator");
III(RELAYER_ADDR).setApproved(relayerOperator, true);
require(III(RELAYER_ADDR).isApproved(relayerOperator), "!r-operator");
// III(RELAYER_ADDR).setApproved(relayerOperator, true);
// require(III(RELAYER_ADDR).isApproved(relayerOperator), "!r-operator");

// III(ORMP_ADDR).changeSetter(dao);
// require(III(ORMP_ADDR).setter() == dao, "!dao");
Expand Down
2 changes: 1 addition & 1 deletion script/fee/Fee.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ contract Fee is Common {
function run(uint256 chainId) public {
require(dao == msg.sender, "!dao");
setOracleFee(chainId);
setRelayerFee(chainId);
// setRelayerFee(chainId);
}

function setOracleFee(uint256 chainId) public broadcast {
Expand Down
4 changes: 2 additions & 2 deletions script/input/44/fee.c.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
"fee": 75000000000000000000
},
"421614": {
"fee": 5000000000000000000
"fee": 1000000000000000000
},
"11155111": {
"fee": 5000000000000000000
"fee": 1000000000000000000
}
},
"RELAYER": {
Expand Down
8 changes: 4 additions & 4 deletions script/input/c3.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"DEPLOYER": "0x0f14341A7f464320319025540E8Fe48Ad0fe5aec",
"MSGDAO": "0x000000000879926D12aF396788C0785B7e581e53",
"SUBAPIDAO_ADDR": "0x000000000a0D8ac9cc6CbD817fA77090322FF29d",
"ORMP_ADDR": "0x00000000001523057a05d6293C1e5171eE33eE0A",
"ORMP_SALT": "0x4d629bbdb40d29206f12a51aa81faf14553b218f96845742a89e02e55ecfcef6",
"ORACLE_ADDR": "0x00000000046bc530804d66B6b64f7aF69B4E4E81",
"ORACLE_SALT": "0x2f280285b23be5539441999307347b699ec014dc1acf3db714d3d133b1a3cfe5",
"ORACLEV2_ADDR": "0x0000000000B3A9Ae50c8e29df878FB3aDCcB85c0",
"ORACLEV2_SALT": "0x416f3523b7c6125ff83051476e7ceda2919a440a7036b07ad37b9b5cf84277d7",
"RELAYER_ADDR": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1",
"RELAYER_SALT": "0x9d38bcb32422a45bc9c08605d4457bcd3dadddfee1573a352ace5f1defa45621",
"SUBAPI_ADDR": "0x00000000096c285629Fe3EAb3dd042c27b9dcBa6"
"RELAYER_SALT": "0x9d38bcb32422a45bc9c08605d4457bcd3dadddfee1573a352ace5f1defa45621"
}
2 changes: 1 addition & 1 deletion script/output/11155111/deploy.a-latest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"DAO": "0x0f14341A7f464320319025540E8Fe48Ad0fe5aec",
"ORACLE": "0x00000000046bc530804d66B6b64f7aF69B4E4E81",
"ORACLE": "0x0000000000B3A9Ae50c8e29df878FB3aDCcB85c0",
"ORMP": "0x00000000001523057a05d6293C1e5171eE33eE0A",
"RELAYER": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1"
}
1 change: 1 addition & 0 deletions script/output/44/OracleV2.v.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion script/output/44/deploy.a-latest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"DAO": "0x0f14341A7f464320319025540E8Fe48Ad0fe5aec",
"ORACLE": "0x00000000046bc530804d66B6b64f7aF69B4E4E81",
"ORACLE": "0x0000000000B3A9Ae50c8e29df878FB3aDCcB85c0",
"ORMP": "0x00000000001523057a05d6293C1e5171eE33eE0A",
"RELAYER": "0x0000000000808fE9bDCc1d180EfbF5C53552a6b1"
}
20 changes: 18 additions & 2 deletions src/eco/OracleV2.sol
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,19 @@ contract OracleV2 is Verifier {
mapping(uint256 => uint256) public feeOf;
// chainId => blockNumber => messageRoot
mapping(uint256 => mapping(uint256 => bytes32)) rootOf;
// operator => isApproved
mapping(address => bool) public approvedOf;

modifier onlyOwner() {
require(msg.sender == owner, "!owner");
_;
}

modifier onlyApproved() {
require(isApproved(msg.sender), "!approve");
_;
}

constructor(address dao, address ormp) {
PROTOCOL = ormp;
owner = dao;
Expand All @@ -51,7 +58,7 @@ contract OracleV2 is Verifier {
emit ImporedMessageRoot(chainId, blockNumber, messageRoot);
}

function withdraw(address to, uint256 amount) external onlyOwner {
function withdraw(address to, uint256 amount) external onlyApproved {
(bool success,) = to.call{value: amount}("");
require(success, "!withdraw");
}
Expand All @@ -60,7 +67,16 @@ contract OracleV2 is Verifier {
owner = owner_;
}

function setFee(uint256 chainId, uint256 fee_) external onlyOwner {
function isApproved(address operator) public view returns (bool) {
return approvedOf[operator];
}

function setApproved(address operator, bool approve) external onlyOwner {
approvedOf[operator] = approve;
emit SetApproved(operator, approve);
}

function setFee(uint256 chainId, uint256 fee_) external onlyApproved {
feeOf[chainId] = fee_;
emit SetFee(chainId, fee_);
}
Expand Down