@@ -42,7 +42,9 @@ fn main() {
4242 let api = GetInfo2Builder :: new ( )
4343 . access_key ( access_key. clone ( ) )
4444 . finalize ( ) ;
45- println ! ( "{}" , api. exec( ) . unwrap( ) ) ;
45+ for ( coin, amount) in api. exec ( ) . unwrap ( ) . funds . iter ( ) {
46+ println ! ( "coin: {} amount: {}" , coin, amount) ;
47+ }
4648
4749 let api = TradeBuilder :: new ( )
4850 . access_key ( access_key. clone ( ) )
@@ -51,26 +53,50 @@ fn main() {
5153 . price ( 1.0 )
5254 . amount ( 0.1 )
5355 . finalize ( ) ;
54- match api. exec ( ) {
55- Ok ( res) => {
56- println ! ( "{}" , res) ;
57- let json: Value = serde_json:: from_str ( res. as_str ( ) ) . unwrap ( ) ;
58- let order_id = json[ "return" ] [ "order_id" ] . as_u64 ( ) . unwrap ( ) ;
56+ match api. exec ( )
57+ . and_then ( |res| {
58+ println ! (
59+ "received: {}, remains: {}, order_id: {}" ,
60+ res. received,
61+ res. remains,
62+ res. order_id
63+ ) ;
64+ if res. order_id == 0 {
65+ panic ! ( "Complete trade." ) ;
66+ }
67+ Ok ( res. order_id )
68+ } )
69+ . and_then ( |order_id| {
5970 let api = CancelOrderBuilder :: new ( )
6071 . access_key ( access_key. clone ( ) )
6172 . order_id ( order_id)
6273 . currency_pair ( Some ( "zaif_jpy" . to_string ( ) ) )
6374 . finalize ( ) ;
6475 let wait_time = time:: Duration :: from_secs ( 5 ) ;
6576 thread:: sleep ( wait_time) ;
66- println ! ( "{}" , api. exec( ) . unwrap( ) ) ;
67- }
68- _ => return ,
77+ api. exec ( )
78+ } )
79+ . and_then ( |res| {
80+ println ! ( "Cancel order_id: {}" , res. order_id) ;
81+ Ok ( ( ) )
82+ } ) {
83+
84+ Ok ( _) => println ! ( "Complete trade and cancel" ) ,
85+ Err ( e) => println ! ( "Error: {}" , e) ,
6986 }
7087
7188 let api = ActiveOrdersBuilder :: new ( )
7289 . access_key ( access_key. clone ( ) )
7390 . currency_pair ( Some ( "zaif_jpy" . to_string ( ) ) )
7491 . finalize ( ) ;
75- println ! ( "{}" , api. exec( ) . unwrap( ) ) ;
92+ for ( order_id, order) in api. exec ( ) . unwrap ( ) . iter ( ) {
93+ println ! (
94+ "order_id: {}, currency_pair: {}, action: {}, amount: {}, price: {}" ,
95+ order_id,
96+ order. currency_pair,
97+ order. action,
98+ order. amount,
99+ order. price
100+ ) ;
101+ }
76102}
0 commit comments