70 lines
5.4 KiB
Python
70 lines
5.4 KiB
Python
from .context import mango
|
|
from .fakes import fake_account_info, fake_seeded_public_key, fake_token
|
|
|
|
from decimal import Decimal
|
|
|
|
import base64
|
|
|
|
|
|
def test_construction():
|
|
account_info = fake_account_info()
|
|
name = "FAKE_GROUP"
|
|
account_flags = mango.MangoAccountFlags(mango.Version.V1, True, False, True, False)
|
|
basket_tokens = [fake_token(), fake_token(), fake_token()]
|
|
markets = []
|
|
signer_nonce = Decimal(1)
|
|
signer_key = fake_seeded_public_key("signer key")
|
|
dex_program_id = fake_seeded_public_key("DEX program ID")
|
|
total_deposits = [Decimal(1), Decimal(2), Decimal(3)]
|
|
total_borrows = [Decimal(0), Decimal(1), Decimal(2)]
|
|
maint_coll_ratio = Decimal("1.1")
|
|
init_coll_ratio = Decimal("1.2")
|
|
srm_vault = fake_seeded_public_key("SRM vault")
|
|
admin = fake_seeded_public_key("admin")
|
|
borrow_limits = [Decimal(5), Decimal(7), Decimal(2)]
|
|
|
|
actual = mango.Group(account_info, mango.Version.V1, name, account_flags,
|
|
basket_tokens, markets, signer_nonce, signer_key, dex_program_id,
|
|
total_deposits, total_borrows, maint_coll_ratio, init_coll_ratio,
|
|
srm_vault, admin, borrow_limits)
|
|
|
|
assert actual is not None
|
|
assert actual.logger is not None
|
|
assert actual.name == name
|
|
assert actual.account_flags == account_flags
|
|
assert actual.basket_tokens == basket_tokens
|
|
assert actual.markets == markets
|
|
assert actual.signer_nonce == signer_nonce
|
|
assert actual.signer_key == signer_key
|
|
assert actual.dex_program_id == dex_program_id
|
|
assert actual.total_deposits == total_deposits
|
|
assert actual.total_borrows == total_borrows
|
|
assert actual.maint_coll_ratio == maint_coll_ratio
|
|
assert actual.init_coll_ratio == init_coll_ratio
|
|
assert actual.srm_vault == srm_vault
|
|
assert actual.admin == admin
|
|
assert actual.borrow_limits == borrow_limits
|
|
|
|
|
|
def test_group3_parse():
|
|
# Data for group BTC_ETH_USDT
|
|
group_3_public_key = fake_seeded_public_key("group3")
|
|
owner_3_public_key = fake_seeded_public_key("owner3")
|
|
encoded_3 = "AwAAAAAAAACCaOmpoURMK6XHelGTaFawcuQ/78/15LAemWI8jrt3SRKLy2R9i60eclDjuDS8+p/ZhvTUd9G7uQVOYCsR6+BhzgEOYK/tsicXvWMZL1QUWj+WWjO7gtLHAp6yzh4ggmR5TYxOe+df4LNiUJGSedvZ1K+r6GIzQEosNxNHhh2V7yAW8uStEyfEUTbEEkKgyDlUOVRWgGFbsiOC/Uzmn5ghfd2vMNvykHBB4JNMAUG0WhTyCizezFE3eOWvscJG7VWUUa5gAAAAAO1Ih8hkuwwAAQAAAAAAAADCuVoJcm8AAAEAAAAAAAAAlFGuYAAAAAAq17B5bBMDAAEAAAAAAAAAmLhxEVn+//8AAAAAAAAAAJRRrmAAAAAA+TEN0IhNFAIBAAAAAAAAAOiJg4cDQlkAAQAAAAAAAACjgEchygfXnwdEo4sw2++jvroovFb2BReD7MwO2ycvyWJ1ExP6tUyAXZHgwFt800+q+x6ZXzsCtRysH3ay+vKU9VYQAHqylxZVK65gEg85g27YuSyvOBZAjJyRmYU9KdCO1D+4ehdPu9dQB1yI1uh75wShdAaFn2o4qrMYwq3SQQIAAAAAAAAAT1DEK0hxpSv5VHH5kTlWeJePlGQpPYZ+uqcUELR4sLKFDy1uAqR6+CTQmradxC1wyyjL+iSft+5XudJWwSdi78PjPEJTOBGbyhEgBwAAAAD1dEYfuWMjjZ/rgK0AAAAAnKsRD43mpS3XCLztBAUAAKp2XItMhJ/N4sYBAAAAAABTEKVFyYfPc+mmjQAAAAAAWCug5qta1bqvFvY5uAAAAACgmZmZmZkZAQAAAAAAAAAAMDMzMzMzMwEAAAAAAAAAS153X9szDlbg9dv9VWFE+e6Hzhj8N5Of9zJLVkbx/U3at9+SEEUZuga7O5tTUrcMDYWDg+LYaAWhSQiN2fYk7UBCDwAAAAAAgI1bAAAAAAAAdDukCwAAAAYGBgICAAAA"
|
|
decoded_3 = base64.b64decode(encoded_3)
|
|
group_3_account_info = fake_account_info(address=group_3_public_key, owner=owner_3_public_key, data=decoded_3)
|
|
group_3 = mango.Group.parse(mango.default_context, group_3_account_info)
|
|
assert group_3.address == group_3_public_key
|
|
|
|
|
|
def test_group5_parse():
|
|
# Data for group BTC_ETH_SOL_SRM_USDC
|
|
group_5_context = mango.default_context.new_from_group_name("BTC_ETH_SOL_SRM_USDC")
|
|
group_5_public_key = fake_seeded_public_key("group5")
|
|
owner_5_public_key = fake_seeded_public_key("owner5")
|
|
encoded_5 = "AwAAAAAAAACCaOmpoURMK6XHelGTaFawcuQ/78/15LAemWI8jrt3SRKLy2R9i60eclDjuDS8+p/ZhvTUd9G7uQVOYCsR6+BhBpuIV/6rgYT7aH9jRhjANdrEOdwa6ztVmKDwAAAAAAEGgxCGGpgyfQVQV02EQYqm4QwzUt2qf9f1gVLM7rI4h8b6evO+2606PWXzaqvJdDGxu+TC0vbg5HymAgNFL11hDMpGlEl+w4+GTcSIxBgL21a381cY189pDZlNnJs4yeZo9SkiFPWIiqiO2WDuvWSwJtkzGT2AyosXbQAxoertF39z/OIM0RaqoX0m/ygot2ZFTFO709eZT8FMhrd6JbCWncHjVmiq7bm5jp3hx5bGZK9TJQh8fiOUaZqKsEnbvv2kh1ev9CnkA2y5WuIKYi7x4xgW5qI0rSiXLyQt2ih2OFbht2AAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAACqqrZgAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAVuG3YAAAAADu/h/j7AEAAAEAAAAAAAAAOTC1S6QAAAABAAAAAAAAAGvPt2AAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAABW4bdgAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAh6eVoSNiIJyPgV+TTHYeuVF9BY6e+SWFq+rlAay+FQY5wP5yG8+DquGM1xrK84Afdgb2FpOOvSfIrnYyhDEpNITC+xiu1hn1RmMmU+8GAp8CqGS/OCmGcYG7IN8dcVwwowmj13Uh9wkF+yqInUo8aluBd5TeyepC6vUuYKD3Pe/1VhAAerKXFlUrrmASDzmDbti5LK84FkCMnJGZhT0p0I7UP7h6F0+711AHXIjW6HvnBKF0BoWfajiqsxjCrdJBlCNajxBr0p+Nz8IPWfXR0m64sDFoIgeYv6BNfv0ZV4dafre5nIqEzPfWXGEWbQEAOFBe5S6+0UIkeaoE8kdnAwAAAAAAAAAADUJgR5d1JfsqikNyo9yTAa1U8KuCHb6XNmKlZ4hG4TmFDy1uAqR6+CTQmradxC1wyyjL+iSft+5XudJWwSdi7wAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOMVOUDhnHRrc3hIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoJmZmZmZGQEAAAAAAAAAADAzMzMzMzMBAAAAAAAAAJ3B41Zoqu25uY6d4ceWxmSvUyUIfH4jlGmairBJ27792rffkhBFGboGuzubU1K3DA2Fg4Pi2GgFoUkIjdn2JO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYJBgYCAgICAAAAAAAAAA=="
|
|
decoded_5 = base64.b64decode(encoded_5)
|
|
group_5_account_info = fake_account_info(address=group_5_public_key, owner=owner_5_public_key, data=decoded_5)
|
|
group_5 = mango.Group.parse(group_5_context, group_5_account_info)
|
|
assert group_5.address == group_5_public_key
|