changes
This commit is contained in:
28
demo.log
28
demo.log
@@ -1,13 +1,15 @@
|
||||
AT Teppy
|
||||
AT Luni
|
||||
AT Hamza
|
||||
AA USD
|
||||
AA BTC
|
||||
SR 1 51EB851 28F5C28 33333333 28F5C28
|
||||
AF 1 1 500000000
|
||||
AF 2 0 3D09000000000
|
||||
AF 3 0 3D09000000000
|
||||
SR 0 28F5C28 0 19999999 28F5C28
|
||||
OR 1 1 100000000 0 C35000000000
|
||||
OR 2 0 9C4000000000 1 100000000
|
||||
OR 3 0 753000000000 1 80000000
|
||||
AT Teppy ; addtrader Teppy
|
||||
AT Luni ; addtrader Luni
|
||||
AT Hamza ; addtrader Hamza
|
||||
AA USD ; addasset USD
|
||||
AA BTC ; addasset BTC
|
||||
SR 0 51EB851 28F5C28 7AE147A 28F5C28 ; setroyalty USD 0.02 0.01 0.03 0.01
|
||||
SR 1 51EB851 28F5C28 7AE147A 28F5C28 ; setroyalty BTC 0.02 0.01 0.03 0.01
|
||||
AF 1 1 500000000 ; addfunds Teppy 5 BTC
|
||||
AF 2 0 186A000000000 ; addfunds Luni 100000 USD
|
||||
AF 3 0 186A000000000 ; addfunds Hamza 100000 USD
|
||||
OR 1 1 200000000 0 186A000000000 ; [login Teppy] order 2 BTC 100000 USD
|
||||
OR 2 0 753000000000 1 80000000 ; [login Luni] order 30000 USD 0.5 BTC
|
||||
OR 2 0 4E2000000000 1 80000000 ; [login Luni] order 20000 USD 0.5 BTC
|
||||
OR 2 0 55F000000000 1 80000000
|
||||
OR 2 1 40000000 0 35B600000000
|
||||
|
||||
10
src/main.rs
10
src/main.rs
@@ -483,12 +483,12 @@ impl Market {
|
||||
for (ap,pq) in &self.orders {
|
||||
println!("Orders selling {} to buy {}:",self.number_to_name(ap.0),self.number_to_name(ap.1));
|
||||
let mut sorted=pq.v.clone();
|
||||
sorted.sort_by(|a,b| { (a.sell_qty/a.buy_qty).cmp(&(b.sell_qty/b.buy_qty)) });
|
||||
sorted.sort_by(|a,b| { (b.sell_qty/b.buy_qty).cmp(&(a.sell_qty/a.buy_qty)) });
|
||||
for off in sorted.iter() {
|
||||
let rt=self.royalties.get_mut(&ap.1).unwrap();
|
||||
let indexr=rt.order_finder.get(&off.order_id).unwrap();
|
||||
let royalty_amt=rt.get_royalty(*indexr);
|
||||
println!(" {} @ {} ({}) OrderID: {} Royalties Accumulated: {} Royalties Offered {} Commissions Offered: {}",
|
||||
println!(" {} @ {} ({}) OrderID: {} Accumulated: {} Royalties {} Commissions: {}",
|
||||
off.sell_remain, // off.buy_qty*off.sell_remain/off.sell_qty,
|
||||
(off.buy_qty/off.sell_qty).fmt_recip(),
|
||||
self.traders[off.owner as usize].name,
|
||||
@@ -532,6 +532,7 @@ impl Market {
|
||||
let reader=io::BufReader::new(f.unwrap());
|
||||
for line in reader.lines() {
|
||||
if let Ok(line) = line {
|
||||
let line=clean_replay(&line);
|
||||
let cmd=Command::deserialize(line);
|
||||
if let Command::NOP(comment)=cmd { println!("{}",comment); }
|
||||
else {
|
||||
@@ -957,6 +958,11 @@ enum Command {
|
||||
|
||||
fn clean(s: &str) -> String { s.to_string() }
|
||||
|
||||
fn clean_replay(input: &str) -> String {
|
||||
let before_semicolon = input.split(';').next().unwrap_or(""); // Split on semicolon; take first chunk (before semicolon), or "" if none
|
||||
before_semicolon.trim_end().to_string() // Trim trailing whitespace, then convert to owned String
|
||||
}
|
||||
|
||||
impl Command {
|
||||
fn serialize(&self) -> String {
|
||||
match self {
|
||||
|
||||
Reference in New Issue
Block a user