root@localhost:~/ripple# go run tests/main.go tests/scenario/8_users_payment_scenario.json starting server loop starting server loop starting server loop starting server loop starting server loop starting server loop starting server loop starting server loop === Step 1: A->B account === 127.0.0.1:50159: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 2: B->A account === 127.0.0.1:60470: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 3: B->C account === 127.0.0.1:58897: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 4: C->B account === 127.0.0.1:46933: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 5: C->D account === 127.0.0.1:51730: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 6: D->C account === 127.0.0.1:46686: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 7: A->E account === 127.0.0.1:46967: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 8: E->A account === 127.0.0.1:52046: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 9: B->F account === 127.0.0.1:37295: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 10: F->B account === 127.0.0.1:32869: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 11: C->F account === 127.0.0.1:43641: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 12: F->C account === 127.0.0.1:48974: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 13: E->F account === 127.0.0.1:35807: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 14: F->E account === 127.0.0.1:50453: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 15: G->F account === 127.0.0.1:57824: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 16: F->G account === 127.0.0.1:51558: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 17: G->H account === 127.0.0.1:39600: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 18: H->G account === 127.0.0.1:55289: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 19: D->H account === 127.0.0.1:36617: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 20: H->D account === 127.0.0.1:58847: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 21: G->C account === 127.0.0.1:34552: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 22: C->G account === 127.0.0.1:42496: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 23: E->G account === 127.0.0.1:35866: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 24: G->E account === 127.0.0.1:41546: USER_ADD_ACCOUNT (137 bytes) Client => SUCCESS Add account === Step 25: Set trust: B->A=500000 === 127.0.0.1:45342: USER_SET_TRUSTLINE (110 bytes) Client => SUCCESS Set trustline Bob@127.0.0.1:2102: LOCKSTEP_SET_TRUSTLINE (146 bytes) Alice@127.0.0.1:2101: LOCKSTEP_SET_TRUSTLINE (146 bytes) === Step 26: Set trust: C->B=50000 === 127.0.0.1:32876: USER_SET_TRUSTLINE (110 bytes) Client => SUCCESS Set trustline Carol@127.0.0.1:2103: LOCKSTEP_SET_TRUSTLINE (146 bytes) Bob@127.0.0.1:2102: LOCKSTEP_SET_TRUSTLINE (146 bytes) === Step 27: Set trust: D->C=50000 === 127.0.0.1:46527: USER_SET_TRUSTLINE (110 bytes) Client => SUCCESS Set trustline Dave@127.0.0.1:2104: LOCKSTEP_SET_TRUSTLINE (146 bytes) Carol@127.0.0.1:2103: LOCKSTEP_SET_TRUSTLINE (146 bytes) === Step 28: Set trust: C->D=400000 (asym) === 127.0.0.1:41519: USER_SET_TRUSTLINE (110 bytes) Client => SUCCESS Set trustline === Step 29: Set trust: A->E=35000 === 127.0.0.1:44634: USER_SET_TRUSTLINE (110 bytes) Carol@127.0.0.1:2103: LOCKSTEP_SET_TRUSTLINE (146 bytes) Client => SUCCESS Set trustline Dave@127.0.0.1:2104: LOCKSTEP_SET_TRUSTLINE (146 bytes) Alice@127.0.0.1:2101: LOCKSTEP_SET_TRUSTLINE (146 bytes) === Step 30: Set trust: B->F=1000 === 127.0.0.1:54345: USER_SET_TRUSTLINE (110 bytes) Bob@127.0.0.1:2102: LOCKSTEP_SET_TRUSTLINE (146 bytes) Client => SUCCESS Set trustline === Step 31: Set trust: C->F=2000 === 127.0.0.1:51299: USER_SET_TRUSTLINE (110 bytes) Client => SUCCESS Set trustline Carol@127.0.0.1:2103: LOCKSTEP_SET_TRUSTLINE (146 bytes) === Step 32: Set trust: F->C=5000 === 127.0.0.1:36994: USER_SET_TRUSTLINE (110 bytes) Client => SUCCESS Set trustline Fred@127.0.0.1:2106: LOCKSTEP_SET_TRUSTLINE (146 bytes) === Step 33: Set trust: E->F=500000 === 127.0.0.1:57267: USER_SET_TRUSTLINE (110 bytes) Client => SUCCESS Set trustline Eve@127.0.0.1:2105: LOCKSTEP_SET_TRUSTLINE (146 bytes) === Step 34: Set trust: G->F=400000 === 127.0.0.1:39404: USER_SET_TRUSTLINE (110 bytes) Gina@127.0.0.1:2107: LOCKSTEP_SET_TRUSTLINE (146 bytes) Client => SUCCESS Set trustline === Step 35: Set trust: H->G=10000 === 127.0.0.1:59354: USER_SET_TRUSTLINE (110 bytes) Harry@127.0.0.1:2108: LOCKSTEP_SET_TRUSTLINE (146 bytes) Gina@127.0.0.1:2107: LOCKSTEP_SET_TRUSTLINE (146 bytes) Client => SUCCESS Set trustline === Step 36: Set trust: D->H=200000 === 127.0.0.1:38984: USER_SET_TRUSTLINE (110 bytes) Dave@127.0.0.1:2104: LOCKSTEP_SET_TRUSTLINE (146 bytes) Client => SUCCESS Set trustline === Step 37: Set trust: G->C=50000 === 127.0.0.1:55954: USER_SET_TRUSTLINE (110 bytes) Gina@127.0.0.1:2107: LOCKSTEP_SET_TRUSTLINE (146 bytes) Client => SUCCESS Set trustline === Step 38: Set trust: G->E=250000 === 127.0.0.1:49813: USER_SET_TRUSTLINE (110 bytes) Gina@127.0.0.1:2107: LOCKSTEP_SET_TRUSTLINE (146 bytes) Eve@127.0.0.1:2105: LOCKSTEP_SET_TRUSTLINE (146 bytes) Client => SUCCESS Set trustline === Step 39: Set trust: E->G=2000 === 127.0.0.1:57325: USER_SET_TRUSTLINE (110 bytes) Client => SUCCESS Set trustline Eve@127.0.0.1:2105: LOCKSTEP_SET_TRUSTLINE (146 bytes) Gina@127.0.0.1:2107: LOCKSTEP_SET_TRUSTLINE (146 bytes) === Step 40: Set trust: C->D= (lowest fallback) 10000 === 127.0.0.1:36928: USER_SET_TRUSTLINE (110 bytes) Client => SUCCESS Set trustline Carol@127.0.0.1:2103: LOCKSTEP_SET_TRUSTLINE (146 bytes) === Step 41: Payment E->D of 30000 === 127.0.0.1:56060: USER_NEW_PAYMENT (144 bytes) Client => SUCCESS New payment === Step 42: D registers the payment from E=30000 === 127.0.0.1:47365: USER_NEW_PAYMENT (144 bytes) Client => SUCCESS New payment === Step 43: E starts payment to D === 127.0.0.1:55677: USER_START_PAYMENT (38 bytes) Eve@127.0.0.1:2105: ACCOUNT_FIND_PATH (174 bytes) Eve@127.0.0.1:2105: ACCOUNT_FIND_PATH (174 bytes) Gina@127.0.0.1:2107: ACCOUNT_PATH_RECURSE (167 bytes) 127.0.0.1:2105: COUNTERPART_FIND_PATH (134 bytes) Dave@127.0.0.1:2104: ACCOUNT_FIND_PATH (174 bytes) Dave@127.0.0.1:2104: ACCOUNT_FIND_PATH (174 bytes) Harry@127.0.0.1:2108: ACCOUNT_PATH_RECURSE (167 bytes) Carol@127.0.0.1:2103: ACCOUNT_PATH_RECURSE (167 bytes) 127.0.0.1:2104: COUNTERPART_FIND_PATH (134 bytes) Client => SUCCESS Start payment Alice@127.0.0.1:2101: ACCOUNT_PATH_RECURSE (167 bytes) === Step 44: Payment G->B of 2500 === 127.0.0.1:35498: USER_NEW_PAYMENT (144 bytes) Client => SUCCESS New payment Eve@127.0.0.1:2105: ACCOUNT_FIND_PATH (174 bytes) Eve@127.0.0.1:2105: ACCOUNT_FIND_PATH (174 bytes) Alice@127.0.0.1:2101: ACCOUNT_FIND_PATH (174 bytes) Bob@127.0.0.1:2102: ACCOUNT_PATH_RECURSE (167 bytes) Alice@127.0.0.1:2101: ACCOUNT_PATH_RECURSE (167 bytes) 127.0.0.1:2105: COUNTERPART_FIND_PATH (134 bytes) Dave@127.0.0.1:2104: ACCOUNT_FIND_PATH (174 bytes) === Step 45: B registers the payment from G=2500 === Dave@127.0.0.1:2104: ACCOUNT_FIND_PATH (174 bytes) Carol@127.0.0.1:2103: ACCOUNT_FIND_PATH (174 bytes) 127.0.0.1:41172: USER_NEW_PAYMENT (144 bytes) Client => SUCCESS New payment === Step 46: G starts payment to B === 127.0.0.1:54768: USER_START_PAYMENT (38 bytes) Client => SUCCESS Start payment Gina@127.0.0.1:2107: ACCOUNT_FIND_PATH (174 bytes) Harry@127.0.0.1:2108: ACCOUNT_PATH_RECURSE (167 bytes) 127.0.0.1:2107: COUNTERPART_FIND_PATH (134 bytes) Bob@127.0.0.1:2102: ACCOUNT_PATH_FOUND (166 bytes) Alice@127.0.0.1:2101: ACCOUNT_PATH_FOUND (166 bytes) Eve@127.0.0.1:2105: ACCOUNT_PREPARE_PATH (166 bytes) Alice@127.0.0.1:2101: ACCOUNT_PREPARE_PATH (166 bytes) Bob@127.0.0.1:2102: ACCOUNT_PREPARE_PATH (166 bytes) Carol@127.0.0.1:2103: ACCOUNT_PREPARE_PATH (166 bytes) 127.0.0.1:2104: COUNTERPART_COMMIT_PAYMENT (134 bytes) Bob@127.0.0.1:2102: ACCOUNT_FIND_PATH (174 bytes) Alice@127.0.0.1:2101: ACCOUNT_PATH_RECURSE (167 bytes) 127.0.0.1:2102: COUNTERPART_FIND_PATH (134 bytes) Gina@127.0.0.1:2107: ACCOUNT_FIND_PATH (174 bytes) Harry@127.0.0.1:2108: ACCOUNT_FIND_PATH (174 bytes) Dave@127.0.0.1:2104: ACCOUNT_PATH_RECURSE (167 bytes) Eve@127.0.0.1:2105: LOCKSTEP_COMMIT_PAYMENT (178 bytes) Harry@127.0.0.1:2108: ACCOUNT_PATH_RECURSE (167 bytes) 127.0.0.1:2107: COUNTERPART_FIND_PATH (134 bytes) Bob@127.0.0.1:2102: ACCOUNT_FIND_PATH (174 bytes) Alice@127.0.0.1:2101: ACCOUNT_FIND_PATH (174 bytes) Alice@127.0.0.1:2101: LOCKSTEP_COMMIT_PAYMENT (178 bytes) Bob@127.0.0.1:2102: LOCKSTEP_COMMIT_PAYMENT (178 bytes) Carol@127.0.0.1:2103: LOCKSTEP_COMMIT_PAYMENT (178 bytes) Dave@127.0.0.1:2104: LOCKSTEP_COMMIT_PAYMENT (178 bytes) Carol@127.0.0.1:2103: LOCKSTEP_COMMIT_PAYMENT (178 bytes) 127.0.0.1:2104: COUNTERPART_FINALIZE_PAYMENT (134 bytes) Eve@127.0.0.1:2105: ACCOUNT_PATH_RECURSE (167 bytes) Bob@127.0.0.1:2102: LOCKSTEP_COMMIT_PAYMENT (178 bytes) Eve@127.0.0.1:2105: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Alice@127.0.0.1:2101: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Alice@127.0.0.1:2101: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Bob@127.0.0.1:2102: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Carol@127.0.0.1:2103: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Alice@127.0.0.1:2101: ACCOUNT_PATH_RECURSE (167 bytes) 127.0.0.1:2102: COUNTERPART_FIND_PATH (134 bytes) Gina@127.0.0.1:2107: ACCOUNT_FIND_PATH (174 bytes) Harry@127.0.0.1:2108: ACCOUNT_FIND_PATH (174 bytes) Dave@127.0.0.1:2104: ACCOUNT_FIND_PATH (174 bytes) Carol@127.0.0.1:2103: ACCOUNT_PATH_RECURSE (167 bytes) Dave@127.0.0.1:2104: ACCOUNT_PATH_RECURSE (167 bytes) Harry@127.0.0.1:2108: ACCOUNT_PATH_RECURSE (167 bytes) 127.0.0.1:2107: COUNTERPART_FIND_PATH (134 bytes) Bob@127.0.0.1:2102: ACCOUNT_FIND_PATH (174 bytes) Bob@127.0.0.1:2102: ACCOUNT_FIND_PATH (174 bytes) Alice@127.0.0.1:2101: ACCOUNT_FIND_PATH (174 bytes) Eve@127.0.0.1:2105: ACCOUNT_FIND_PATH (174 bytes) Fred@127.0.0.1:2106: ACCOUNT_PATH_RECURSE (167 bytes) Eve@127.0.0.1:2105: ACCOUNT_PATH_RECURSE (167 bytes) Alice@127.0.0.1:2101: ACCOUNT_PATH_RECURSE (167 bytes) 127.0.0.1:2102: COUNTERPART_FIND_PATH (134 bytes) Gina@127.0.0.1:2107: ACCOUNT_FIND_PATH (174 bytes) Harry@127.0.0.1:2108: ACCOUNT_FIND_PATH (174 bytes) Dave@127.0.0.1:2104: ACCOUNT_FIND_PATH (174 bytes) Carol@127.0.0.1:2103: ACCOUNT_PATH_FOUND (166 bytes) Dave@127.0.0.1:2104: ACCOUNT_PATH_FOUND (166 bytes) Harry@127.0.0.1:2108: ACCOUNT_PATH_FOUND (166 bytes) Gina@127.0.0.1:2107: ACCOUNT_PREPARE_PATH (166 bytes) Harry@127.0.0.1:2108: ACCOUNT_PREPARE_PATH (166 bytes) Dave@127.0.0.1:2104: ACCOUNT_PREPARE_PATH (166 bytes) Carol@127.0.0.1:2103: ACCOUNT_PREPARE_PATH (166 bytes) 127.0.0.1:2102: COUNTERPART_COMMIT_PAYMENT (134 bytes) Gina@127.0.0.1:2107: LOCKSTEP_COMMIT_PAYMENT (178 bytes) Harry@127.0.0.1:2108: LOCKSTEP_COMMIT_PAYMENT (178 bytes) Dave@127.0.0.1:2104: LOCKSTEP_COMMIT_PAYMENT (178 bytes) Harry@127.0.0.1:2108: LOCKSTEP_COMMIT_PAYMENT (178 bytes) Carol@127.0.0.1:2103: LOCKSTEP_COMMIT_PAYMENT (178 bytes) 127.0.0.1:2102: COUNTERPART_FINALIZE_PAYMENT (134 bytes) Gina@127.0.0.1:2107: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Harry@127.0.0.1:2108: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Dave@127.0.0.1:2104: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Dave@127.0.0.1:2104: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Carol@127.0.0.1:2103: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Carol@127.0.0.1:2103: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) Bob@127.0.0.1:2102: LOCKSTEP_FINALIZE_PAYMENT (170 bytes) === Final state for dave === Account {Carol 127.0.0.1} TurnBit=1 TurnCounter=7 Creditline=27500 TrustlineIn=10000 TrustlineOut=50000 Account {Harry 127.0.0.1} TurnBit=0 TurnCounter=3 Creditline=2500 TrustlineIn=0 TrustlineOut=200000 Receipts: #0 => ID=4d12332c7f14cdaafa2b617b50feec749250000a8d75662c72c8931374176fca, Counterpart={Eve 127.0.0.1}, Amount=30000, Timestamp=1740487015 Shut down server for dave and removed /tmp/ripple-2361589264 === Final state for eve === Account {Fred 127.0.0.1} TurnBit=0 TurnCounter=1 Creditline=0 TrustlineIn=0 TrustlineOut=500000 Account {Gina 127.0.0.1} TurnBit=0 TurnCounter=2 Creditline=0 TrustlineIn=250000 TrustlineOut=2000 Account {Alice 127.0.0.1} TurnBit=1 TurnCounter=3 Creditline=-30000 TrustlineIn=35000 TrustlineOut=0 Receipts: #0 => ID=4d12332c7f14cdaafa2b617b50feec749250000a8d75662c72c8931374176fca, Counterpart={Dave 127.0.0.1}, Amount=-30000, Timestamp=1740487015 Shut down server for eve and removed /tmp/ripple-3100901741 === Final state for fred === Account {Carol 127.0.0.1} TurnBit=1 TurnCounter=2 Creditline=0 TrustlineIn=2000 TrustlineOut=5000 Account {Eve 127.0.0.1} TurnBit=1 TurnCounter=1 Creditline=0 TrustlineIn=500000 TrustlineOut=0 Account {Gina 127.0.0.1} TurnBit=1 TurnCounter=1 Creditline=0 TrustlineIn=400000 TrustlineOut=0 Account {Bob 127.0.0.1} TurnBit=1 TurnCounter=1 Creditline=0 TrustlineIn=1000 TrustlineOut=0 Receipts: Shut down server for fred and removed /tmp/ripple-1097157321 === Final state for gina === Account {Fred 127.0.0.1} TurnBit=0 TurnCounter=1 Creditline=0 TrustlineIn=0 TrustlineOut=400000 Account {Harry 127.0.0.1} TurnBit=0 TurnCounter=3 Creditline=-2500 TrustlineIn=10000 TrustlineOut=0 Account {Carol 127.0.0.1} TurnBit=0 TurnCounter=1 Creditline=0 TrustlineIn=0 TrustlineOut=50000 Account {Eve 127.0.0.1} TurnBit=1 TurnCounter=2 Creditline=0 TrustlineIn=2000 TrustlineOut=250000 Receipts: #0 => ID=af9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051, Counterpart={Bob 127.0.0.1}, Amount=-2500, Timestamp=1740487019 Shut down server for gina and removed /tmp/ripple-2724594890 === Final state for harry === Account {Gina 127.0.0.1} TurnBit=1 TurnCounter=3 Creditline=2500 TrustlineIn=0 TrustlineOut=10000 Account {Dave 127.0.0.1} TurnBit=1 TurnCounter=3 Creditline=-2500 TrustlineIn=200000 TrustlineOut=0 Receipts: Shut down server for harry and removed /tmp/ripple-166070326 === Final state for alice === Account {Bob 127.0.0.1} TurnBit=0 TurnCounter=3 Creditline=-30000 TrustlineIn=500000 TrustlineOut=0 Account {Eve 127.0.0.1} TurnBit=0 TurnCounter=3 Creditline=30000 TrustlineIn=0 TrustlineOut=35000 Receipts: Shut down server for alice and removed /tmp/ripple-2634904318 === Final state for bob === Account {Alice 127.0.0.1} TurnBit=1 TurnCounter=3 Creditline=30000 TrustlineIn=0 TrustlineOut=500000 Account {Carol 127.0.0.1} TurnBit=0 TurnCounter=5 Creditline=-27500 TrustlineIn=50000 TrustlineOut=0 Account {Fred 127.0.0.1} TurnBit=0 TurnCounter=1 Creditline=0 TrustlineIn=0 TrustlineOut=1000 Receipts: #0 => ID=af9613760f72635fbdb44a5a0a63c39f12af30f950a6ee5c971be188e89c4051, Counterpart={Gina 127.0.0.1}, Amount=2500, Timestamp=1740487020 Shut down server for bob and removed /tmp/ripple-3727172671 === Final state for carol === Account {Dave 127.0.0.1} TurnBit=0 TurnCounter=7 Creditline=-27500 TrustlineIn=50000 TrustlineOut=10000 Account {Fred 127.0.0.1} TurnBit=0 TurnCounter=2 Creditline=0 TrustlineIn=5000 TrustlineOut=2000 Account {Gina 127.0.0.1} TurnBit=1 TurnCounter=1 Creditline=0 TrustlineIn=50000 TrustlineOut=0 Account {Bob 127.0.0.1} TurnBit=1 TurnCounter=5 Creditline=27500 TrustlineIn=0 TrustlineOut=50000 Receipts: Shut down server for carol and removed /tmp/ripple-913559607 All steps completed successfully! root@localhost:~/ripple#