From c60105709a8ebe3360d6e239625312930c10add0 Mon Sep 17 00:00:00 2001 From: Micky Mousse Date: Mon, 20 Sep 2021 14:54:17 -0300 Subject: [PATCH 1/3] feat: informative script --- scripts/status.py | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 scripts/status.py diff --git a/scripts/status.py b/scripts/status.py new file mode 100644 index 0000000..22b2667 --- /dev/null +++ b/scripts/status.py @@ -0,0 +1,48 @@ +from brownie import Contract +from eth_abi import encode_single + +def info(): + strategy = Contract("0xc9a62e09834cEdCFF8c136f33d0Ae3406aea66bD") + snxOracle = Contract("0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699") + susdOracle = Contract("0xad35Bd71b9aFE6e4bDc266B345c198eaDEf9Ad94") + snx = Contract(strategy.want()) + susd = Contract(Contract(strategy.resolver()).getAddress(encode_single("bytes32", b"Synthetix"))) + snxPrice = snxOracle.latestRoundData()["answer"] / 1e8 + susdPrice = susdOracle.latestRoundData()["answer"] / 1e8 + balanceOfSnx = snx.balanceOf(strategy) + totalStakedAssets = (balanceOfSnx+strategy.balanceOfEscrowedWant()) / 1e18 * snxPrice + + print(f"Strategy: {strategy.name()}") + + print(f"* SNX: ") + print(f" SNX price: ${snxPrice}") + print(f" Total Estimated Assets: {strategy.estimatedTotalAssets()/1e18:_} SNX") + print(f" Balance of Escrowed SNX: {strategy.balanceOfEscrowedWant()/1e18:_} SNX") + print(f" Balance of free SNX: {balanceOfSnx/1e18:_} SNX") + print(f" Total Balance of SNX: {(balanceOfSnx+strategy.balanceOfEscrowedWant())/1e18:_} SNX") + print(f" Delegated assets: {strategy.delegatedAssets()/1e18:_} SNX") + + print(f"* sUSD: ") + print(f" sUSD price: ${susdPrice}") + print(f" Balance of sUSD: {strategy.balanceOfSusd()/1e18:_} sUSD") + print(f" Balance of sUSD in Vault: {strategy.balanceOfSusdInVault()/1e18:_} sUSD") + + mintable = susd.maxIssuableSynths(strategy) - strategy.balanceOfDebt() + print(f"* Debt: ") + print(f" Active Debt: $ {strategy.balanceOfDebt()*susdPrice/1e18:_}") + print(f" Total Staked Assets: $ {totalStakedAssets:_}") + + print(f" Target c-ratio: {((1/strategy.getTargetRatio())*1e20):2f} %") + print(f" Current c-ratio: {((1/strategy.getCurrentRatio())*1e20):2f} %") + print(f" Issuance c-ratio: {((1/strategy.getIssuanceRatio())*1e20):2f} %") + + print(f"- Actions:") + if strategy.getCurrentRatio()>strategy.getIssuanceRatio(): + print(f" We will need to burn: {-mintable/1e18:_} sUSD") + else: + print(f" We can mint {mintable/1e18:_} sUSD") + print() + + +def main(): + info() From 3a910667a822559727c513f09624265b58e44472 Mon Sep 17 00:00:00 2001 From: Micky Mousse Date: Mon, 20 Sep 2021 14:57:54 -0300 Subject: [PATCH 2/3] fix: lint --- scripts/status.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/scripts/status.py b/scripts/status.py index 22b2667..ebcff5c 100644 --- a/scripts/status.py +++ b/scripts/status.py @@ -1,16 +1,21 @@ from brownie import Contract from eth_abi import encode_single + def info(): strategy = Contract("0xc9a62e09834cEdCFF8c136f33d0Ae3406aea66bD") snxOracle = Contract("0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699") susdOracle = Contract("0xad35Bd71b9aFE6e4bDc266B345c198eaDEf9Ad94") snx = Contract(strategy.want()) - susd = Contract(Contract(strategy.resolver()).getAddress(encode_single("bytes32", b"Synthetix"))) + susd = Contract( + Contract(strategy.resolver()).getAddress(encode_single("bytes32", b"Synthetix")) + ) snxPrice = snxOracle.latestRoundData()["answer"] / 1e8 susdPrice = susdOracle.latestRoundData()["answer"] / 1e8 balanceOfSnx = snx.balanceOf(strategy) - totalStakedAssets = (balanceOfSnx+strategy.balanceOfEscrowedWant()) / 1e18 * snxPrice + totalStakedAssets = ( + (balanceOfSnx + strategy.balanceOfEscrowedWant()) / 1e18 * snxPrice + ) print(f"Strategy: {strategy.name()}") @@ -19,25 +24,28 @@ def info(): print(f" Total Estimated Assets: {strategy.estimatedTotalAssets()/1e18:_} SNX") print(f" Balance of Escrowed SNX: {strategy.balanceOfEscrowedWant()/1e18:_} SNX") print(f" Balance of free SNX: {balanceOfSnx/1e18:_} SNX") - print(f" Total Balance of SNX: {(balanceOfSnx+strategy.balanceOfEscrowedWant())/1e18:_} SNX") + print( + f" Total Balance of SNX: {(balanceOfSnx+strategy.balanceOfEscrowedWant())/1e18:_} SNX" + ) print(f" Delegated assets: {strategy.delegatedAssets()/1e18:_} SNX") print(f"* sUSD: ") print(f" sUSD price: ${susdPrice}") print(f" Balance of sUSD: {strategy.balanceOfSusd()/1e18:_} sUSD") - print(f" Balance of sUSD in Vault: {strategy.balanceOfSusdInVault()/1e18:_} sUSD") + print( + f" Balance of sUSD in Vault: {strategy.balanceOfSusdInVault()/1e18:_} sUSD" + ) mintable = susd.maxIssuableSynths(strategy) - strategy.balanceOfDebt() print(f"* Debt: ") print(f" Active Debt: $ {strategy.balanceOfDebt()*susdPrice/1e18:_}") print(f" Total Staked Assets: $ {totalStakedAssets:_}") - print(f" Target c-ratio: {((1/strategy.getTargetRatio())*1e20):2f} %") print(f" Current c-ratio: {((1/strategy.getCurrentRatio())*1e20):2f} %") print(f" Issuance c-ratio: {((1/strategy.getIssuanceRatio())*1e20):2f} %") print(f"- Actions:") - if strategy.getCurrentRatio()>strategy.getIssuanceRatio(): + if strategy.getCurrentRatio() > strategy.getIssuanceRatio(): print(f" We will need to burn: {-mintable/1e18:_} sUSD") else: print(f" We can mint {mintable/1e18:_} sUSD") From a213e97af7e42638276c2a9d721ee3c19d79aa0f Mon Sep 17 00:00:00 2001 From: Micky Mousse Date: Mon, 20 Sep 2021 15:56:08 -0300 Subject: [PATCH 3/3] fix: added one more variable --- scripts/status.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/status.py b/scripts/status.py index ebcff5c..d3c71ca 100644 --- a/scripts/status.py +++ b/scripts/status.py @@ -44,6 +44,11 @@ def info(): print(f" Current c-ratio: {((1/strategy.getCurrentRatio())*1e20):2f} %") print(f" Issuance c-ratio: {((1/strategy.getIssuanceRatio())*1e20):2f} %") + print(f"- Result: ") + print( + f" Invested sUSD-Borrowed sUSD: $ {(strategy.balanceOfSusdInVault()-strategy.balanceOfDebt())*susdPrice/1e18:_}" + ) + print(f"- Actions:") if strategy.getCurrentRatio() > strategy.getIssuanceRatio(): print(f" We will need to burn: {-mintable/1e18:_} sUSD")