Marketmaker no longer tries to run instructions in parallel. (I hope this is a temporary fix.)

This commit is contained in:
Geoff Taylor 2021-08-02 17:48:20 +01:00
parent 6f86e83160
commit 7e7c21c0aa
2 changed files with 15 additions and 3 deletions

View File

@ -133,6 +133,19 @@ class CombinableInstructions():
return results
def execute_individually_and_continue_on_failures(self, context: Context) -> typing.Any:
results = []
for instruction in self.instructions:
transaction = Transaction()
transaction.instructions += [instruction]
try:
response = context.client.send_transaction(transaction, *self.signers, opts=context.transaction_options)
results += [context.unwrap_or_raise_exception(response)]
except:
self.logger.error(f"Error executing individual instruction {instruction}")
return results
def execute_and_continue_on_failures(self, context: Context) -> typing.Any:
chunks: typing.Sequence[typing.Sequence[TransactionInstruction]
] = _split_instructions_into_chunks(self.signers, self.instructions)

View File

@ -76,10 +76,9 @@ class MarketMaker:
place_order = self.market_instruction_builder.build_place_order_instructions(to_place_with_client_id)
place_orders += place_order
settle = self.market_instruction_builder.build_settle_instructions()
# TODO - need to fetch OpenOrders addresses appropriate to market
crank = self.market_instruction_builder.build_crank_instructions([])
(payer + cancellations + place_orders + crank + settle).execute_and_continue_on_failures(context)
settle = self.market_instruction_builder.build_settle_instructions()
(payer + cancellations + place_orders + crank + settle).execute_individually_and_continue_on_failures(context)
self.pulse_complete.on_next(datetime.now())
except Exception as exception: