Skip to content

Commit

Permalink
Merge pull request #82 from ComposableFi/ch/10/fix-connection-to-API
Browse files Browse the repository at this point in the history
Fix request to API on get pools
  • Loading branch information
Alliad authored Apr 13, 2024
2 parents e302dbd + 0f2c234 commit 4ba55f7
Show file tree
Hide file tree
Showing 10 changed files with 57,940 additions and 13,036 deletions.
41 changes: 30 additions & 11 deletions mantis/blackbox/composablefi_networks.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ class Devnet(BaseModel):
FEE: str
GRPCPORT: int
GRPCWEB: int
HOME: str
KEYRING_TEST: str
NETWORK_ID: int
NODE: str
Expand Down Expand Up @@ -49,25 +48,36 @@ class CosmosHub(BaseModel):
mainnet: Mainnet


class Directories(BaseModel):
DATA_DIRECTORY: str
HOME: str
LOG_DIRECTORY: str


class Mnemonics(BaseModel):
ALICE: str
APPLICATION1: str
APPLICATION2: str
BOB: str
DEMO_MNEMONIC_1: str
DEMO_MNEMONIC_2: str
DEMO_MNEMONIC_3: str
EXCHNANGE_1: str
FAUCET_MNEMONIC: str
MANTIS_1: str
RLY_MNEMONIC_1: str
RLY_MNEMONIC_2: str
RLY_MNEMONIC_3: str
RLY_MNEMONIC_4: str
TEST1: str
TEST2: str
VAL_MNEMONIC_1: str
VAL_MNEMONIC_2: str
VAL_MNEMONIC_3: str


class Devnet1(BaseModel):
DEFAULT_DEVNET_DIRECTORY: str
devnetRootDirectory: str
directories: Directories
mnemonics: Mnemonics


Expand All @@ -86,7 +96,6 @@ class Devnet2(BaseModel):
FEE: str
GRPCPORT: int
GRPCWEB: int
HOME: str
IBCATOMDENOM: str
IBCUSDCDENOM: str
KEYRING_TEST: str
Expand Down Expand Up @@ -131,7 +140,6 @@ class Devnet3(BaseModel):
FEE: str
GRPCPORT: int
GRPCWEB: int
HOME: str
KEYRING_TEST: str
NETWORK_ID: int
NODE: str
Expand All @@ -146,7 +154,6 @@ class Mainnet2(BaseModel):
BINARY: str
BLOCK_SECONDS: int
CHAIN_ID: str
CVM_OUTPOST_CONTRACT_ADDRESS: str
DIR: str
FEE: str
NETWORK_ID: int
Expand Down Expand Up @@ -176,11 +183,23 @@ class Testnet(BaseModel):
class Osmosis(BaseModel):
devnet: Devnet3
mainnet: Mainnet2
remote_devnet: RemoteDevnet = Field(..., alias="remote-devnet")
remote_devnet: RemoteDevnet = Field(..., alias='remote-devnet')
testnet: Testnet


class Devnet4(BaseModel):
CHAIN_ID_A: str
CHAIN_ID_B: str
RELAY_DATA: str
REST_PORT: int
TELEMETRY_PORT: int


class OsmosisCentauri(BaseModel):
devnet: Devnet4


class Devnet5(BaseModel):
ACCOUNT_PREFIX: str
BASE_DIR: str
BINARY: str
Expand All @@ -195,8 +214,8 @@ class Devnet4(BaseModel):
FEE: str
GRPCPORT: int
GRPWEB: int
HOME: str
KEYRING_TEST: str
LOG_DIRECTORY: str
NETWORK_ID: int
NODE: str
RESTPORT: int
Expand All @@ -207,7 +226,6 @@ class Mainnet3(BaseModel):
BINARY: str
BLOCK_TIME: int
CHAIN_ID: str
CVM_OUTPOST_CONTRACT_ADDRESS: str
DIR: str
FEE: str
GRPC: str
Expand All @@ -229,14 +247,15 @@ class Testnet1(BaseModel):


class Pica(BaseModel):
devnet: Devnet4
devnet: Devnet5
mainnet: Mainnet3
testnet: Testnet1


class Model(BaseModel):
cosmos_hub: CosmosHub = Field(..., alias="cosmos-hub")
cosmos_hub: CosmosHub = Field(..., alias='cosmos-hub')
devnet: Devnet1
neutron: Neutron
osmosis: Osmosis
osmosis_centauri: OsmosisCentauri = Field(..., alias='osmosis-centauri')
pica: Pica
11 changes: 10 additions & 1 deletion mantis/blackbox/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,16 @@ def get_remote_data() -> AllData:
skip_api = CosmosChains.parse_raw(requests.get(settings.skip_money + "v1/info/chains").content)
networks = requests.get(settings.COMPOSABLEFI_NETWORKS).content
networks = NetworksModel.parse_raw(networks)
osmosis_pools = OsmosisPoolsResponse.parse_raw(requests.get(settings.OSMOSIS_POOLS).content)
# Had to add a User-Agent header similar to a web browser to avoid a
# 403 Forbidden error when sending a request to the API from Python code.
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'}
response = requests.get(settings.OSMOSIS_POOLS, headers=headers)
logger.info(f"Response Status Code: {response.status_code}")
logger.info(f"Response Body: {response.content}")
if response.status_code == 200:
osmosis_pools = OsmosisPoolsResponse.parse_raw(response.content)
else:
raise Exception(f"Failed to fetch OSMOSIS pools: Status code {response.status_code}\n{response.content}")
astroport_pools = NeutronPoolsResponse.parse_raw(requests.get(settings.astroport_pools).content).result.data
result: AllData = AllData(
osmosis_pools=osmosis_pools.pools,
Expand Down
6 changes: 4 additions & 2 deletions mantis/blackbox/neutron_pools.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,13 @@ class Reward(BaseModel):
priceUsd: float
precision: int
amountPerDayUsd: str
yield_: float = Field(..., alias="yield")
yield_: float = Field(..., alias='yield')
isExternal: bool
gaugeInfo: List


class JsonItem(BaseModel):
chainId: str
poolAddress: str
lpAddress: str
dayVolumeUsd: float
Expand All @@ -83,4 +85,4 @@ class JsonItem(BaseModel):


class Model(BaseModel):
json_: List[JsonItem] = Field(..., alias="json")
json_: List[JsonItem] = Field(..., alias='json')
9 changes: 6 additions & 3 deletions mantis/blackbox/osmosis_pools.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ class PoolAsset(BaseModel):


class ModelItem(BaseModel):
field_type: str = Field(..., alias="@type")
id: str
field_type: str = Field(..., alias='@type')
id: Optional[str] = None
pool_params: Optional[PoolParams] = None
total_shares: Optional[TotalShares] = None
liquidityUsd: float
liquidity24hUsdChange: float
liquidity24hUsdChange: Optional[float] = None
volume24hUsd: float
volume24hUsdChange: Optional[float] = None
volume7dUsd: float
Expand All @@ -61,6 +61,9 @@ class ModelItem(BaseModel):
tick_spacing: Optional[str] = None
exponent_at_price_one: Optional[str] = None
spread_factor: Optional[str] = None
pool_id: Optional[str] = None
code_id: Optional[str] = None
tokens: Optional[List[Token]] = None


class Model(RootModel[List[ModelItem]]):
Expand Down
8 changes: 4 additions & 4 deletions mantis/blackbox/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@


class Settings(BaseSettings):
OSMOSIS_POOLS: str | None = Field(alias="OSMOSIS_POOLS", default=None)
CVM_COSMOS_GRPC: str | None = Field(alias="CVM_COSMOS_GRPC", default="http://grpc.osmosis.zone:9090")
OSMOSIS_POOLS: str | None = Field(alias="OSMOSIS_POOLS", default="http://app.osmosis.zone/api/pools")
CVM_COSMOS_GRPC: str | None = Field(alias="CVM_COSMOS_GRPC", default="https://osmosis.grpc.stakin-nodes.com:443")
CVM_CHAIN_ID: str | None = Field(alias="CVM_CHAIN_ID", default="osmosis-1")
COMPOSABLEFI_NETWORKS: str | None = Field(
alias="COMPOSABLEFI_NETWORKS",
Expand All @@ -16,10 +16,10 @@ class Settings(BaseSettings):
alias="CVM_ADDRESS",
default="osmo13guwqtt7xdcuhtewc53tpt9jas5xcnk5tvzdxwhn09774m8jpytqr89pry",
)
astroport_pools: str | None = Field(alias="ASTROPORT_POOLS", default=None)
astroport_pools: str | None = Field(alias="ASTROPORT_POOLS", default="https://app.astroport.fi/api/trpc/pools.getAll?input=%7B%22json%22%3A%7B%22chainId%22%3A%5B%22neutron-1%22%5D%7D%7D")
neutron_rpc: str | None = Field(alias="NEUTRON_RPC", default=None)
osmosis_rpc: str | None = Field(alias="OSMOSIS_RPC", default=None)
skip_money: str | None = Field(alias="SKIP_MONEY", default=None)
skip_money: str | None = Field(alias="SKIP_MONEY", default="https://api.skip.money/")
port: int = Field(default=8000, alias="LISTEN_PORT")


Expand Down
Loading

0 comments on commit 4ba55f7

Please sign in to comment.