void free (void *p) { if (!real_malloc){ /* for glibc, normally real_malloc should be already initialized */ lmdbg_startup (); } if (log_enabled){ disable_logging (); ++alloc_count; (*real_free) (p); if (p) fprintf (log_fd, "free ( %p ) num: %u\n", p, alloc_count); else fprintf (log_fd, "free ( NULL ) num: %u\n", alloc_count); log_stacktrace (); enable_logging (); }else{ (*real_free) (p); } }
/* On glibc-based systems lmdbg doesn't work with calloc */ void * calloc (size_t number, size_t size) { void *p; if (!real_malloc){ /* for glibc, normally real_malloc should be already initialized */ lmdbg_startup (); } if (log_enabled){ disable_logging (); ++alloc_count; p = (*real_calloc) (number, size); if (p) fprintf (log_fd, "calloc ( %u , %u ) --> %p num: %u\n", (unsigned) number, (unsigned) size, p, alloc_count); else fprintf (log_fd, "calloc ( %u , %u ) --> NULL num: %u\n", (unsigned) number, (unsigned) size, alloc_count); log_stacktrace (); enable_logging (); return p; }else{ return (*real_calloc) (number, size); } }
void * memalign (size_t align, size_t size) { void *p; if (!real_malloc){ /* for glibc, normally real_malloc should be already initialized */ lmdbg_startup (); } if (log_enabled){ disable_logging (); ++alloc_count; p = (*real_memalign) (align, size); fprintf (log_fd, "memalign ( %u , %u ) --> %p num: %u\n", (unsigned) align, (unsigned) size, p, alloc_count); log_stacktrace (); enable_logging (); return p; }else{ return (*real_memalign) (align, size); } }
int posix_memalign (void **memptr, size_t align, size_t size) { int ret; if (!real_malloc){ /* for glibc, normally real_malloc should be already initialized */ lmdbg_startup (); } if (log_enabled){ disable_logging (); ++alloc_count; ret = (*real_posix_memalign) (memptr, align, size); if (!ret) fprintf (log_fd, "posix_memalign ( %u , %u ) --> %p num: %u\n", (unsigned) align, (unsigned) size, *memptr, alloc_count); else fprintf (log_fd, "posix_memalign ( %u , %u ) --> NULL num: %u\n", (unsigned) align, (unsigned) size, alloc_count); log_stacktrace (); enable_logging (); return ret; }else{ return (*real_posix_memalign) (memptr, align, size); } }
static int toggle_Logging(MENU_ARGS) { if (log_fp == 0) enable_logging(); else log_disabled = !log_disabled; return MENU_NOHOLD; }
static void parse_options( int argc, char **argv, Options_t *opts ) { int c; opterr = 0; memset( opts, 0, sizeof(*opts) ); opts->recv_count = -1; opts->timeout = -1; addresses_init( &opts->subscriptions); while ((c = getopt(argc, argv, "a:c:b:w:t:e:RW:F:VN:X:T:C:K:P:")) != -1) { switch (c) { case 'a': { // TODO: multiple addresses? char *comma = strchr(optarg, ','); check(comma == 0, "multiple addresses not implemented"); check(opts->subscriptions.count == 0, "multiple addresses not implemented"); addresses_merge( &opts->subscriptions, optarg ); } break; case 'c': if (sscanf( optarg, "%" SCNu64, &opts->msg_count ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 't': if (sscanf( optarg, "%d", &opts->timeout ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } if (opts->timeout > 0) opts->timeout *= 1000; break; case 'R': opts->reply = 1; break; case 'V': enable_logging(); break; case 'X': opts->ready_text = optarg; break; default: usage(1); } } if (opts->subscriptions.count == 0) addresses_add( &opts->subscriptions, "amqp://~0.0.0.0" ); }
static void parse_options( int argc, char **argv, Options_t *opts ) { int c; opterr = 0; memset( opts, 0, sizeof(*opts) ); opts->timeout = 5; opts->retry = 3; while ((c = getopt(argc, argv, "a:s:g:t:r:l:R:VX")) != -1) { switch (c) { case 'a': opts->address = optarg; break; case 's': opts->new_fortune = optarg; break; case 'g': opts->gateway_addr = optarg; break; case 't': if (sscanf( optarg, "%d", &opts->timeout ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'r': opts->reply_to = optarg; break; case 'l': if (sscanf( optarg, "%u", &opts->ttl ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'R': if (sscanf( optarg, "%u", &opts->retry ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'V': enable_logging(); break; case 'X': opts->send_bad_msg = 1; break; default: usage(1); } } if (!opts->address) opts->address = "amqp://0.0.0.0"; if (opts->timeout > 0) opts->timeout *= 1000; }
int main(int argc, char **argv) #endif { if(SIG_ERR == signal(SIGSEGV, handle_signal)) { perror(argv[0]); exit(EXIT_FAILURE); } if(SIG_ERR == signal(SIGABRT, handle_signal)) { perror(argv[0]); exit(EXIT_FAILURE); } enable_logging(); set_log_level_from_env(); SRunner *runner = srunner_create(master_suite()); srunner_add_suite(runner, loader_suite()); srunner_add_suite(runner, jsonpath_suite()); srunner_add_suite(runner, model_suite()); srunner_add_suite(runner, nodelist_suite()); srunner_add_suite(runner, evaluator_suite()); switch(argc) { case 1: srunner_run_all(runner, CK_NORMAL); break; #ifndef CHECK_0_9_8 case 2: srunner_run(runner, argv[1], NULL, CK_NORMAL); break; case 3: srunner_run(runner, argv[1], argv[2], CK_NORMAL); break; #endif } int failures = srunner_ntests_failed(runner); srunner_free(runner); return 0 == failures ? EXIT_SUCCESS : EXIT_FAILURE; }
static void lmdbg_startup (void) { if (real_malloc){ /* already initialized */ return; } init_fun_ptrs (); init_log (); init_pid (); init_st_range (); print_sections_map (); print_progname (); init_environment (); init_enabling_timeout (); if (log_filename != NULL && enabling_timeout == 0) enable_logging (); else if (enabling_timeout == -1) set_sigusr1_handler (); }
void * realloc (void *p, size_t s) { void *np; char np_buf [100]; const char *np_ptr = "NULL"; if (!real_malloc){ /* for glibc, normally real_malloc should be already initialized */ lmdbg_startup (); } if (log_enabled){ disable_logging (); ++alloc_count; np = (*real_realloc) (p, s); if (np){ snprintf (np_buf, sizeof (np_buf), "%p", np); np_ptr = np_buf; } if (p){ fprintf (log_fd, "realloc ( %p , %u ) --> %s num: %u\n", p, (unsigned) s, np_ptr, alloc_count); }else{ fprintf (log_fd, "realloc ( NULL , %u ) --> %s num: %u\n", (unsigned) s, np_ptr, alloc_count); } log_stacktrace (); enable_logging (); return np; }else{ return (*real_realloc) (p, s); } }
BOOST_FIXTURE_TEST_CASE( basic_commands, chain_fixture ) { try { // disable_logging(); enable_logging(); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_list_my_accounts" ); exec( clienta, "wallet_account_balance" ); exec( clienta, "unlock 999999999 masterpassword" ); exec( clienta, "scan 0 100" ); exec( clienta, "wallet_account_balance" ); exec( clienta, "close" ); exec( clienta, "open walleta" ); exec( clienta, "unlock 99999999 masterpassword" ); exec( clienta, "wallet_account_balance" ); exec( clienta, "wallet_account_balance delegate31" ); exec( clienta, "wallet_delegate_set_block_production delegate31 true" ); exec( clienta, "wallet_delegate_set_block_production delegate33 true" ); exec(clienta, "wallet_set_transaction_scanning true"); exec( clienta, "wallet_account_set_approval delegate33 true" ); exec( clienta, "wallet_account_set_approval delegate34 true" ); exec( clienta, "wallet_account_set_approval delegate35 true" ); exec( clienta, "wallet_account_set_approval delegate36 true" ); exec( clienta, "wallet_account_set_approval delegate37 true" ); exec( clienta, "wallet_account_set_approval delegate38 true" ); exec( clienta, "wallet_account_set_approval delegate39 true" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "info" ); exec( clientb, "wallet_set_transaction_scanning true"); exec( clientb, "wallet_account_set_approval delegate23 true" ); exec( clientb, "wallet_account_set_approval delegate24 true" ); exec( clientb, "wallet_account_set_approval delegate25 true" ); exec( clientb, "wallet_account_set_approval delegate26 true" ); exec( clientb, "wallet_account_set_approval delegate27 true" ); exec( clientb, "wallet_account_set_approval delegate28 true" ); exec( clientb, "wallet_account_set_approval delegate29 true" ); exec( clientb, "wallet_delegate_set_block_production delegate23 true" ); exec( clientb, "wallet_delegate_set_block_production delegate24 true" ); exec( clientb, "wallet_list_my_accounts" ); exec( clientb, "wallet_account_balance" ); exec( clientb, "wallet_account_balance delegate30" ); exec( clientb, "unlock 999999999 masterpassword" ); exec( clientb, "wallet_delegate_set_block_production delegate30 true" ); exec( clientb, "wallet_delegate_set_block_production delegate32 true" ); exec(clientb, "wallet_set_transaction_scanning true"); exec(clienta, "wallet_set_transaction_scanning true"); exec( clienta, "wallet_account_create b-account" ); exec( clienta, "wallet_account_register b-account delegate33" ); produce_block(clienta); produce_block(clientb); exec( clientb, "balance delegate30"); //wallet_asset_create <symbol> <asset_name> <issuer_name> <description> <maximum_share_supply> <precision> [public_data] [is_market_issued] exec( clientb, "wallet_asset_create USD BitUSD delegate30 \"paper bucks\" 100000000 10000 null true" ); exec( clientb, "help" ); produce_block(clientb); exec(clientb, "wallet_publish_price_feed delegate0 1 USD" ); //[[\"USD\",1]]" ); exec(clientb, "wallet_publish_price_feed delegate2 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate4 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate6 1 USD" ); return; exec(clientb, "wallet_publish_price_feed delegate8 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate10 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate12 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate14 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate16 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate18 1 USD" ); produce_block(clienta); exec(clientb, "wallet_publish_price_feed delegate20 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate22 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate24 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate26 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate28 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate30 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate32 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate34 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate36 1 USD" ); produce_block(clientb); exec(clientb, "wallet_publish_price_feed delegate38 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate40 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate42 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate44 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate46 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate48 1 USD" ); produce_block(clienta); exec(clientb, "wallet_publish_price_feed delegate50 1 USD" ); exec(clientb, "wallet_publish_price_feed delegate52 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate1 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate3 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate5 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate7 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate9 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate11 1 USD" ); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate13 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate15 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate17 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate19 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate21 1 USD" ); produce_block(clienta); exec(clienta, "wallet_publish_price_feed delegate23 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate25 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate27 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate29 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate31 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate33 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate35 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate37 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate39 1 USD" ); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate41 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate43 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate45 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate47 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate49 1 USD" ); exec(clienta, "wallet_publish_price_feed delegate51 1 USD" ); produce_block(clienta); // wallet_transfer_from_with_escrow <amount_to_transfer> <asset_symbol> <paying_account_name> <from_account_name> <to_account_name> <escrow_account_name> <agreement> <memo> exec( clientb, "wallet_transfer_from_with_escrow 1000 XTS delegate24 delegate24 b-account delegate36 \"5100000000000000000000000000000000000000000000000000000000000005\" \"my memo\"" ); produce_block(clientb); produce_block(clienta); exec( clientb, "wallet_escrow_summary delegate24" ); exec( clienta, "wallet_escrow_summary b-account" ); exec( clienta, "wallet_escrow_summary delegate36" ); exec( clienta, "wallet_escrow_summary delegate29" ); exec( clienta, "history" ); exec( clientb, "history" ); exec( clientb, "balance delegate24" ); exec( clienta, "balance b-account" ); exec( clientb, "wallet_release_escrow delegate24 XTS6AwRFEQ5nu8d2B14qVujPAJDN73bTKgGb sender 0 1111111" ); //exec( clientb, "wallet_release_escrow delegate24 XTS3UQU85qXeCa7hAP4ps118jSN3cAMSj2bx sender 0 1111111" ); produce_block(clientb); exec( clientb, "wallet_escrow_summary delegate24" ); exec( clienta, "wallet_escrow_summary b-account" ); exec( clientb, "balance delegate24" ); exec( clienta, "balance b-account" ); produce_block(clientb); exec( clienta, "wallet_release_escrow b-account XTS6AwRFEQ5nu8d2B14qVujPAJDN73bTKgGb receiver 3333333 0" ); produce_block(clienta); exec( clientb, "wallet_escrow_summary delegate24" ); exec( clienta, "wallet_escrow_summary b-account" ); exec( clientb, "balance delegate24" ); // wallet_market_submit_relative_bid <from_account_name> <quantity> <quantity_symbol> <relative_price> <base_symbol> [limit_price] exec( clienta, "balance b-account" ); exec( clienta, "blockchain_list_assets" ); produce_block(clienta); exec(clienta, "balance" ); exec(clientb, "balance" ); exec( clienta, "wallet_release_escrow delegate36 XTS6AwRFEQ5nu8d2B14qVujPAJDN73bTKgGb receiver 1234 4567" ); produce_block(clienta); exec( clientb, "wallet_escrow_summary delegate24" ); exec( clienta, "wallet_escrow_summary b-account" ); return; exec( clienta, "wallet_market_submit_relative_ask b-account 1 XTS .0001 USD .02" ); exec( clienta, "wallet_market_submit_relative_ask b-account 4 XTS .0005 USD 1.3" ); produce_block(clientb); produce_block(clientb); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clienta, "blockchain_market_list_asks USD XTS" ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clienta, "blockchain_market_list_asks USD XTS" ); exec( clienta, "blockchain_market_list_bids USD XTS" ); exec( clientb, "short delegate30 200 XTS 2 USD 1.01" ); exec( clientb, "short delegate30 300 XTS 1.5 USD .99" ); exec( clientb, "short delegate32 100 XTS 0.45 USD " ); exec( clienta, "ask delegate31 100 XTS .1997 USD" ); exec( clienta, "ask delegate31 200 XTS .9998 USD" ); exec( clienta, "ask delegate31 300 XTS .9999 USD" ); produce_block(clientb); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clienta, "blockchain_market_list_shorts USD"); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clienta, "blockchain_market_list_shorts USD"); exec(clienta, "balance delegate31" ); exec(clientb, "balance delegate30" ); exec(clientb, "balance delegate32" ); exec( clienta, "wallet_market_submit_relative_bid delegate31 1 XTS .0002 USD 2" ); exec( clienta, "wallet_market_submit_relative_bid delegate31 3 XTS .0006 USD .7" ); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clientb, "blockchain_market_list_bids USD XTS" ); return; exec(clienta, "blockchain_market_order_book USD XTS"); exec(clienta, "blockchain_market_list_shorts USD"); exec(clienta, "blockchain_market_list_covers USD"); exec( clienta, "ask delegate31 10 XTS .98 USD" ); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clienta, "balance" ); exec( clienta, "bid delegate31 40 XTS .67 USD" ); exec( clienta, "bid delegate31 50 XTS .68 USD" ); exec( clienta, "bid delegate31 37 XTS .741 USD" ); produce_block(clientb); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clienta, "blockchain_market_order_history USD XTS"); exec(clientb, "wallet_publish_price_feed delegate0 .74 USD" ); //[[\"USD\",1]]" ); exec(clientb, "wallet_publish_price_feed delegate2 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate4 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate6 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate8 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate10 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate12 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate14 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate16 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate18 .74 USD" ); produce_block(clienta); exec(clientb, "wallet_publish_price_feed delegate20 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate22 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate24 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate26 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate28 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate30 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate32 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate34 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate36 .74 USD" ); produce_block(clientb); exec(clientb, "wallet_publish_price_feed delegate38 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate40 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate42 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate44 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate46 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate48 .74 USD" ); produce_block(clienta); exec(clientb, "wallet_publish_price_feed delegate50 .74 USD" ); exec(clientb, "wallet_publish_price_feed delegate52 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate1 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate3 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate5 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate7 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate9 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate11 .74 USD" ); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate13 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate15 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate17 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate19 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate21 .74 USD" ); produce_block(clienta); exec(clienta, "wallet_publish_price_feed delegate23 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate25 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate27 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate29 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate31 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate33 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate35 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate37 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate39 .74 USD" ); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate41 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate43 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate45 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate47 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate49 .74 USD" ); exec(clienta, "wallet_publish_price_feed delegate51 .74 USD" ); produce_block(clientb); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clientb); exec(clienta, "blockchain_market_order_history USD XTS"); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clienta, "blockchain_get_asset USD XTS"); exec(clienta, "blockchain_calculate_debt USD"); exec(clienta, "blockchain_calculate_supply USD"); exec(clienta, "balance" ); exec(clientb, "balance" ); exit(1); return; elog( "=====================================================================\n" ); elog( "=====================================================================\n" ); elog( "=====================================================================\n" ); elog( "=====================================================================\n" ); elog( "=====================================================================\n" ); exec(clientb, "blockchain_market_order_book USD XTS"); exec( clienta, "short delegate35 4000 USD 30" ); exec( clienta, "short delegate37 5000 USD 40" ); exec( clienta, "short delegate39 4000 USD 50" ); exec( clientb, "ask delegate38 5000 XTS .739 USD" ); exec( clientb, "ask delegate40 5000 XTS .74 USD" ); exec( clientb, "ask delegate42 5000 XTS .741 USD" ); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clientb); exec(clienta, "balance"); exec(clientb, "balance"); exec(clienta, "blockchain_get_asset USD"); exec(clienta, "blockchain_market_order_book USD XTS"); return; //Next line is intended to fail due to overly-high price exec( clientb, "short delegate32 300 1000 USD" ); exec( clienta, "ask delegate31 100 XTS .95 USD" ); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); exec( clienta, "ask delegate31 1000000 XTS .96 USD" ); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); exec( clienta, "ask delegate31 1000000 XTS 1.3 USD" ); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); exec( clienta, "ask delegate31 1000000 XTS 1.3 USD" ); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clientb, "wallet_market_order_list USD XTS"); exec(clientb, "wallet_account_transaction_history delegate30"); exec(clientb, "wallet_account_transaction_history"); exec(clienta, "wallet_market_order_list USD XTS"); exec(clienta, "wallet_account_transaction_history delegate31"); exec(clienta, "wallet_account_transaction_history"); exec(clienta, "balance"); exec(clientb, "balance"); exec( clientb, "short delegate32 300 .69 USD" ); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clientb); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clienta, "wallet_account_transaction_history"); exec(clientb, "wallet_account_transaction_history"); exec(clientb, "wallet_market_order_list USD XTS"); // TODO: this should filter by account exec(clientb, "wallet_market_cancel_order XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7"); produce_block(clientb); exec(clientb, "wallet_account_transaction_history delegate32"); exec(clienta, "balance" ); exec(clientb, "balance"); exec(clientb, "wallet_account_transaction_history"); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clienta, "wallet_transfer 95 USD delegate31 delegate32"); produce_block(clienta); produce_block(clienta); exec(clienta, "wallet_account_transaction_history"); exec(clientb, "wallet_account_transaction_history"); exec(clientb, "balance" ); exec(clientb, "wallet_market_cover delegate32 5 USD XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7" ); produce_block(clientb); produce_block(clientb); exec(clientb, "balance" ); exec(clientb, "wallet_market_cover delegate32 90 USD XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7" ); exec( clienta, "ask delegate31 100 XTS .001 USD" ); produce_block(clientb); exec(clientb, "wallet_account_transaction_history delegate32"); produce_block(clientb); exec(clienta, "wallet_account_transaction_history"); exec(clientb, "wallet_account_transaction_history delegate32"); exec(clientb, "wallet_market_order_list USD XTS"); // TODO: this should filter by account exec(clientb, "balance" ); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clientb, "wallet_market_cancel_order XTS7zGp53nKGbxm6ASmfJrkDyYXmQ9qH6WtE"); produce_block(clientb); exec(clientb, "balance" ); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clientb, "wallet_market_order_list USD XTS"); exec(clientb, "wallet_account_transaction_history delegate32"); return; exec(clienta, "wallet_account_transaction_history delegate31"); exec(clienta, "balance" ); exec( clientb, "wallet_account_create b-account" ); exec( clientb, "wallet_account_balance b-account" ); exec( clientb, "wallet_account_register b-account delegate30 null 100" ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_list_my_accounts" ); exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 75" ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_list_my_accounts" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_transfer 33 XTS delegate31 b-account first-memo" ); exec( clienta, "wallet_account_transaction_history delegate31" ); exec( clienta, "wallet_account_transaction_history b-account" ); exec( clienta, "wallet_account_transaction_history" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_account_transaction_history b-account" ); produce_block( clientb ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_account_transaction_history delegate31" ); exec( clienta, "wallet_account_transaction_history b-account" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_account_transaction_history b-account" ); exec( clientb, "wallet_account_create c-account" ); exec( clientb, "wallet_transfer 10 XTS b-account c-account to-me" ); exec( clientb, "wallet_account_transaction_history b-account" ); exec( clientb, "wallet_account_transaction_history c-account" ); produce_block( clientb ); exec( clientb, "wallet_account_transaction_history c-account" ); exec( clientb, "blockchain_list_delegates" ); exec( clientb, "wallet_account_set_approval b-account true" ); exec( clientb, "wallet_list_my_accounts" ); exec( clientb, "balance" ); exec( clientb, "wallet_transfer 100000 XTS delegate32 c-account to-me" ); exec( clientb, "wallet_transfer 100000 XTS delegate30 c-account to-me" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_account_set_approval b-account true" ); // TODO: this should throw an exception from the wallet regarding delegate_vote_limit, but it produces // the transaction anyway. // TODO: before fixing the wallet production side to include multiple outputs and spread the vote, // the transaction history needs to show the transaction as an 'error' rather than 'pending' and // properly display the reason for the user. // TODO: provide a way to cancel transactions that are pending. exec( clienta, "wallet_transfer 100000 XTS delegate31 b-account to-b" ); wlog( "------------------ CLIENT B -----------------------------------" ); produce_block( clientb ); exec( clientb, "balance" ); exec( clientb, "wallet_account_transaction_history c-account" ); exec( clientb, "blockchain_list_delegates" ); exec( clientb, "wallet_asset_create USD Dollar b-account \"paper bucks\" null 1000000000 1000" ); exec( clientb, "wallet_asset_create GLD Gold b-account \"gram o gold\" null 1000000000 1000" ); produce_block( clientb ); exec( clientb, "blockchain_list_assets" ); exec( clientb, "wallet_asset_issue 20000 USD c-account \"iou\"" ); exec( clientb, "wallet_asset_issue 1000 GLD c-account \"gld\"" ); exec( clientb, "wallet_account_transaction_history b-account" ); exec( clientb, "wallet_account_transaction_history c-account" ); produce_block( clientb ); exec( clientb, "wallet_account_transaction_history b-account" ); exec( clientb, "wallet_account_transaction_history c-account" ); exec( clientb, "wallet_transfer 20 USD c-account delegate31 c-d31" ); exec( clientb, "wallet_transfer 20 GLD c-account delegate31 c-d31" ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_account_transaction_history c-account" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_account_transaction_history delegate31" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "balance" ); exec( clientb, "bid c-account 120 XTS 5.50 USD" ); exec( clientb, "bid c-account 20 XTS 6.56 USD" ); produce_block( clientb ); exec( clientb, "bid c-account 10 XTS 7.76 USD" ); produce_block( clientb ); exec( clientb, "bid c-account 40 XTS 2.50 USD" ); produce_block( clientb ); exec( clientb, "bid c-account 120 XTS 4.50 GLD" ); exec( clientb, "bid c-account 40 XTS 2.50 GLD" ); produce_block( clientb ); exec( clientb, "wallet_account_transaction_history c-account" ); exec( clientb, "balance" ); exec( clientb, "blockchain_market_list_bids USD XTS" ); exec( clientb, "wallet_market_order_list USD XTS" ); auto result = clientb->wallet_market_order_list( "USD", "XTS" ); exec( clientb, "wallet_market_cancel_order " + string( result.begin()->first ) ); exec( clienta, "blockchain_market_order_book USD XTS" ); produce_block( clientb ); exec( clientb, "wallet_market_order_list USD XTS" ); exec( clientb, "wallet_account_transaction_history" ); exec( clientb, "balance" ); result = clientb->wallet_market_order_list( "USD", "XTS" ); exec( clientb, "wallet_market_cancel_order " + string( result.begin()->first ) ); produce_block( clientb ); exec( clientb, "blockchain_market_list_bids USD XTS" ); exec( clientb, "wallet_account_transaction_history" ); exec( clientb, "balance" ); exec( clientb, "wallet_change_passphrase \"newmasterpassword\"" ); exec( clientb, "close" ); exec( clientb, "open walletb" ); exec( clientb, "unlock 99999999 newmasterpassword" ); exec( clientb, "blockchain_get_transaction d387d39ca1" ); exec( clientb, "wallet_transfer 20 USD c-account delegate31 c-d31" ); exec( clientb, "blockchain_list_pending_transactions" ); enable_logging(); exec( clientb, "wallet_market_order_list USD XTS" ); exec( clientb, "wallet_account_transaction_history" ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); wlog( "------------------ CLIENT B -----------------------------------" ); disable_logging(); for( uint32_t i = 0; i < 100; ++i ) { // exec( clientb, "wallet_transfer 10 XTS delegate32 delegate32 " ); produce_block( clientb ); } exec( clientb, "blockchain_get_account delegate32" ); exec( clientb, "wallet_delegate_withdraw_pay delegate32 c-account .01234" ); produce_block( clientb ); exec( clientb, "wallet_account_transaction_history delegate32" ); exec( clientb, "blockchain_list_delegates" ); exec( clienta, "wallet_account_set_approval delegate33 false" ); exec( clienta, "wallet_account_set_approval delegate34 false" ); exec( clienta, "wallet_account_set_approval delegate35 false" ); exec( clienta, "wallet_account_set_approval delegate36 false" ); exec( clienta, "wallet_account_set_approval delegate37 false" ); exec( clienta, "wallet_account_set_approval delegate38 false" ); exec( clienta, "wallet_account_set_approval delegate39 false" ); exec( clientb, "wallet_account_set_approval delegate23 false" ); exec( clientb, "wallet_account_set_approval delegate24 false" ); exec( clientb, "wallet_account_set_approval delegate25 false" ); exec( clientb, "wallet_account_set_approval delegate26 false" ); exec( clientb, "wallet_account_set_approval delegate27 false" ); exec( clientb, "wallet_account_set_approval delegate28 false" ); exec( clientb, "wallet_account_set_approval delegate29 false" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_account_set_approval delegate44 true" ); exec( clienta, "wallet_account_set_approval delegate44 true" ); exec( clienta, "wallet_account_set_approval delegate45 true" ); exec( clienta, "wallet_account_set_approval delegate46 true" ); exec( clienta, "wallet_account_set_approval delegate47 true" ); exec( clienta, "wallet_account_set_approval delegate48 true" ); exec( clienta, "wallet_account_set_approval delegate49 true" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_account_set_approval delegate63 true" ); exec( clientb, "wallet_account_set_approval delegate64 true" ); exec( clientb, "wallet_account_set_approval delegate65 true" ); exec( clientb, "wallet_account_set_approval delegate66 true" ); exec( clientb, "wallet_account_set_approval delegate67 true" ); exec( clientb, "wallet_account_set_approval delegate68 true" ); exec( clientb, "wallet_account_set_approval delegate69 true" ); exec( clientb, "balance" ); exec( clienta, "balance" ); exec( clienta, "wallet_transfer 10691976.59801 XTS delegate31 delegate31 change_votes " ); exec( clienta, "wallet_transfer 10801980.09801 XTS delegate33 delegate33 change_votes " ); exec( clientb, "wallet_transfer 9792.18499 XTS b-account b-account change_votes " ); exec( clientb, "wallet_transfer 20000.40123 XTS c-account c-account change_votes " ); exec( clientb, "wallet_transfer 10791970.09801 XTS delegate32 delegate32 change_votes " ); exec( clientb, "wallet_transfer 10791760.18284 XTS delegate30 delegate30 change_votes " ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); exec( clienta, "balance" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "blockchain_list_delegates" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_transfer 10691976.59801 XTS delegate31 delegate31 change_votes " ); exec( clienta, "wallet_transfer 10801980.09801 XTS delegate33 delegate33 change_votes " ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_transfer 9792.18499 XTS b-account b-account change_votes " ); exec( clientb, "wallet_transfer 20000.40123 XTS c-account c-account change_votes " ); exec( clientb, "wallet_transfer 10791970.09801 XTS delegate32 delegate32 change_votes " ); exec( clientb, "wallet_transfer 10791760.18284 XTS delegate30 delegate30 change_votes " ); exec( clientb, "info" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "info" ); enable_logging(); wlog( "FORKING NETWORKS" ); clientb->simulate_disconnect(true); produce_block(clienta); produce_block(clienta); produce_block(clienta); produce_block(clienta); produce_block(clienta); wlog( "------------------ CLIENT B -----------------------------------" ); clientb->simulate_disconnect(false); wlog( "------------------ CLIENT A -----------------------------------" ); clienta->simulate_disconnect(true); wlog( "------------------ CLIENT B -----------------------------------" ); produce_block(clientb); produce_block(clientb); produce_block(clientb); wlog( "------------------ CLIENT A -----------------------------------" ); clienta->simulate_disconnect(false); produce_block(clienta); produce_block(clienta); produce_block(clienta); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "info" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "info" ); wlog( "JOINING NETWORKS" ); for( uint32_t i = 2; i <= clienta->get_chain()->get_head_block_num(); ++i ) { auto b = clienta->get_chain()->get_block( i ); clientb->get_chain()->push_block(b); } wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "info" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "info" ); exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 85" ); exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 65" ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_list_my_accounts" ); exec( clientb, "wallet_market_order_list USD XTS" ); exec( clientb, "blockchain_market_list_bids USD XTS" ); exec( clientb, "ask c-account 120 XTS 5.00 USD" ); exec( clientb, "ask c-account 213 XTS 5.67 USD" ); exec( clientb, "ask c-account 345 XTS 4.56 USD" ); exec( clientb, "ask c-account 120 XTS 8.00 GLD" ); exec( clientb, "ask c-account 213 XTS 7.67 GLD" ); exec( clientb, "ask c-account 345 XTS 6.56 GLD" ); exec( clienta, "blockchain_market_order_book USD XTS" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clienta, "info" ); produce_block( clienta ); exec( clienta, "info" ); exec( clienta, "blockchain_list_market_transactions 127" ); exec( clienta, "blockchain_list_market_transactions 128" ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clientb, "wallet_market_order_list USD XTS" ); exec( clientb, "wallet_account_transaction_history" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clientb, "blockchain_market_list_shorts USD" ); exec( clientb, "wallet_market_order_list USD XTS" ); produce_block( clienta ); exec( clientb, "wallet_account_transaction_history" ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clienta, "blockchain_market_order_book GLD XTS" ); exec( clientb, "balance" ); exec( clientb, "wallet_asset_create USD BitUSD delegate30 \"paper bucks\" null 1000000000 1000 true" ); produce_block( clienta ); exec( clientb, "wallet_account_transaction_history" ); exec( clientb, "short delegate30 3000 5.43 USD" ); exec( clientb, "ask delegate30 400 XTS 5.41 USD" ); exec( clientb, "ask delegate32 800 XTS 4.20 USD" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book USD XTS" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clientb, "wallet_account_transaction_history" ); exec( clienta, "blockchain_market_list_shorts USD" ); exec( clientb, "blockchain_market_list_covers USD" ); exec( clientb, "balance" ); exec( clienta, "wallet_market_order_list USD XTS" ); exec( clientb, "balance" ); exec( clientb, "ask delegate30 3 XTS 5.42 USD" ); produce_block( clienta ); exec( clientb, "wallet_account_transaction_history" ); exec( clientb, "balance" ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clientb, "balance" ); exec( clientb, "short c-account 50 3.11 USD" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clientb, "balance" ); exec( clienta, "wallet_market_order_list USD XTS" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clientb, "balance" ); exec( clienta, "wallet_market_order_list USD XTS" ); exec( clientb, "balance" ); exec( clientb, "wallet_market_order_list USD XTS" ); exec( clientb, "balance" ); exec( clientb, "cover delegate32 10.1 USD XTSP8ZBZodbzPYh57Z8S4S6x2VqYNXo5MALy" ); produce_block( clienta ); exec( clientb, "wallet_account_transaction_history" ); exec( clientb, "wallet_market_order_list USD XTS" ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clientb, "balance" ); exec( clientb, "cover delegate32 19.899 USD XTSP8ZBZodbzPYh57Z8S4S6x2VqYNXo5MALy" ); produce_block( clienta ); exec( clientb, "balance" ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec(clientb, "balance"); exec(clientb, "history"); exec(clientb, "balance b-account"); exec(clientb, "history b-account"); exec(clientb, "balance c-account"); exec(clientb, "history c-account"); } FC_LOG_AND_RETHROW() }
BOOST_FIXTURE_TEST_CASE( basic_commands, chain_fixture ) { try { // disable_logging(); enable_logging(); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_list_my_accounts" ); exec( clienta, "wallet_account_balance" ); exec( clienta, "unlock 999999999 masterpassword" ); exec( clienta, "scan 0 100" ); exec( clienta, "wallet_account_balance" ); exec( clienta, "close" ); exec( clienta, "open walleta" ); exec( clienta, "unlock 99999999 masterpassword" ); exec( clienta, "wallet_account_balance" ); exec( clienta, "wallet_account_balance delegate31" ); exec( clienta, "wallet_delegate_set_block_production delegate31 true" ); exec( clienta, "wallet_delegate_set_block_production delegate33 true" ); exec(clienta, "wallet_set_transaction_scanning true"); exec( clienta, "wallet_set_delegate_trust delegate33 true" ); exec( clienta, "wallet_set_delegate_trust delegate34 true" ); exec( clienta, "wallet_set_delegate_trust delegate35 true" ); exec( clienta, "wallet_set_delegate_trust delegate36 true" ); exec( clienta, "wallet_set_delegate_trust delegate37 true" ); exec( clienta, "wallet_set_delegate_trust delegate38 true" ); exec( clienta, "wallet_set_delegate_trust delegate39 true" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "info" ); exec( clientb, "wallet_set_delegate_trust delegate23 true" ); exec( clientb, "wallet_set_delegate_trust delegate24 true" ); exec( clientb, "wallet_set_delegate_trust delegate25 true" ); exec( clientb, "wallet_set_delegate_trust delegate26 true" ); exec( clientb, "wallet_set_delegate_trust delegate27 true" ); exec( clientb, "wallet_set_delegate_trust delegate28 true" ); exec( clientb, "wallet_set_delegate_trust delegate29 true" ); exec( clientb, "wallet_list_my_accounts" ); exec( clientb, "wallet_account_balance" ); exec( clientb, "wallet_account_balance delegate30" ); exec( clientb, "unlock 999999999 masterpassword" ); exec( clientb, "wallet_delegate_set_block_production delegate30 true" ); exec( clientb, "wallet_delegate_set_block_production delegate32 true" ); exec(clientb, "wallet_set_transaction_scanning true"); exec( clientb, "balance delegate30"); exec( clientb, "wallet_asset_create BUSD BitUSD delegate30 \"paper bucks\" null 1000000000 10000 true" ); produce_block(clientb); exec(clientb, "wallet_publish_price_feed delegate0 1 BUSD" ); //[[\"USD\",1]]" ); exec(clientb, "wallet_publish_price_feed delegate2 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate4 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate6 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate8 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate10 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate12 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate14 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate16 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate18 1 BUSD" ); produce_block(clienta); exec(clientb, "wallet_publish_price_feed delegate20 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate22 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate24 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate26 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate28 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate30 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate32 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate34 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate36 1 BUSD" ); produce_block(clientb); exec(clientb, "wallet_publish_price_feed delegate38 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate40 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate42 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate44 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate46 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate48 1 BUSD" ); produce_block(clienta); exec(clientb, "wallet_publish_price_feed delegate50 1 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate52 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate1 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate3 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate5 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate7 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate9 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate11 1 BUSD" ); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate13 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate15 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate17 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate19 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate21 1 BUSD" ); produce_block(clienta); exec(clienta, "wallet_publish_price_feed delegate23 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate25 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate27 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate29 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate31 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate33 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate35 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate37 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate39 1 BUSD" ); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate41 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate43 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate45 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate47 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate49 1 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate51 1 BUSD" ); produce_block(clienta); exec(clienta, "balance" ); exec(clientb, "balance" ); exec( clientb, "short delegate30 101 BUSD 2 1.01" ); exec( clientb, "short delegate32 102 BUSD 1.01 " ); exec( clientb, "short delegate32 103 BUSD 0.9 " ); exec( clienta, "ask delegate31 100 XTS .09997 BUSD" ); exec( clienta, "ask delegate31 200 XTS .9998 BUSD" ); exec( clienta, "ask delegate31 300 XTS .9999 BUSD" ); produce_block(clientb); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec(clienta, "blockchain_market_list_shorts BUSD"); produce_block(clientb); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec(clienta, "blockchain_market_list_shorts BUSD"); exec(clienta, "blockchain_market_list_covers BUSD"); exec(clienta, "balance" ); exec( clienta, "bid delegate31 40 XTS .67 BUSD" ); exec( clienta, "bid delegate31 50 XTS .68 BUSD" ); produce_block(clientb); produce_block(clientb); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec(clienta, "blockchain_market_list_shorts BUSD"); exec(clienta, "blockchain_market_order_history BUSD XTS"); exec(clientb, "wallet_publish_price_feed delegate0 .74 BUSD" ); //[[\"USD\",1]]" ); exec(clientb, "wallet_publish_price_feed delegate2 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate4 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate6 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate8 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate10 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate12 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate14 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate16 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate18 .74 BUSD" ); produce_block(clienta); exec(clientb, "wallet_publish_price_feed delegate20 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate22 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate24 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate26 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate28 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate30 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate32 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate34 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate36 .74 BUSD" ); produce_block(clientb); exec(clientb, "wallet_publish_price_feed delegate38 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate40 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate42 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate44 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate46 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate48 .74 BUSD" ); produce_block(clienta); exec(clientb, "wallet_publish_price_feed delegate50 .74 BUSD" ); exec(clientb, "wallet_publish_price_feed delegate52 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate1 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate3 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate5 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate7 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate9 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate11 .74 BUSD" ); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate13 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate15 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate17 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate19 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate21 .74 BUSD" ); produce_block(clienta); exec(clienta, "wallet_publish_price_feed delegate23 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate25 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate27 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate29 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate31 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate33 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate35 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate37 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate39 .74 BUSD" ); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate41 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate43 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate45 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate47 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate49 .74 BUSD" ); exec(clienta, "wallet_publish_price_feed delegate51 .74 BUSD" ); produce_block(clientb); exec( clienta, "bid delegate31 37 XTS .69 BUSD" ); produce_block(clientb); produce_block(clientb); exec( clienta, "short delegate35 500 BUSD 30" ); produce_block(clientb); produce_block(clientb); exec(clienta, "balance"); exec(clientb, "balance"); exec(clienta, "blockchain_get_asset BUSD"); exec(clienta, "blockchain_market_order_book BUSD XTS"); return; //Next line is intended to fail due to overly-high price exec( clientb, "short delegate32 300 1000 BUSD" ); exec( clienta, "ask delegate31 100 XTS .95 BUSD" ); produce_block(clientb); exec(clienta, "blockchain_market_order_book BUSD XTS"); produce_block(clienta); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec( clienta, "ask delegate31 1000000 XTS .96 BUSD" ); produce_block(clienta); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec( clienta, "ask delegate31 1000000 XTS 1.3 BUSD" ); produce_block(clienta); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec( clienta, "ask delegate31 1000000 XTS 1.3 BUSD" ); produce_block(clienta); exec(clienta, "blockchain_market_order_book BUSD XTS"); produce_block(clientb); exec(clienta, "blockchain_market_order_book BUSD XTS"); produce_block(clientb); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec(clientb, "wallet_market_order_list BUSD XTS"); exec(clientb, "wallet_account_transaction_history delegate30"); exec(clientb, "wallet_account_transaction_history"); exec(clienta, "wallet_market_order_list BUSD XTS"); exec(clienta, "wallet_account_transaction_history delegate31"); exec(clienta, "wallet_account_transaction_history"); exec(clienta, "balance"); exec(clientb, "balance"); exec( clientb, "short delegate32 300 .69 BUSD" ); produce_block(clientb); exec(clienta, "blockchain_market_order_book BUSD XTS"); produce_block(clientb); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec(clienta, "wallet_account_transaction_history"); exec(clientb, "wallet_account_transaction_history"); exec(clientb, "wallet_market_order_list BUSD XTS"); // TODO: this should filter by account exec(clientb, "wallet_market_cancel_order XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7"); produce_block(clientb); exec(clientb, "wallet_account_transaction_history delegate32"); exec(clienta, "balance" ); exec(clientb, "balance"); exec(clientb, "wallet_account_transaction_history"); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec(clienta, "wallet_transfer 95 BUSD delegate31 delegate32"); produce_block(clienta); produce_block(clienta); exec(clienta, "wallet_account_transaction_history"); exec(clientb, "wallet_account_transaction_history"); exec(clientb, "balance" ); exec(clientb, "wallet_market_cover delegate32 5 BUSD XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7" ); produce_block(clientb); produce_block(clientb); exec(clientb, "balance" ); exec(clientb, "wallet_market_cover delegate32 90 BUSD XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7" ); exec( clienta, "ask delegate31 100 XTS .001 BUSD" ); produce_block(clientb); exec(clientb, "wallet_account_transaction_history delegate32"); produce_block(clientb); exec(clienta, "wallet_account_transaction_history"); exec(clientb, "wallet_account_transaction_history delegate32"); exec(clientb, "wallet_market_order_list BUSD XTS"); // TODO: this should filter by account exec(clientb, "balance" ); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec(clientb, "wallet_market_cancel_order XTS7zGp53nKGbxm6ASmfJrkDyYXmQ9qH6WtE"); produce_block(clientb); exec(clientb, "balance" ); exec(clienta, "blockchain_market_order_book BUSD XTS"); exec(clientb, "wallet_market_order_list BUSD XTS"); exec(clientb, "wallet_account_transaction_history delegate32"); return; exec(clienta, "wallet_account_transaction_history delegate31"); exec(clienta, "balance" ); exec( clientb, "wallet_account_create b-account" ); exec( clientb, "wallet_account_balance b-account" ); exec( clientb, "wallet_account_register b-account delegate30 null 100" ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_list_my_accounts" ); exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 75" ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_list_my_accounts" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_transfer 33 XTS delegate31 b-account first-memo" ); exec( clienta, "wallet_account_transaction_history delegate31" ); exec( clienta, "wallet_account_transaction_history b-account" ); exec( clienta, "wallet_account_transaction_history" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_account_transaction_history b-account" ); produce_block( clientb ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_account_transaction_history delegate31" ); exec( clienta, "wallet_account_transaction_history b-account" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_account_transaction_history b-account" ); exec( clientb, "wallet_account_create c-account" ); exec( clientb, "wallet_transfer 10 XTS b-account c-account to-me" ); exec( clientb, "wallet_account_transaction_history b-account" ); exec( clientb, "wallet_account_transaction_history c-account" ); produce_block( clientb ); exec( clientb, "wallet_account_transaction_history c-account" ); exec( clientb, "blockchain_list_delegates" ); exec( clientb, "wallet_set_delegate_trust b-account true" ); exec( clientb, "wallet_list_my_accounts" ); exec( clientb, "balance" ); exec( clientb, "wallet_transfer 100000 XTS delegate32 c-account to-me" ); exec( clientb, "wallet_transfer 100000 XTS delegate30 c-account to-me" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_set_delegate_trust b-account true" ); // TODO: this should throw an exception from the wallet regarding delegate_vote_limit, but it produces // the transaction anyway. // TODO: before fixing the wallet production side to include multiple outputs and spread the vote, // the transaction history needs to show the transaction as an 'error' rather than 'pending' and // properly display the reason for the user. // TODO: provide a way to cancel transactions that are pending. exec( clienta, "wallet_transfer 100000 XTS delegate31 b-account to-b" ); wlog( "------------------ CLIENT B -----------------------------------" ); produce_block( clientb ); exec( clientb, "balance" ); exec( clientb, "wallet_account_transaction_history c-account" ); exec( clientb, "blockchain_list_delegates" ); exec( clientb, "wallet_asset_create USD Dollar b-account \"paper bucks\" null 1000000000 1000" ); exec( clientb, "wallet_asset_create GLD Gold b-account \"gram o gold\" null 1000000000 1000" ); produce_block( clientb ); exec( clientb, "blockchain_list_assets" ); exec( clientb, "wallet_asset_issue 20000 USD c-account \"iou\"" ); exec( clientb, "wallet_asset_issue 1000 GLD c-account \"gld\"" ); exec( clientb, "wallet_account_transaction_history b-account" ); exec( clientb, "wallet_account_transaction_history c-account" ); produce_block( clientb ); exec( clientb, "wallet_account_transaction_history b-account" ); exec( clientb, "wallet_account_transaction_history c-account" ); exec( clientb, "wallet_transfer 20 USD c-account delegate31 c-d31" ); exec( clientb, "wallet_transfer 20 GLD c-account delegate31 c-d31" ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_account_transaction_history c-account" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_account_transaction_history delegate31" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "balance" ); exec( clientb, "bid c-account 120 XTS 5.50 USD" ); exec( clientb, "bid c-account 20 XTS 6.56 USD" ); produce_block( clientb ); exec( clientb, "bid c-account 10 XTS 7.76 USD" ); produce_block( clientb ); exec( clientb, "bid c-account 40 XTS 2.50 USD" ); produce_block( clientb ); exec( clientb, "bid c-account 120 XTS 4.50 GLD" ); exec( clientb, "bid c-account 40 XTS 2.50 GLD" ); produce_block( clientb ); exec( clientb, "wallet_account_transaction_history c-account" ); exec( clientb, "balance" ); exec( clientb, "blockchain_market_list_bids USD XTS" ); exec( clientb, "wallet_market_order_list USD XTS" ); auto result = clientb->wallet_market_order_list( "USD", "XTS" ); exec( clientb, "wallet_market_cancel_order " + string( result.begin()->first ) ); exec( clienta, "blockchain_market_order_book USD XTS" ); produce_block( clientb ); exec( clientb, "wallet_market_order_list USD XTS" ); exec( clientb, "wallet_account_transaction_history" ); exec( clientb, "balance" ); result = clientb->wallet_market_order_list( "USD", "XTS" ); exec( clientb, "wallet_market_cancel_order " + string( result.begin()->first ) ); produce_block( clientb ); exec( clientb, "blockchain_market_list_bids USD XTS" ); exec( clientb, "wallet_account_transaction_history" ); exec( clientb, "balance" ); exec( clientb, "wallet_change_passphrase newmasterpassword" ); exec( clientb, "close" ); exec( clientb, "open walletb" ); exec( clientb, "unlock 99999999 newmasterpassword" ); exec( clientb, "blockchain_get_transaction d387d39ca1" ); exec( clientb, "wallet_transfer 20 USD c-account delegate31 c-d31" ); exec( clientb, "blockchain_list_pending_transactions" ); enable_logging(); exec( clientb, "wallet_market_order_list USD XTS" ); exec( clientb, "wallet_account_transaction_history" ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); wlog( "------------------ CLIENT B -----------------------------------" ); disable_logging(); for( uint32_t i = 0; i < 100; ++i ) { // exec( clientb, "wallet_transfer 10 XTS delegate32 delegate32 " ); produce_block( clientb ); } exec( clientb, "blockchain_get_account delegate32" ); exec( clientb, "wallet_delegate_withdraw_pay delegate32 c-account .01234" ); produce_block( clientb ); exec( clientb, "wallet_account_transaction_history delegate32" ); exec( clientb, "blockchain_list_delegates" ); exec( clienta, "wallet_set_delegate_trust delegate33 false" ); exec( clienta, "wallet_set_delegate_trust delegate34 false" ); exec( clienta, "wallet_set_delegate_trust delegate35 false" ); exec( clienta, "wallet_set_delegate_trust delegate36 false" ); exec( clienta, "wallet_set_delegate_trust delegate37 false" ); exec( clienta, "wallet_set_delegate_trust delegate38 false" ); exec( clienta, "wallet_set_delegate_trust delegate39 false" ); exec( clientb, "wallet_set_delegate_trust delegate23 false" ); exec( clientb, "wallet_set_delegate_trust delegate24 false" ); exec( clientb, "wallet_set_delegate_trust delegate25 false" ); exec( clientb, "wallet_set_delegate_trust delegate26 false" ); exec( clientb, "wallet_set_delegate_trust delegate27 false" ); exec( clientb, "wallet_set_delegate_trust delegate28 false" ); exec( clientb, "wallet_set_delegate_trust delegate29 false" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_set_delegate_trust delegate44 true" ); exec( clienta, "wallet_set_delegate_trust delegate44 true" ); exec( clienta, "wallet_set_delegate_trust delegate45 true" ); exec( clienta, "wallet_set_delegate_trust delegate46 true" ); exec( clienta, "wallet_set_delegate_trust delegate47 true" ); exec( clienta, "wallet_set_delegate_trust delegate48 true" ); exec( clienta, "wallet_set_delegate_trust delegate49 true" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_set_delegate_trust delegate63 true" ); exec( clientb, "wallet_set_delegate_trust delegate64 true" ); exec( clientb, "wallet_set_delegate_trust delegate65 true" ); exec( clientb, "wallet_set_delegate_trust delegate66 true" ); exec( clientb, "wallet_set_delegate_trust delegate67 true" ); exec( clientb, "wallet_set_delegate_trust delegate68 true" ); exec( clientb, "wallet_set_delegate_trust delegate69 true" ); exec( clientb, "balance" ); exec( clienta, "balance" ); exec( clienta, "wallet_transfer 10691976.59801 XTS delegate31 delegate31 change_votes " ); exec( clienta, "wallet_transfer 10801980.09801 XTS delegate33 delegate33 change_votes " ); exec( clientb, "wallet_transfer 9792.18499 XTS b-account b-account change_votes " ); exec( clientb, "wallet_transfer 20000.40123 XTS c-account c-account change_votes " ); exec( clientb, "wallet_transfer 10791970.09801 XTS delegate32 delegate32 change_votes " ); exec( clientb, "wallet_transfer 10791760.18284 XTS delegate30 delegate30 change_votes " ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); exec( clienta, "balance" ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "blockchain_list_delegates" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "wallet_transfer 10691976.59801 XTS delegate31 delegate31 change_votes " ); exec( clienta, "wallet_transfer 10801980.09801 XTS delegate33 delegate33 change_votes " ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_transfer 9792.18499 XTS b-account b-account change_votes " ); exec( clientb, "wallet_transfer 20000.40123 XTS c-account c-account change_votes " ); exec( clientb, "wallet_transfer 10791970.09801 XTS delegate32 delegate32 change_votes " ); exec( clientb, "wallet_transfer 10791760.18284 XTS delegate30 delegate30 change_votes " ); exec( clientb, "info" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "info" ); enable_logging(); wlog( "FORKING NETWORKS" ); clientb->simulate_disconnect(true); produce_block(clienta); produce_block(clienta); produce_block(clienta); produce_block(clienta); produce_block(clienta); wlog( "------------------ CLIENT B -----------------------------------" ); clientb->simulate_disconnect(false); wlog( "------------------ CLIENT A -----------------------------------" ); clienta->simulate_disconnect(true); wlog( "------------------ CLIENT B -----------------------------------" ); produce_block(clientb); produce_block(clientb); produce_block(clientb); wlog( "------------------ CLIENT A -----------------------------------" ); clienta->simulate_disconnect(false); produce_block(clienta); produce_block(clienta); produce_block(clienta); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "info" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "info" ); wlog( "JOINING NETWORKS" ); for( uint32_t i = 2; i <= clienta->get_chain()->get_head_block_num(); ++i ) { auto b = clienta->get_chain()->get_block( i ); clientb->get_chain()->push_block(b); } wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "info" ); wlog( "------------------ CLIENT A -----------------------------------" ); exec( clienta, "info" ); exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 85" ); exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 65" ); wlog( "------------------ CLIENT A -----------------------------------" ); produce_block( clienta ); wlog( "------------------ CLIENT B -----------------------------------" ); exec( clientb, "wallet_list_my_accounts" ); exec( clientb, "wallet_market_order_list USD XTS" ); exec( clientb, "blockchain_market_list_bids USD XTS" ); exec( clientb, "ask c-account 120 XTS 5.00 USD" ); exec( clientb, "ask c-account 213 XTS 5.67 USD" ); exec( clientb, "ask c-account 345 XTS 4.56 USD" ); exec( clientb, "ask c-account 120 XTS 8.00 GLD" ); exec( clientb, "ask c-account 213 XTS 7.67 GLD" ); exec( clientb, "ask c-account 345 XTS 6.56 GLD" ); exec( clienta, "blockchain_market_order_book USD XTS" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clienta, "info" ); produce_block( clienta ); exec( clienta, "info" ); exec( clienta, "blockchain_list_market_transactions 127" ); exec( clienta, "blockchain_list_market_transactions 128" ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clientb, "wallet_market_order_list USD XTS" ); exec( clientb, "wallet_account_transaction_history" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clientb, "blockchain_market_list_shorts USD" ); exec( clientb, "wallet_market_order_list USD XTS" ); produce_block( clienta ); exec( clientb, "wallet_account_transaction_history" ); exec( clienta, "blockchain_market_order_book USD XTS" ); exec( clienta, "blockchain_market_order_book GLD XTS" ); exec( clientb, "balance" ); exec( clientb, "wallet_asset_create BUSD BitUSD delegate30 \"paper bucks\" null 1000000000 1000 true" ); produce_block( clienta ); exec( clientb, "wallet_account_transaction_history" ); exec( clientb, "short delegate30 3000 5.43 BUSD" ); exec( clientb, "ask delegate30 400 XTS 5.41 BUSD" ); exec( clientb, "ask delegate32 800 XTS 4.20 BUSD" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book BUSD XTS" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book BUSD XTS" ); exec( clientb, "wallet_account_transaction_history" ); exec( clienta, "blockchain_market_list_shorts BUSD" ); exec( clientb, "blockchain_market_list_covers BUSD" ); exec( clientb, "balance" ); exec( clienta, "wallet_market_order_list BUSD XTS" ); exec( clientb, "balance" ); exec( clientb, "ask delegate30 3 XTS 5.42 BUSD" ); produce_block( clienta ); exec( clientb, "wallet_account_transaction_history" ); exec( clientb, "balance" ); exec( clienta, "blockchain_market_order_book BUSD XTS" ); exec( clientb, "balance" ); exec( clientb, "short c-account 50 3.11 BUSD" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book BUSD XTS" ); exec( clientb, "balance" ); exec( clienta, "wallet_market_order_list BUSD XTS" ); produce_block( clienta ); exec( clienta, "blockchain_market_order_book BUSD XTS" ); exec( clientb, "balance" ); exec( clienta, "wallet_market_order_list BUSD XTS" ); exec( clientb, "balance" ); exec( clientb, "wallet_market_order_list BUSD XTS" ); exec( clientb, "balance" ); exec( clientb, "cover delegate32 10.1 BUSD XTSP8ZBZodbzPYh57Z8S4S6x2VqYNXo5MALy" ); produce_block( clienta ); exec( clientb, "wallet_account_transaction_history" ); exec( clientb, "wallet_market_order_list BUSD XTS" ); exec( clienta, "blockchain_market_order_book BUSD XTS" ); exec( clientb, "balance" ); exec( clientb, "cover delegate32 19.899 BUSD XTSP8ZBZodbzPYh57Z8S4S6x2VqYNXo5MALy" ); produce_block( clienta ); exec( clientb, "balance" ); exec( clienta, "blockchain_market_order_book BUSD XTS" ); exec(clientb, "balance"); exec(clientb, "history"); exec(clientb, "balance b-account"); exec(clientb, "history b-account"); exec(clientb, "balance c-account"); exec(clientb, "history c-account"); } FC_LOG_AND_RETHROW() }
int main(int argc, char *argv[]) { /* *INDENT-OFF* */ static MENU mainmenu[] = { { "Exit", 0 }, { "Test of cursor movements", tst_movements }, { "Test of screen features", tst_screen }, { "Test of character sets", tst_characters }, { "Test of double-sized characters", tst_doublesize }, { "Test of keyboard", tst_keyboard }, { "Test of terminal reports", tst_reports }, { "Test of VT52 mode", tst_vt52 }, { "Test of VT102 features (Insert/Delete Char/Line)", tst_insdel }, { "Test of known bugs", tst_bugs }, { "Test of reset and self-test", tst_rst }, { "Test non-VT100 (e.g., VT220, XTERM) terminals", tst_nonvt100 }, { "Modify test-parameters", tst_setup }, { "", 0 } }; /* *INDENT-ON* */ while (argc-- > 1) { const char *opt = *++argv; if (*opt == '-') { while (*++opt != '\0') { switch (*opt) { case 'f': if (!*++opt) { if (argc-- < 1) usage(); opt = *++argv; } setup_softchars(opt); opt = "?"; break; case 'l': enable_logging(); break; case 'p': use_padding = TRUE; break; case 's': slow_motion = TRUE; break; case '8': output_8bits = TRUE; break; default: usage(); } } } else { /* * Allow user to specify geometry of terminal to accommodate quasi-VT100 * terminals such as Linux console and xterm. */ char *p = argv[0]; char *q; int values[3], n, m; for (n = 0; n < 3; n++) { if (!*p) break; if ((m = (int) strtol(p, &q, 10)) > 0) { values[n] = m; p = q; if (*p) p++; } else { break; } } switch (n) { case 3: max_cols = values[2]; /* FALLTHRU */ case 2: min_cols = values[1]; /* FALLTHRU */ case 1: max_lines = values[0]; break; } if ((max_cols < min_cols) || (n == 0)) { usage(); } } } #ifdef UNIX initterminal(setjmp(intrenv)); signal(SIGINT, onbrk); signal(SIGTERM, onterm); reading = FALSE; #else initterminal(0); #endif do { vt_clear(2); __(title(0), printf("VT100 test program, version %d.%d", RELEASE, PATCHLEVEL)); #ifdef PATCH_DATE if (PATCH_DATE) printf(" (%d)", PATCH_DATE); #endif title(1); if (max_lines != 24 || min_cols != 80 || max_cols != 132) printf("Screen size %dx%d (%d max) ", max_lines, min_cols, max_cols); if (tty_speed != DEFAULT_SPEED) printf("Line speed %dbd ", tty_speed); if (use_padding) printf(" (padded)"); __(title(2), println("Choose test type:")); } while (menu(mainmenu)); bye(); return EXIT_SUCCESS; }
static void parse_options( int argc, char **argv, Options_t *opts ) { int c; opterr = 0; memset( opts, 0, sizeof(*opts) ); opts->msg_size = 1024; opts->send_batch = 1024; opts->timeout = -1; opts->recv_count = -1; addresses_init(&opts->targets); while ((c = getopt(argc, argv, "a:c:b:p:w:e:l:Rt:W:B:VN:T:C:K:P:")) != -1) { switch(c) { case 'a': { // TODO: multiple addresses? To keep tests happy, accept multiple for now, // but ignore all but the first. addresses_merge( &opts->targets, optarg ); } break; case 'c': if (sscanf( optarg, "%" SCNu64, &opts->msg_count ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'b': if (sscanf( optarg, "%u", &opts->msg_size ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'p': if (sscanf( optarg, "%u", &opts->send_batch ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'w': if (sscanf( optarg, "%d", &opts->outgoing_window ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'e': if (sscanf( optarg, "%u", &opts->report_interval ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'R': opts->get_replies = 1; break; case 't': if (sscanf( optarg, "%d", &opts->timeout ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } if (opts->timeout > 0) opts->timeout *= 1000; break; case 'W': if (sscanf( optarg, "%d", &opts->incoming_window ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'B': if (sscanf( optarg, "%d", &opts->recv_count ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'V': enable_logging(); break; case 'N': opts->name = optarg; break; case 'T': opts->ca_db = optarg; break; case 'C': opts->certificate = optarg; break; case 'K': opts->privatekey = optarg; break; case 'P': parse_password( optarg, &opts->password ); break; default: usage(1); } } // default target if none specified if (opts->targets.count == 0) addresses_add( &opts->targets, "amqp://0.0.0.0" ); }
BOOST_FIXTURE_TEST_CASE( malicious_trading, chain_fixture ) { try { return; exec( clienta, "wallet_list_my_accounts" ); exec( clienta, "wallet_account_balance" ); exec( clienta, "unlock 999999999 masterpassword" ); exec( clienta, "scan 0 100" ); exec( clienta, "wallet_delegate_set_block_production delegate31 true" ); exec( clienta, "wallet_delegate_set_block_production delegate33 true" ); exec( clientb, "unlock 999999999 masterpassword" ); exec( clientb, "wallet_delegate_set_block_production delegate30 true" ); exec( clientb, "wallet_delegate_set_block_production delegate32 true" ); exec( clientb, "wallet_account_create b-account" ); exec( clientb, "wallet_account_balance b-account" ); exec( clientb, "wallet_asset_create USD BitUSD delegate30 \"paper bucks\" null 1000000000 1000 true" ); produce_block(clienta); exec(clienta, "wallet_account_balance"); exec(clientb, "wallet_account_balance"); exec(clienta, "ask delegate21 18000000 XTS 1000000 USD"); exec(clientb, "short delegate20 18000000 .001 USD"); exec(clienta, "ask delegate23 18000000 XTS 1000000 USD"); exec(clientb, "short delegate22 18000000 .001 USD"); exec(clienta, "ask delegate25 18000000 XTS 1000000 USD"); exec(clientb, "short delegate24 18000000 .001 USD"); exec(clienta, "ask delegate27 18000000 XTS 1000000 USD"); exec(clientb, "short delegate26 18000000 .001 USD"); exec(clienta, "ask delegate29 18000000 XTS 1000000 USD"); exec(clientb, "short delegate28 18000000 .001 USD"); exec(clienta, "ask delegate31 18000000 XTS 1.05 USD"); exec(clientb, "short delegate30 18000000 1 USD"); exec(clienta, "ask delegate33 100 XTS .001 USD"); exec(clientb, "short delegate32 100000000 1000000000 USD"); exec(clienta, "wallet_account_balance"); exec(clientb, "wallet_account_balance"); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clienta, "wallet_account_balance"); exec(clientb, "wallet_account_balance"); exec(clienta, "bid delegate23 1000000 XTS 5 USD"); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clienta, "ask delegate31 100 XTS 4 USD"); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); exec(clientb, "balance"); exec(clientb, "history"); exec(clientb, "balance delegate22"); exec(clientb, "history delegate22"); exec(clientb, "balance delegate32"); exec(clientb, "history delegate32"); exec(clientb, "wallet_publish_price_feed delegate22 .86 USD" ); produce_block(clienta); exec( clientb, "ask delegate22 3 XTS 0.92 USD" ); exec( clientb, "ask delegate22 4 XTS 0.22 USD" ); exec( clientb, "short delegate22 4 2.0 USD" ); enable_logging(); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); produce_block(clienta); exec(clienta, "blockchain_market_order_book USD XTS"); exec( clienta, "wallet_account_transaction_history" ); } FC_LOG_AND_RETHROW() }
static void handler_sigusr1 (int dummy) { enable_logging (); }
nathan_fixture() { enable_logging(); exec(clienta, "scan"); exec(clientb, "scan"); exec(clienta, "wallet_delegate_set_block_production ALL true"); exec(clientb, "wallet_delegate_set_block_production ALL true"); exec(clienta, "wallet_set_transaction_scanning true"); exec(clientb, "wallet_set_transaction_scanning true"); exec(clienta, "wallet_asset_create USD \"Federal Reserve Floats\" delegate21 \"100% Genuine United States Fiat\" \"arbitrary data!\" 1000000000 10000 true"); produce_block(clienta); exec(clientb, "wallet_publish_price_feed delegate2 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate4 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate6 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate8 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate10 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate12 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate14 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate16 .2 USD" ); produce_block(clienta); produce_block(clientb); exec(clientb, "wallet_publish_price_feed delegate18 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate20 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate22 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate24 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate26 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate28 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate30 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate32 .2 USD" ); produce_block(clienta); produce_block(clientb); exec(clientb, "wallet_publish_price_feed delegate34 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate36 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate38 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate40 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate42 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate44 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate46 .2 USD" ); produce_block(clienta); produce_block(clientb); exec(clientb, "wallet_publish_price_feed delegate48 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate50 .2 USD" ); exec(clientb, "wallet_publish_price_feed delegate52 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate1 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate3 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate5 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate7 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate9 .2 USD" ); produce_block(clienta); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate11 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate13 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate15 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate17 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate19 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate21 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate23 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate25 .2 USD" ); produce_block(clienta); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate27 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate29 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate31 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate33 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate35 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate37 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate39 .2 USD" ); produce_block(clienta); produce_block(clientb); exec(clienta, "wallet_publish_price_feed delegate41 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate43 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate45 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate47 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate49 .2 USD" ); exec(clienta, "wallet_publish_price_feed delegate51 .2 USD" ); produce_block(clienta); produce_block(clientb); std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"; }
static void parse_options( int argc, char **argv, Options_t *opts ) { int c; opterr = 0; memset( opts, 0, sizeof(*opts) ); opts->recv_count = -1; opts->timeout = -1; addresses_init(&opts->subscriptions); addresses_init(&opts->forwarding_targets); while ((c = getopt(argc, argv, "a:c:b:w:t:e:RW:F:VN:X:T:C:K:P:")) != -1) { switch (c) { case 'a': addresses_merge( &opts->subscriptions, optarg ); break; case 'c': if (sscanf( optarg, "%" SCNu64, &opts->msg_count ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'b': if (sscanf( optarg, "%d", &opts->recv_count ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'w': if (sscanf( optarg, "%d", &opts->incoming_window ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 't': if (sscanf( optarg, "%d", &opts->timeout ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } if (opts->timeout > 0) opts->timeout *= 1000; break; case 'e': if (sscanf( optarg, "%u", &opts->report_interval ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'R': opts->reply = 1; break; case 'W': if (sscanf( optarg, "%d", &opts->outgoing_window ) != 1) { fprintf(stderr, "Option -%c requires an integer argument.\n", optopt); usage(1); } break; case 'F': addresses_merge( &opts->forwarding_targets, optarg ); break; case 'V': enable_logging(); break; case 'N': opts->name = optarg; break; case 'X': opts->ready_text = optarg; break; case 'T': opts->ca_db = optarg; break; case 'C': opts->certificate = optarg; break; case 'K': opts->privatekey = optarg; break; case 'P': parse_password( optarg, &opts->password ); break; default: usage(1); } } // default subscription if none specified if (opts->subscriptions.count == 0) addresses_add( &opts->subscriptions, "amqp://~0.0.0.0" ); }
int gtr_run(GtR *gtr, int argc, const char **argv, GtError *err) { GtToolfunc toolfunc; GtTool *tool = NULL; char **nargv = NULL; void *mem, *map; int had_err = 0; gt_error_check(err); gt_assert(gtr); if (gtr->debug) enable_logging(gt_str_get(gtr->debugfp), >r->logfp); if (gtr->quiet) gt_warning_disable(); gtr->seed = gt_ya_rand_init(gtr->seed); gt_log_log("seed=%u", gtr->seed); if (gtr->list) return list_tools(gtr); if (gt_str_length(gtr->manoutdir) > 0) return create_manpages(gtr, gt_str_get(gtr->manoutdir), err); if (gtr->check64bit) return check64bit(); if (gtr->test) return run_tests(gtr, err); if (gt_str_length(gtr->testspacepeak)) { mem = gt_malloc(1 << 26); /* alloc 64 MB */; map = gt_fa_xmmap_read(gt_str_get(gtr->testspacepeak), NULL); gt_fa_xmunmap(map); gt_free(mem); } if (argc == 0 && !gtr->interactive) { gt_error_set(err, "neither tool nor script specified; option -help lists " "possible tools"); had_err = -1; } if (!had_err && argc) { if (!gtr->tools || !gt_toolbox_has_tool(gtr->tools, argv[0])) { /* no tool found -> try to open script */ if (gt_file_exists(argv[0])) { /* export script */ gt_lua_set_script_dir(gtr->L, argv[0]); /* run script */ nargv = gt_cstr_array_prefix_first(argv, gt_error_get_progname(err)); gt_lua_set_arg(gtr->L, nargv[0], (const char**) nargv+1); if (luaL_dofile(gtr->L, argv[0])) { /* error */ gt_assert(lua_isstring(gtr->L, -1)); /* error message on top */ gt_error_set(err, "could not execute script %s", lua_tostring(gtr->L, -1)); had_err = -1; lua_pop(gtr->L, 1); /* pop error message */ } } else { /* neither tool nor script found */ gt_error_set(err, "neither tool nor script '%s' found; option -help " "lists possible tools", argv[0]); had_err = -1; } } else { /* run tool */ if (!(toolfunc = gt_toolbox_get(gtr->tools, argv[0]))) { tool = gt_toolbox_get_tool(gtr->tools, argv[0]); gt_assert(tool); } nargv = gt_cstr_array_prefix_first(argv, gt_error_get_progname(err)); gt_error_set_progname(err, nargv[0]); if (toolfunc) had_err = toolfunc(argc, (const char**) nargv, err); else had_err = gt_tool_run(tool, argc, (const char**) nargv, err); } } gt_cstr_array_delete(nargv); if (!had_err && gtr->interactive) { gt_showshortversion(gt_error_get_progname(err)); gt_lua_set_arg(gtr->L, gt_error_get_progname(err), argv); run_interactive_lua_interpreter(gtr->L); } if (had_err) return EXIT_FAILURE; return EXIT_SUCCESS; }