Skip to content
Snippets Groups Projects
Commit a213d103 authored by David Hintermann's avatar David Hintermann
Browse files

wip: add automatic rebalancing

parent 20fb1fb1
No related branches found
No related tags found
1 merge request!10feat(rebalancer): rebalance automatically
......@@ -16,7 +16,7 @@ public class RebalanceService : BackgroundService
public RebalanceService(
Rebalancer rebalancer,
Logger<RebalanceService> logger
ILogger<RebalanceService> logger
)
{
_logger = logger;
......
......@@ -165,7 +165,7 @@ public class PoolV3Client
/*
this function should swap the tokens in the pool
*/
public async Task<decimal> SwapAsync(string fromTokenAddress, string toTokenAddress, decimal amount, decimal amountOutMinimum = 0, uint sqrtPriceLimitX96 = 0, bool doApproval = true)
public async Task SwapAsync(string fromTokenAddress, string toTokenAddress, decimal amount, decimal amountOutMinimum = 0, uint sqrtPriceLimitX96 = 0, bool doApproval = true)
{
if (doApproval)
......@@ -200,7 +200,6 @@ public class PoolV3Client
SqrtPriceLimitX96 = sqrtPriceLimitX96,
};
var exactInputSingleFunctionTxnReceipt = await contractHandler.SendRequestAndWaitForReceiptAsync(exactInputSingleFunction);
return 0.0m;
}
/// <summary>
......
......@@ -241,7 +241,6 @@
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"description": "averaged over 2 minutes",
"fieldConfig": {
"defaults": {
"color": {
......@@ -249,7 +248,7 @@
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisCenteredZero": true,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
......@@ -280,18 +279,13 @@
"mode": "off"
}
},
"decimals": 8,
"mappings": [],
"thresholds": {
"mode": "absolute",
"mode": "percentage",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
......@@ -299,12 +293,12 @@
"overrides": []
},
"gridPos": {
"h": 14,
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"id": 9,
"id": 12,
"options": {
"legend": {
"calcs": [],
......@@ -321,13 +315,26 @@
"targets": [
{
"editorMode": "code",
"expr": "avg_over_time(Marketplace_Potato_Price_ETH[2m])",
"legendFormat": "__auto",
"expr": "Marketplace_Potato_Price_ETH{} * 1/Uniswap_ROCWETH_price_WETH_per_ROC-1",
"legendFormat": "current",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"editorMode": "code",
"expr": "avg_over_time(Marketplace_Potato_Price_ETH{}[2m]) * 1/avg_over_time(Uniswap_ROCWETH_price_WETH_per_ROC[2m])-1",
"hide": false,
"instant": false,
"legendFormat": "avg over 2min",
"range": true,
"refId": "B"
}
],
"title": "Price of 1kg Potato [ETH]",
"title": "ROC Price [kg Potato]",
"type": "timeseries"
},
{
......@@ -441,7 +448,6 @@
}
],
"title": "Total Supply",
"transparent": true,
"type": "timeseries"
},
{
......@@ -718,6 +724,7 @@
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"description": "averaged over 2 minutes",
"fieldConfig": {
"defaults": {
"color": {
......@@ -756,6 +763,7 @@
"mode": "off"
}
},
"decimals": 8,
"mappings": [],
"thresholds": {
"mode": "absolute",
......@@ -774,12 +782,104 @@
"overrides": []
},
"gridPos": {
"h": 8,
"h": 14,
"w": 12,
"x": 0,
"y": 16
},
"id": 9,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "11.3.0+security-01",
"targets": [
{
"editorMode": "code",
"expr": "avg_over_time(Marketplace_Potato_Price_ETH[2m])",
"legendFormat": "__auto",
"range": true,
"refId": "A"
}
],
"title": "Price of 1kg Potato [ETH]",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "PBFA97CFB590B2093"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 22
},
"id": 4,
"id": 8,
"options": {
"legend": {
"calcs": [],
......@@ -795,15 +895,11 @@
"pluginVersion": "11.3.0+security-01",
"targets": [
{
"disableTextWrap": false,
"editorMode": "code",
"expr": "Marketplace_Ethereum_Price_CHF * Uniswap_ROCWETH_price_WETH_per_ROC",
"fullMetaSearch": false,
"includeNullMetadata": true,
"legendFormat": "price",
"expr": "avg_over_time(Marketplace_Ethereum_Price_CHF[5m])",
"legendFormat": "ETH in CHF averaged 5min",
"range": true,
"refId": "A",
"useBackend": false
"refId": "A"
},
{
"datasource": {
......@@ -811,10 +907,10 @@
"uid": "PBFA97CFB590B2093"
},
"editorMode": "code",
"expr": "avg_over_time(Marketplace_Ethereum_Price_CHF[5m]) * avg_over_time(Uniswap_ROCWETH_price_WETH_per_ROC[5m])",
"expr": "avg_over_time(Marketplace_Ethereum_Price_CHF[2m])",
"hide": false,
"instant": false,
"legendFormat": "Price average over 5 min",
"legendFormat": "ETH in CHF averaged 2min",
"range": true,
"refId": "B"
},
......@@ -824,15 +920,15 @@
"uid": "PBFA97CFB590B2093"
},
"editorMode": "code",
"expr": "avg_over_time(Marketplace_Ethereum_Price_CHF[2m]) * avg_over_time(Uniswap_ROCWETH_price_WETH_per_ROC[2m])",
"expr": "Marketplace_Ethereum_Price_CHF",
"hide": false,
"instant": false,
"legendFormat": "Price average over 2 min",
"legendFormat": "ETH in CHF",
"range": true,
"refId": "C"
}
],
"title": "ROC Price in CHF",
"title": "ETH price in CHF",
"type": "timeseries"
},
{
......@@ -898,10 +994,10 @@
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 22
"x": 0,
"y": 30
},
"id": 8,
"id": 4,
"options": {
"legend": {
"calcs": [],
......@@ -917,11 +1013,15 @@
"pluginVersion": "11.3.0+security-01",
"targets": [
{
"disableTextWrap": false,
"editorMode": "code",
"expr": "avg_over_time(Marketplace_Ethereum_Price_CHF[5m])",
"legendFormat": "ETH in CHF averaged 5min",
"expr": "Marketplace_Ethereum_Price_CHF * Uniswap_ROCWETH_price_WETH_per_ROC",
"fullMetaSearch": false,
"includeNullMetadata": true,
"legendFormat": "price",
"range": true,
"refId": "A"
"refId": "A",
"useBackend": false
},
{
"datasource": {
......@@ -929,10 +1029,10 @@
"uid": "PBFA97CFB590B2093"
},
"editorMode": "code",
"expr": "avg_over_time(Marketplace_Ethereum_Price_CHF[2m])",
"expr": "avg_over_time(Marketplace_Ethereum_Price_CHF[5m]) * avg_over_time(Uniswap_ROCWETH_price_WETH_per_ROC[5m])",
"hide": false,
"instant": false,
"legendFormat": "ETH in CHF averaged 2min",
"legendFormat": "Price average over 5 min",
"range": true,
"refId": "B"
},
......@@ -942,15 +1042,15 @@
"uid": "PBFA97CFB590B2093"
},
"editorMode": "code",
"expr": "Marketplace_Ethereum_Price_CHF",
"expr": "avg_over_time(Marketplace_Ethereum_Price_CHF[2m]) * avg_over_time(Uniswap_ROCWETH_price_WETH_per_ROC[2m])",
"hide": false,
"instant": false,
"legendFormat": "ETH in CHF",
"legendFormat": "Price average over 2 min",
"range": true,
"refId": "C"
}
],
"title": "ETH price in CHF",
"title": "ROC Price in CHF",
"type": "timeseries"
}
],
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment