Skip to content

Commit

Permalink
Merge pull request #882 from graphprotocol/mde/sam-contract
Browse files Browse the repository at this point in the history
feat: subgraph availability manager contract
  • Loading branch information
Maikol authored Aug 21, 2024
2 parents 3eb16c8 + 7fe43b8 commit 750522f
Show file tree
Hide file tree
Showing 17 changed files with 832 additions and 61 deletions.
19 changes: 19 additions & 0 deletions packages/contracts/addresses-staging.json
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,25 @@
"runtimeCodeHash": "0xd853da2001c213dd00d674114c254f18a7b5a36aabc5452fb492b9b4faf2faa9",
"txHash": "0xf868871475dc711c5c03818b16a922f740bc2fc314d24586df2255161a907422"
}
},
"SubgraphAvailabilityManager": {
"address": "0xF00AA63f1a8eE67BAD135759eC7a6542b1d56a8f",
"constructorArgs": [
"0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3",
"0x00b9d319E3D09E83c62f453B44354049Dd93a345",
"3",
"300",
[
"0xb4d396a40BB976118Bb2c9DB9C5539e65c7Fe64A",
"0x633259dB4A33DB664d4C3Fa57BEc45E5030131E2",
"0x9FC436A69E290227b99A9CE0468a1b9D73068E80",
"0xC9b90ab0B9cA63fDBfB46f66BE813ea94561614d",
"0xf3B8F917EcFA569089CF6A0988F9a9F5155cEF83"
]
],
"creationCodeHash": "0xc34842fa42ee2f21e3a435b52fa69a122a5de795448faa890fbc63d4838f45da",
"runtimeCodeHash": "0xe6c0ccd0b0514dd55e58806b1c84f09805dd6202985722579c11d7e252df6b8d",
"txHash": "0x5c1dd91c76e547fe31a5df822353b50e93eb795b915aac0ea8f8364229e9c29c"
}
},
"11155111": {
Expand Down
38 changes: 38 additions & 0 deletions packages/contracts/addresses.json
Original file line number Diff line number Diff line change
Expand Up @@ -790,6 +790,25 @@
"creationCodeHash": "0xbfc20ab9b880712ab90b5dec9d2a14c724b0bf7c20f02ede8ea76610bd41b6ef",
"runtimeCodeHash": "0xd7fdd744c7a88993435a2978876b1e4341c5e0fb4d611011bb56e8738ab2485d",
"txHash": "0xcc449d1ca1007fba76b25e987ea0d39164acf4027c10c40bd669ede1c65dc569"
},
"SubgraphAvailabilityManager": {
"address": "0x1cB555359319A94280aCf85372Ac2323AaE2f5fd",
"constructorArgs": [
"0x8C6de8F8D562f3382417340A6994601eE08D3809",
"0x971B9d3d0Ae3ECa029CAB5eA1fB0F72c85e6a525",
"3",
"300",
[
"0xdcAA0a094F2Eb7cF7f73248EE64217D59B7B938d",
"0xBD9dc46cb1dd9F31dCbF0617c2Dd5f77A21dB8e8",
"0x16eAd4088d4308a7A4E0F7a1455ed56CDf1AC8AA",
"0x61923453906Eadc15fc1F610B8D1b67bc27658c2",
"0x10eb33C5E2fb6c7a37B110Cc4930d03A9e4C4D09"
]
],
"creationCodeHash": "0xc34842fa42ee2f21e3a435b52fa69a122a5de795448faa890fbc63d4838f45da",
"runtimeCodeHash": "0x52fcfd39c6ab3cf5ed4a736bc38eb1153d73c8cf1ca9e23370badc7843467ab4",
"txHash": "0x2eb44036d157e39c56377403029aebde4961028b404fc8c3f4cadc0f299d06dd"
}
},
"421613": {
Expand Down Expand Up @@ -1221,6 +1240,25 @@
"creationCodeHash": "0x20cd202f7991716a84c097da5fbd365fd27f7f35f241f82c529ad7aba18b814b",
"runtimeCodeHash": "0x5f396ffd54b6cd6b3faded0f366c5d7e148cc54743926061be2dfd12a75391de",
"txHash": "0x2cefbc169b8ae51c263d0298956d86a397b05f11f076b71c918551f63fe33784"
},
"SubgraphAvailabilityManager": {
"address": "0x71D9aE967d1f31fbbD1817150902de78f8f2f73E",
"constructorArgs": [
"0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3",
"0x1F49caE7669086c8ba53CC35d1E9f80176d67E79",
"3",
"300",
[
"0x5e4e823Ed094c035133eEC5Ec0d08ae1Af04e9Fa",
"0x5aeE4c46cF9260E85E630ca7d9D757D5D5DbaFD6",
"0x7369Cf2a917296c36f506144f3dE552403d1e1f1",
"0x1e1f84c07e0471fc979f6f08228b0bd34cda9e54",
"0x711aEA1f358DFAf74D34B4B525F9190e631F406C"
]
],
"creationCodeHash": "0xc34842fa42ee2f21e3a435b52fa69a122a5de795448faa890fbc63d4838f45da",
"runtimeCodeHash": "0x3907d0fe5a1fa28fee51100e57a3b193dfcee6720163067011e787262b1749bb",
"txHash": "0xb00751b4dc1c0603fe1b8b9ae9de8840ad1c29b42489c5bb267d80b10ae44ef0"
}
},
"11155111": {
Expand Down
16 changes: 14 additions & 2 deletions packages/contracts/config/graph.arbitrum-hardhat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ general:
arbitrator: &arbitrator "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0" # Arbitration Council
governor: &governor "0x22d491Bde2303f2f43325b2108D26f1eAbA1e32b" # Graph Council
authority: &authority "0xE11BA2b4D45Eaed5996Cd0823791E0C93114882d" # Authority that signs payment vouchers
availabilityOracle: &availabilityOracle "0xd03ea8624C8C5987235048901fB614fDcA89b117" # Subgraph Availability Oracle
availabilityOracles: &availabilityOracles # Subgraph Availability Oracles
- "0xd03ea8624C8C5987235048901fB614fDcA89b117"
- "0xd03ea8624C8C5987235048901fB614fDcA89b117"
- "0xd03ea8624C8C5987235048901fB614fDcA89b117"
- "0xd03ea8624C8C5987235048901fB614fDcA89b117"
- "0xd03ea8624C8C5987235048901fB614fDcA89b117"
pauseGuardian: &pauseGuardian "0x95cED938F7991cd0dFcb48F0a06a40FA1aF46EBC" # Protocol pause guardian
allocationExchangeOwner: &allocationExchangeOwner "0x3E5e9111Ae8eB78Fe1CC3bb8915d5D461F3Ef9A9" # Allocation Exchange owner

Expand Down Expand Up @@ -131,7 +136,7 @@ contracts:
- fn: "setIssuancePerBlock"
issuancePerBlock: "114155251141552511415" # per block increase of total supply, blocks in a year = 365*60*60*24/12
- fn: "setSubgraphAvailabilityOracle"
subgraphAvailabilityOracle: *availabilityOracle
subgraphAvailabilityOracle: "${{SubgraphAvailabilityManager.address}}"
- fn: "syncAllContracts"
AllocationExchange:
init:
Expand All @@ -149,3 +154,10 @@ contracts:
- fn: "syncAllContracts"
- fn: "setPauseGuardian"
pauseGuardian: *pauseGuardian
SubgraphAvailabilityManager:
init:
governor: *governor
rewardsManager: "${{RewardsManager.address}}"
executionThreshold: 5
voteTimeLimit: 300
oracles: *availabilityOracles
16 changes: 14 additions & 2 deletions packages/contracts/config/graph.arbitrum-localhost.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ general:
arbitrator: &arbitrator "0x4237154FE0510FdE3575656B60c68a01B9dCDdF8" # Arbitration Council
governor: &governor "0x1257227a2ECA34834940110f7B5e341A5143A2c4" # Graph Council
authority: &authority "0x12B8D08b116E1E3cc29eE9Cf42bB0AA8129C3215" # Authority that signs payment vouchers
availabilityOracle: &availabilityOracle "0x7694a48065f063a767a962610C6717c59F36b445" # Subgraph Availability Oracle
availabilityOracles: &availabilityOracles # Subgraph Availability Oracles
- "0x7694a48065f063a767a962610C6717c59F36b445"
- "0x7694a48065f063a767a962610C6717c59F36b445"
- "0x7694a48065f063a767a962610C6717c59F36b445"
- "0x7694a48065f063a767a962610C6717c59F36b445"
- "0x7694a48065f063a767a962610C6717c59F36b445"
pauseGuardian: &pauseGuardian "0x601060e0DC5349AA55EC73df5A58cB0FC1cD2e3C" # Protocol pause guardian
allocationExchangeOwner: &allocationExchangeOwner "0xbD38F7b67a591A5cc7D642e1026E5095B819d952" # Allocation Exchange owner

Expand Down Expand Up @@ -132,7 +137,7 @@ contracts:
- fn: "setIssuancePerBlock"
issuancePerBlock: "6036500000000000000" # per block increase of total supply, blocks in a year = 365*60*60*24/12
- fn: "setSubgraphAvailabilityOracle"
subgraphAvailabilityOracle: *availabilityOracle
subgraphAvailabilityOracle: "${{SubgraphAvailabilityManager.address}}"
- fn: "syncAllContracts"
AllocationExchange:
init:
Expand All @@ -150,3 +155,10 @@ contracts:
- fn: "syncAllContracts"
- fn: "setPauseGuardian"
pauseGuardian: *pauseGuardian
SubgraphAvailabilityManager:
init:
governor: *governor
rewardsManager: "${{RewardsManager.address}}"
executionThreshold: 5
voteTimeLimit: 300
oracles: *availabilityOracles
16 changes: 14 additions & 2 deletions packages/contracts/config/graph.arbitrum-sepolia.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ general:
arbitrator: &arbitrator "0x1726A5d52e279d02ff4732eCeB2D67BFE5Add328" # EOA (TODO: update to a multisig)
governor: &governor "0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3" # EOA (TODO: update to a multisig)
authority: &authority "0x49D4CFC037430cA9355B422bAeA7E9391e1d3215" # Authority that signs payment vouchers
availabilityOracle: &availabilityOracle "0x5e4e823Ed094c035133eEC5Ec0d08ae1Af04e9Fa" # Subgraph Availability Oracle
availabilityOracles: &availabilityOracles # Array of Subgraph Availability Oracles
- "0x5e4e823Ed094c035133eEC5Ec0d08ae1Af04e9Fa"
- "0x5aeE4c46cF9260E85E630ca7d9D757D5D5DbaFD6"
- "0x7369Cf2a917296c36f506144f3dE552403d1e1f1"
- "0x1e1f84c07e0471fc979f6f08228b0bd34cda9e54"
- "0x711aEA1f358DFAf74D34B4B525F9190e631F406C"
pauseGuardian: &pauseGuardian "0xa0444508232dA3FA6C2f96a5f105f3f0cc0d20D7" # Protocol pause guardian
allocationExchangeOwner: &allocationExchangeOwner "0x72ee30d43Fb5A90B3FE983156C5d2fBE6F6d07B3" # Allocation Exchange owner

Expand Down Expand Up @@ -131,7 +136,7 @@ contracts:
- fn: "setIssuancePerBlock"
issuancePerBlock: "6036500000000000000" # per block increase of total supply, blocks in a year = 365*60*60*24/12
- fn: "setSubgraphAvailabilityOracle"
subgraphAvailabilityOracle: *availabilityOracle
subgraphAvailabilityOracle: "${{SubgraphAvailabilityManager.address}}"
- fn: "syncAllContracts"
AllocationExchange:
init:
Expand All @@ -149,3 +154,10 @@ contracts:
- fn: "syncAllContracts"
- fn: "setPauseGuardian"
pauseGuardian: *pauseGuardian
SubgraphAvailabilityManager:
init:
governor: *governor
rewardsManager: "${{RewardsManager.address}}"
executionThreshold: 5
voteTimeLimit: 300
oracles: *availabilityOracles
2 changes: 0 additions & 2 deletions packages/contracts/contracts/rewards/IRewardsManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ interface IRewardsManager {

function setDenied(bytes32 _subgraphDeploymentID, bool _deny) external;

function setDeniedMany(bytes32[] calldata _subgraphDeploymentID, bool[] calldata _deny) external;

function isDenied(bytes32 _subgraphDeploymentID) external view returns (bool);

// -- Getters --
Expand Down
16 changes: 0 additions & 16 deletions packages/contracts/contracts/rewards/RewardsManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -127,22 +127,6 @@ contract RewardsManager is RewardsManagerV4Storage, GraphUpgradeable, IRewardsMa
_setDenied(_subgraphDeploymentID, _deny);
}

/**
* @dev Denies to claim rewards for multiple subgraph.
* NOTE: Can only be called by the subgraph availability oracle
* @param _subgraphDeploymentID Array of subgraph deployment ID
* @param _deny Array of denied status for claiming rewards for each subgraph
*/
function setDeniedMany(
bytes32[] calldata _subgraphDeploymentID,
bool[] calldata _deny
) external override onlySubgraphAvailabilityOracle {
require(_subgraphDeploymentID.length == _deny.length, "!length");
for (uint256 i = 0; i < _subgraphDeploymentID.length; i++) {
_setDenied(_subgraphDeploymentID[i], _deny[i]);
}
}

/**
* @dev Internal: Denies to claim rewards for a subgraph.
* @param _subgraphDeploymentID Subgraph deployment ID
Expand Down
Loading

0 comments on commit 750522f

Please sign in to comment.