88 lines
3.3 KiB
Python
88 lines
3.3 KiB
Python
from .context import mango
|
|
|
|
from solana.publickey import PublicKey
|
|
|
|
|
|
def test_spl_token_lookup() -> None:
|
|
data = {
|
|
"tokens": [
|
|
{
|
|
"address": "So11111111111111111111111111111111111111112",
|
|
"symbol": "SOL",
|
|
"name": "Wrapped SOL",
|
|
"decimals": 9,
|
|
},
|
|
{
|
|
"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
|
|
"symbol": "USDC",
|
|
"name": "USD Coin",
|
|
"decimals": 6,
|
|
},
|
|
{
|
|
"address": "9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E",
|
|
"symbol": "BTC",
|
|
"name": "Wrapped Bitcoin (Sollet)",
|
|
"decimals": 6,
|
|
},
|
|
{
|
|
"address": "2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk",
|
|
"symbol": "ETH",
|
|
"name": "Wrapped Ethereum (Sollet)",
|
|
"decimals": 6,
|
|
}]
|
|
}
|
|
actual = mango.SPLTokenLookup("test-filename", data)
|
|
assert actual is not None
|
|
eth = actual.find_by_symbol("ETH")
|
|
assert eth is not None
|
|
assert eth.name == "Wrapped Ethereum (Sollet)"
|
|
btc = actual.find_by_symbol("BTC")
|
|
assert btc is not None
|
|
assert btc.name == "Wrapped Bitcoin (Sollet)"
|
|
|
|
|
|
def test_spl_token_lookups_with_full_data() -> None:
|
|
actual = mango.SPLTokenLookup.load(mango.SPLTokenLookup.DefaultDataFilepath)
|
|
btc = actual.find_by_symbol("BTC")
|
|
assert btc is not None
|
|
assert btc.mint == PublicKey("9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E")
|
|
srm = actual.find_by_mint(PublicKey("AKJHspCwDhABucCxNLXUSfEzb7Ny62RqFtC9uNjJi4fq"))
|
|
assert srm is not None
|
|
assert srm.symbol == "SRM-SOL"
|
|
usdt = actual.find_by_mint(PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"))
|
|
assert usdt is not None
|
|
assert usdt.symbol == "USDT"
|
|
|
|
|
|
def test_override_lookups_with_full_data() -> None:
|
|
actual = mango.SPLTokenLookup.load("./data/overrides.tokenlist.json")
|
|
eth = actual.find_by_symbol("ETH")
|
|
assert eth is not None
|
|
assert eth.mint == PublicKey("2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk")
|
|
usdt = actual.find_by_mint(PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"))
|
|
assert usdt is not None
|
|
assert usdt.symbol == "USDT"
|
|
|
|
|
|
def test_compound_lookups_with_full_data() -> None:
|
|
overrides = mango.SPLTokenLookup.load("./data/overrides.tokenlist.json")
|
|
spl = mango.SPLTokenLookup.load(mango.SPLTokenLookup.DefaultDataFilepath)
|
|
actual = mango.CompoundInstrumentLookup([overrides, spl])
|
|
# actual should now find instruments in either overrides or spl
|
|
eth = actual.find_by_symbol("ETH")
|
|
assert eth is not None
|
|
assert isinstance(eth, mango.Token)
|
|
assert eth.mint == PublicKey("2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk")
|
|
btc = actual.find_by_symbol("BTC")
|
|
assert btc is not None
|
|
assert isinstance(btc, mango.Token)
|
|
assert btc.mint == PublicKey("9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E")
|
|
srm = actual.find_by_mint(PublicKey("AKJHspCwDhABucCxNLXUSfEzb7Ny62RqFtC9uNjJi4fq"))
|
|
assert srm is not None
|
|
assert isinstance(srm, mango.Token)
|
|
assert srm.symbol == "SRM-SOL"
|
|
usdt = actual.find_by_mint(PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"))
|
|
assert usdt is not None
|
|
assert isinstance(usdt, mango.Token)
|
|
assert usdt.symbol == "USDT"
|