Merge remote-tracking branch 'origin/v3' into v3

This commit is contained in:
dd 2021-08-25 16:41:33 -04:00
commit d888fe010c
3 changed files with 14 additions and 7 deletions

View File

@ -71,7 +71,7 @@ def log_account(account_info: mango.AccountInfo) -> mango.AccountInfo:
return account_info
def add_subscription_for_parameter(context: mango.Context, manager: mango.IndividualWebSocketSubscriptionManager, timer_limit: int, name_and_address: str):
def add_subscription_for_parameter(context: mango.Context, manager: mango.IndividualWebSocketSubscriptionManager, health_check: mango.HealthCheck, timer_limit: int, name_and_address: str):
name, address_str = name_and_address.split(":")
address = PublicKey(address_str)
@ -82,6 +82,9 @@ def add_subscription_for_parameter(context: mango.Context, manager: mango.Indivi
account_subscription = mango.WebSocketAccountSubscription(context, address, lambda account_info: account_info)
manager.add(account_subscription)
# Need a nice way of ensuring pongs from all subscriptions
health_check.add("ws_pong", account_subscription.pong)
on_change = account_subscription.publisher.pipe(rx.operators.start_with(immediate))
on_timer = rx.interval(timer_limit).pipe(
rx.operators.map(lambda _: mango.AccountInfo.load(context, address)))
@ -104,7 +107,7 @@ health_check = mango.HealthCheck()
disposer.add_disposable(health_check)
for name_and_address in args.named_address:
add_subscription_for_parameter(context, manager, args.timer_limit, name_and_address)
add_subscription_for_parameter(context, manager, health_check, args.timer_limit, name_and_address)
manager.open()

View File

@ -50,7 +50,12 @@ class MarketMaker:
self.buy_client_ids: typing.List[int] = []
self.sell_client_ids: typing.List[int] = []
self.not_quoting: bool = False
def pulse(self, context: mango.Context, model_state: ModelState):
if self.not_quoting:
return True
try:
payer = mango.CombinableInstructions.from_wallet(self.wallet)

View File

@ -3,11 +3,11 @@ from .context import mango
from solana.publickey import PublicKey
def context_has_default_values(ctx):
def context_has_default_values(ctx: mango.Context):
assert ctx.program_id == PublicKey("mv3ekLzLbnVPNxjSKvqBpU3ZeZXPQdEC3bp5MDEBG68")
assert ctx.dex_program_id == PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin")
assert ctx.group_name == "mainnet.0"
assert ctx.group_id == PublicKey("4yJ2Vx3kZnmHTNCrHzdoj5nCwriF2kVhfKNvqC6gU8tr")
assert ctx.group_name == "mainnet.1"
assert ctx.group_id == PublicKey("98pjRuQjK3qA6gXts96PqZT4Ze5QmnCmt3QYjhbUSPue")
def test_context_default_exists():
@ -27,7 +27,7 @@ def test_context_default_values():
# assert derived.program_id == PublicKey("mv3ekLzLbnVPNxjSKvqBpU3ZeZXPQdEC3bp5MDEBG68")
# assert derived.dex_program_id == PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin")
# assert derived.group_name == "mainnet.0"
# assert derived.group_id == PublicKey("4yJ2Vx3kZnmHTNCrHzdoj5nCwriF2kVhfKNvqC6gU8tr")
# assert derived.group_id == PublicKey("98pjRuQjK3qA6gXts96PqZT4Ze5QmnCmt3QYjhbUSPue")
# context_has_default_values(mango.ContextBuilder.default())
@ -40,4 +40,3 @@ def test_new_from_group_name():
# Should update both of these values on new group name.
assert derived.group_name == "mainnet.0"
assert derived.group_id == PublicKey("4yJ2Vx3kZnmHTNCrHzdoj5nCwriF2kVhfKNvqC6gU8tr")
context_has_default_values(mango.ContextBuilder.default())