Skip to content

Commit 4d16247

Browse files
authored
Merge pull request #94 from hyperithm/morpho-susde-susds
Fix incorrect reward multiplier on Morpho sUSDe/sUSDS LP criteria
2 parents d6b2bbf + b5cfed9 commit 4d16247

5 files changed

Lines changed: 154 additions & 1 deletion

File tree

abi/morpho.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"inputs": [{"internalType": "address","name": "newOwner","type": "address"}],"stateMutability": "nonpayable","type": "constructor"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "Id","name": "id","type": "bytes32"},{"indexed": false,"internalType": "uint256","name": "prevBorrowRate","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "interest","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "feeShares","type": "uint256"}],"name": "AccrueInterest","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "Id","name": "id","type": "bytes32"},{"indexed": false,"internalType": "address","name": "caller","type": "address"},{"indexed": true,"internalType": "address","name": "onBehalf","type": "address"},{"indexed": true,"internalType": "address","name": "receiver","type": "address"},{"indexed": false,"internalType": "uint256","name": "assets","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "shares","type": "uint256"}],"name": "Borrow","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "Id","name": "id","type": "bytes32"},{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"indexed": false,"internalType": "struct MarketParams","name": "marketParams","type": "tuple"}],"name": "CreateMarket","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "address","name": "irm","type": "address"}],"name": "EnableIrm","type": "event"},{"anonymous": false,"inputs": [{"indexed": false,"internalType": "uint256","name": "lltv","type": "uint256"}],"name": "EnableLltv","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "address","name": "caller","type": "address"},{"indexed": true,"internalType": "address","name": "token","type": "address"},{"indexed": false,"internalType": "uint256","name": "assets","type": "uint256"}],"name": "FlashLoan","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "address","name": "caller","type": "address"},{"indexed": true,"internalType": "address","name": "authorizer","type": "address"},{"indexed": false,"internalType": "uint256","name": "usedNonce","type": "uint256"}],"name": "IncrementNonce","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "Id","name": "id","type": "bytes32"},{"indexed": true,"internalType": "address","name": "caller","type": "address"},{"indexed": true,"internalType": "address","name": "borrower","type": "address"},{"indexed": false,"internalType": "uint256","name": "repaidAssets","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "repaidShares","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "seizedAssets","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "badDebtAssets","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "badDebtShares","type": "uint256"}],"name": "Liquidate","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "Id","name": "id","type": "bytes32"},{"indexed": true,"internalType": "address","name": "caller","type": "address"},{"indexed": true,"internalType": "address","name": "onBehalf","type": "address"},{"indexed": false,"internalType": "uint256","name": "assets","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "shares","type": "uint256"}],"name": "Repay","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "address","name": "caller","type": "address"},{"indexed": true,"internalType": "address","name": "authorizer","type": "address"},{"indexed": true,"internalType": "address","name": "authorized","type": "address"},{"indexed": false,"internalType": "bool","name": "newIsAuthorized","type": "bool"}],"name": "SetAuthorization","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "Id","name": "id","type": "bytes32"},{"indexed": false,"internalType": "uint256","name": "newFee","type": "uint256"}],"name": "SetFee","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "address","name": "newFeeRecipient","type": "address"}],"name": "SetFeeRecipient","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "address","name": "newOwner","type": "address"}],"name": "SetOwner","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "Id","name": "id","type": "bytes32"},{"indexed": true,"internalType": "address","name": "caller","type": "address"},{"indexed": true,"internalType": "address","name": "onBehalf","type": "address"},{"indexed": false,"internalType": "uint256","name": "assets","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "shares","type": "uint256"}],"name": "Supply","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "Id","name": "id","type": "bytes32"},{"indexed": true,"internalType": "address","name": "caller","type": "address"},{"indexed": true,"internalType": "address","name": "onBehalf","type": "address"},{"indexed": false,"internalType": "uint256","name": "assets","type": "uint256"}],"name": "SupplyCollateral","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "Id","name": "id","type": "bytes32"},{"indexed": false,"internalType": "address","name": "caller","type": "address"},{"indexed": true,"internalType": "address","name": "onBehalf","type": "address"},{"indexed": true,"internalType": "address","name": "receiver","type": "address"},{"indexed": false,"internalType": "uint256","name": "assets","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "shares","type": "uint256"}],"name": "Withdraw","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "Id","name": "id","type": "bytes32"},{"indexed": false,"internalType": "address","name": "caller","type": "address"},{"indexed": true,"internalType": "address","name": "onBehalf","type": "address"},{"indexed": true,"internalType": "address","name": "receiver","type": "address"},{"indexed": false,"internalType": "uint256","name": "assets","type": "uint256"}],"name": "WithdrawCollateral","type": "event"},{"inputs": [],"name": "DOMAIN_SEPARATOR","outputs": [{"internalType": "bytes32","name": "","type": "bytes32"}],"stateMutability": "view","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"internalType": "struct MarketParams","name": "marketParams","type": "tuple"}],"name": "accrueInterest","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"internalType": "struct MarketParams","name": "marketParams","type": "tuple"},{"internalType": "uint256","name": "assets","type": "uint256"},{"internalType": "uint256","name": "shares","type": "uint256"},{"internalType": "address","name": "onBehalf","type": "address"},{"internalType": "address","name": "receiver","type": "address"}],"name": "borrow","outputs": [{"internalType": "uint256","name": "","type": "uint256"},{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"internalType": "struct MarketParams","name": "marketParams","type": "tuple"}],"name": "createMarket","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "address","name": "irm","type": "address"}],"name": "enableIrm","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "uint256","name": "lltv","type": "uint256"}],"name": "enableLltv","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "bytes32[]","name": "slots","type": "bytes32[]"}],"name": "extSloads","outputs": [{"internalType": "bytes32[]","name": "res","type": "bytes32[]"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "feeRecipient","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address","name": "token","type": "address"},{"internalType": "uint256","name": "assets","type": "uint256"},{"internalType": "bytes","name": "data","type": "bytes"}],"name": "flashLoan","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "Id","name": "","type": "bytes32"}],"name": "idToMarketParams","outputs": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address","name": "","type": "address"},{"internalType": "address","name": "","type": "address"}],"name": "isAuthorized","outputs": [{"internalType": "bool","name": "","type": "bool"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address","name": "","type": "address"}],"name": "isIrmEnabled","outputs": [{"internalType": "bool","name": "","type": "bool"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "uint256","name": "","type": "uint256"}],"name": "isLltvEnabled","outputs": [{"internalType": "bool","name": "","type": "bool"}],"stateMutability": "view","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"internalType": "struct MarketParams","name": "marketParams","type": "tuple"},{"internalType": "address","name": "borrower","type": "address"},{"internalType": "uint256","name": "seizedAssets","type": "uint256"},{"internalType": "uint256","name": "repaidShares","type": "uint256"},{"internalType": "bytes","name": "data","type": "bytes"}],"name": "liquidate","outputs": [{"internalType": "uint256","name": "","type": "uint256"},{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "Id","name": "","type": "bytes32"}],"name": "market","outputs": [{"internalType": "uint128","name": "totalSupplyAssets","type": "uint128"},{"internalType": "uint128","name": "totalSupplyShares","type": "uint128"},{"internalType": "uint128","name": "totalBorrowAssets","type": "uint128"},{"internalType": "uint128","name": "totalBorrowShares","type": "uint128"},{"internalType": "uint128","name": "lastUpdate","type": "uint128"},{"internalType": "uint128","name": "fee","type": "uint128"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address","name": "","type": "address"}],"name": "nonce","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "owner","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "Id","name": "","type": "bytes32"},{"internalType": "address","name": "","type": "address"}],"name": "position","outputs": [{"internalType": "uint256","name": "supplyShares","type": "uint256"},{"internalType": "uint128","name": "borrowShares","type": "uint128"},{"internalType": "uint128","name": "collateral","type": "uint128"}],"stateMutability": "view","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"internalType": "struct MarketParams","name": "marketParams","type": "tuple"},{"internalType": "uint256","name": "assets","type": "uint256"},{"internalType": "uint256","name": "shares","type": "uint256"},{"internalType": "address","name": "onBehalf","type": "address"},{"internalType": "bytes","name": "data","type": "bytes"}],"name": "repay","outputs": [{"internalType": "uint256","name": "","type": "uint256"},{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "address","name": "authorized","type": "address"},{"internalType": "bool","name": "newIsAuthorized","type": "bool"}],"name": "setAuthorization","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "authorizer","type": "address"},{"internalType": "address","name": "authorized","type": "address"},{"internalType": "bool","name": "isAuthorized","type": "bool"},{"internalType": "uint256","name": "nonce","type": "uint256"},{"internalType": "uint256","name": "deadline","type": "uint256"}],"internalType": "struct Authorization","name": "authorization","type": "tuple"},{"components": [{"internalType": "uint8","name": "v","type": "uint8"},{"internalType": "bytes32","name": "r","type": "bytes32"},{"internalType": "bytes32","name": "s","type": "bytes32"}],"internalType": "struct Signature","name": "signature","type": "tuple"}],"name": "setAuthorizationWithSig","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"internalType": "struct MarketParams","name": "marketParams","type": "tuple"},{"internalType": "uint256","name": "newFee","type": "uint256"}],"name": "setFee","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "address","name": "newFeeRecipient","type": "address"}],"name": "setFeeRecipient","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "address","name": "newOwner","type": "address"}],"name": "setOwner","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"internalType": "struct MarketParams","name": "marketParams","type": "tuple"},{"internalType": "uint256","name": "assets","type": "uint256"},{"internalType": "uint256","name": "shares","type": "uint256"},{"internalType": "address","name": "onBehalf","type": "address"},{"internalType": "bytes","name": "data","type": "bytes"}],"name": "supply","outputs": [{"internalType": "uint256","name": "","type": "uint256"},{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"internalType": "struct MarketParams","name": "marketParams","type": "tuple"},{"internalType": "uint256","name": "assets","type": "uint256"},{"internalType": "address","name": "onBehalf","type": "address"},{"internalType": "bytes","name": "data","type": "bytes"}],"name": "supplyCollateral","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"internalType": "struct MarketParams","name": "marketParams","type": "tuple"},{"internalType": "uint256","name": "assets","type": "uint256"},{"internalType": "uint256","name": "shares","type": "uint256"},{"internalType": "address","name": "onBehalf","type": "address"},{"internalType": "address","name": "receiver","type": "address"}],"name": "withdraw","outputs": [{"internalType": "uint256","name": "","type": "uint256"},{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"components": [{"internalType": "address","name": "loanToken","type": "address"},{"internalType": "address","name": "collateralToken","type": "address"},{"internalType": "address","name": "oracle","type": "address"},{"internalType": "address","name": "irm","type": "address"},{"internalType": "uint256","name": "lltv","type": "uint256"}],"internalType": "struct MarketParams","name": "marketParams","type": "tuple"},{"internalType": "uint256","name": "assets","type": "uint256"},{"internalType": "address","name": "onBehalf","type": "address"},{"internalType": "address","name": "receiver","type": "address"}],"name": "withdrawCollateral","outputs": [],"stateMutability": "nonpayable","type": "function"}]

constants/morpho_susde_susds.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import json
2+
from web3 import Web3
3+
from utils.web3_utils import w3
4+
5+
PAGINATION_SIZE = 2000
6+
MORPHO_ADDRESS = Web3.to_checksum_address("0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb")
7+
with open("abi/morpho.json") as f:
8+
MORPHO_ABI = json.load(f)
9+
10+
MORPHO_CONTRACT = w3.eth.contract(
11+
address=MORPHO_ADDRESS,
12+
abi=MORPHO_ABI,
13+
)
14+
15+
MORPHO_MARKET_IDS = [
16+
"0xe0800b3f305b167e65738adc54e03d48c7bf4fb03af2734b4a72034852ba4a7a",
17+
]
18+
19+
# NOTE: per https://etherscan.io/tx/0x079b93a9b2f7ce98b8be93e3af103cc38550203a5a562dda5279925cf1bae9c3, the first deployment tx
20+
MORPHO_SUSDE_SUSDS_START_BLOCK = 22479246

constants/summary_columns.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,12 @@ class SummaryColumn(Enum):
6464
# EVAA Protocol
6565
EVAA_USDE_PTS = ("evaa_usde_pts", SummaryColumnType.ETHENA_PTS)
6666
EVAA_SUSDE_PTS = ("evaa_susde_pts", SummaryColumnType.ETHENA_PTS)
67-
67+
6868
# Sentiment
6969
SENTIMENT_USDE_PTS = ("sentiment_usde_pts", SummaryColumnType.ETHENA_PTS)
7070

71+
MORPHO_SUSDE_SUSDS_PTS = ("morpho_susde_susds_pts", SummaryColumnType.ETHENA_PTS)
72+
7173
def __init__(self, column_name: str, col_type: SummaryColumnType):
7274
self.column_name = column_name
7375
self.col_type = col_type

0 commit comments

Comments
 (0)