Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(#major); zircuit-staking; add subgraph #2585

Merged
merged 3 commits into from
Jul 16, 2024
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
34 changes: 34 additions & 0 deletions deployment/deployment.json
Original file line number Diff line number Diff line change
Expand Up @@ -11510,5 +11510,39 @@
}
}
}
},
"zircuit-staking": {
"schema": "generic",
"base": "zircuit-staking",
"protocol": "zircuit-staking",
"project": "zircuit-staking",
"deployments": {
"zircuit-staking-ethereum": {
"network": "ethereum",
"status": "prod",
"versions": {
"schema": "2.1.1",
"subgraph": "1.0.0",
"methodology": "1.0.0"
},
"files": {
"template": "zircuit.staking.template.yaml"
},
"options": {
"prepare:yaml": true,
"prepare:constants": true
},
"services": {
"hosted-service": {
"slug": "zircuit-staking-ethereum",
"query-id": "zircuit-staking-ethereum"
},
"decentralized-network": {
"slug": "zircuit-staking-ethereum",
"query-id": "todo"
}
}
}
}
}
}
4 changes: 4 additions & 0 deletions subgraphs/zircuit-staking/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.DS_Store
configure.ts
docs/
package-lock.json
30 changes: 30 additions & 0 deletions subgraphs/zircuit-staking/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Zircuit Staking Subgraph

## Methodology v1.0.0

LST and LRT protocols have successfully attracted users and significant Total Value Locked (TVL) as they were able to strike a balance between their relatively high yields, convenience and safety. Zircuit has partnered with leading LST and LRT protocols to provide users with boosted Zircuit rewards on top of native LST/LRT yields. Users stake a compatible asset into the Zircuit staking contract (on Ethereum mainnet) and immediately start earning Zircuit rewards, in addition to the underlying LST/LRT yields, while also helping to bootstrap Zircuit’s liquidity.

Once the Zircuit L2 mainnet is live, there will be an opt-in migration process where depositors will be incentivized to move their assets staked on Ethereum mainnet onto the Zircuit L2 rollup.

## Metrics

### Usage and Transactions

- Deposits into the Zircuit staking contract
- Withdrawals from the Zircuit staking contract

### TVL

Total assets in the Zircuit staking contract

### Fees and Revenue

The protocol does not charge a fee or generate any revenue at the moment.

## Useful Links

- Landing Page: https://www.zircuit.com/
- Restaking App: https://stake.zircuit.com/
- Docs: https://docs.zircuit.com/
- Contracts:
- ZtakingPool: https://etherscan.io/address/0xf047ab4c75cebf0eb9ed34ae2c186f3611aeafa6
159 changes: 159 additions & 0 deletions subgraphs/zircuit-staking/abis/Prices/AaveOracle.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
[
{
"inputs": [
{
"internalType": "contract IPoolAddressesProvider",
"name": "provider",
"type": "address"
},
{ "internalType": "address[]", "name": "assets", "type": "address[]" },
{ "internalType": "address[]", "name": "sources", "type": "address[]" },
{
"internalType": "address",
"name": "fallbackOracle",
"type": "address"
},
{ "internalType": "address", "name": "baseCurrency", "type": "address" },
{
"internalType": "uint256",
"name": "baseCurrencyUnit",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "source",
"type": "address"
}
],
"name": "AssetSourceUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "baseCurrency",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "baseCurrencyUnit",
"type": "uint256"
}
],
"name": "BaseCurrencySet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "fallbackOracle",
"type": "address"
}
],
"name": "FallbackOracleUpdated",
"type": "event"
},
{
"inputs": [],
"name": "ADDRESSES_PROVIDER",
"outputs": [
{
"internalType": "contract IPoolAddressesProvider",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "BASE_CURRENCY",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "BASE_CURRENCY_UNIT",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "address", "name": "asset", "type": "address" }
],
"name": "getAssetPrice",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "address[]", "name": "assets", "type": "address[]" }
],
"name": "getAssetsPrices",
"outputs": [
{ "internalType": "uint256[]", "name": "", "type": "uint256[]" }
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getFallbackOracle",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "address", "name": "asset", "type": "address" }
],
"name": "getSourceOfAsset",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "address[]", "name": "assets", "type": "address[]" },
{ "internalType": "address[]", "name": "sources", "type": "address[]" }
],
"name": "setAssetSources",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{ "internalType": "address", "name": "fallbackOracle", "type": "address" }
],
"name": "setFallbackOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
143 changes: 143 additions & 0 deletions subgraphs/zircuit-staking/abis/Prices/Calculations/Curve.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
[
{
"inputs": [
{
"internalType": "address",
"name": "_curveAddressProviderAddress",
"type": "address"
},
{ "internalType": "address", "name": "_oracleAddress", "type": "address" }
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "curveAddressProviderAddress",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "curveMetapoolFactoryAddress",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "curveRegistryAddress",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "curveLpTokenAddress",
"type": "address"
}
],
"name": "getBasePrice",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "curveLpTokenAddress",
"type": "address"
}
],
"name": "getCurvePriceUsdc",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "address", "name": "tokenAddress", "type": "address" }
],
"name": "getPool",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "address", "name": "assetAddress", "type": "address" }
],
"name": "getPriceUsdc",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "address", "name": "poolAddress", "type": "address" }
],
"name": "getUnderlyingCoinFromPool",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "curveLpTokenAddress",
"type": "address"
}
],
"name": "getVirtualPrice",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "address", "name": "tokenAddress", "type": "address" }
],
"name": "isBasicToken",
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "address", "name": "tokenAddress", "type": "address" }
],
"name": "isCurveLpToken",
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "oracleAddress",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ownerAddress",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{ "internalType": "bytes32", "name": "slot", "type": "bytes32" },
{ "internalType": "bytes32", "name": "value", "type": "bytes32" }
],
"name": "updateSlot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
Loading
Loading