Skip to content

Instantly share code, notes, and snippets.

@dexX7
Last active August 29, 2015 14:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dexX7/51d020b6f657c56597a6 to your computer and use it in GitHub Desktop.
Save dexX7/51d020b6f657c56597a6 to your computer and use it in GitHub Desktop.
MDex core logic
given:
seller_original_forsale
seller_original_desired
seller_forsale
seller_desired
buyer_original_forsale
buyer_original_desired
buyer_forsale
buyer_desired
required:
seller_received (~buyer_spent)
seller_updated_forsale
seller_updated_desired [range > 64 bit]
buyer_received (~seller_spent) [range > 64 bit]
buyer_updated_forsale
buyer_updated_desired [range > 64 bit]
operator < [range > 64 bit]
operator == [range > 64 bit]
----------------------------------------------------
seller_received():
=> min(seller_desired, buyer_forsale)
buyer_received():
=> seller_received * seller_original_forsale / seller_original_desired // round up
seller_updated_forsale():
=> seller_forsale - buyer_received
buyer_updated_forsale():
=> buyer_forsale - seller_received
seller_updated_desired():
=> seller_updated_forsale * seller_original_desired / seller_original_forsale // round up
buyer_updated_desired():
=> buyer_updated_forsale * buyer_original_desired / buyer_original_forsale // round up
operator <():
=> seller_original_desired * buyer_original_forsale < buyer_original_desired * seller_original_forsale
operator ==():
=> seller_original_desired * buyer_original_forsale == buyer_original_desired * seller_original_forsale
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment