diff --git a/contracts/hamplard/src/lib.rs b/contracts/hamplard/src/lib.rs index 54039c5..c52f06b 100644 --- a/contracts/hamplard/src/lib.rs +++ b/contracts/hamplard/src/lib.rs @@ -2229,9 +2229,10 @@ impl HamplardContract { .unwrap_or_else(|| panic!("instructor stats overflow")); }); + let completion_ledger = env.ledger().sequence(); env.events().publish( (Symbol::new(&env, "course_completed"), course_id.clone()), - (student, admin), + (student, admin, completion_ledger), ); } diff --git a/contracts/hamplard/src/test.rs b/contracts/hamplard/src/test.rs index bb40411..1bcf837 100644 --- a/contracts/hamplard/src/test.rs +++ b/contracts/hamplard/src/test.rs @@ -4306,12 +4306,13 @@ fn test_events_emitted_for_admin_operations() { &course_id, &Some(String::from_str(&env, "evidence")), ); - let (event_student, event_admin): (Address, Address) = + let (event_student, event_admin, event_ledger): (Address, Address, u32) = last_event_val(&env, &contract_id, "course_completed") .try_into_val(&env) .unwrap(); assert_eq!(event_student, student); assert_eq!(event_admin, admin); + assert_eq!(event_ledger, env.ledger().sequence()); // issue_certificate let cert_id = String::from_str(&env, "CERT-ATTR-001"); @@ -4435,6 +4436,55 @@ fn test_events_emitted_for_admin_operations() { assert_eq!(event_dest, admin); } +#[test] +fn test_mark_completed_event_contains_full_completion_details() { + let (env, contract_id, token_id, admin, _sec_admin, _treasury, instructor) = setup(); + let client = HamplardContractClient::new(&env, &contract_id); + + let student = Address::generate(&env); + token::StellarAssetClient::new(&env, &token_id).mint(&student, &100_000_000_000); + + // Register and approve a course + register_and_approve_course( + &env, + &client, + &token_id, + &admin, + &instructor, + "COURSE-COMPLETION-EVENT", + 500_000_000, + ); + let course_id = String::from_str(&env, "COURSE-COMPLETION-EVENT"); + + // Enroll student + client.enroll(&student, &course_id); + + // Capture the ledger sequence before marking completion + let completion_ledger_before = env.ledger().sequence(); + + // Mark as completed + client.mark_completed( + &admin, + &student, + &course_id, + &Some(String::from_str(&env, "completion_evidence")), + ); + + // Extract the event payload: (student, admin, completion_ledger) + let (event_student, event_admin, event_ledger): (Address, Address, u32) = + last_event_val(&env, &contract_id, "course_completed") + .try_into_val(&env) + .unwrap(); + + // Verify all event components + assert_eq!(event_student, student, "event should include student address"); + assert_eq!(event_admin, admin, "event should include admin address"); + assert!( + event_ledger >= completion_ledger_before, + "event should include ledger sequence of completion" + ); +} + #[test] #[should_panic(expected = "no prior enrollment found for this course")] fn test_re_enroll_without_prior_enrollment_fails() { diff --git a/contracts/hamplard/test_snapshots/test/test_admin_can_extend_refund_window_after_init.1.json b/contracts/hamplard/test_snapshots/test/test_admin_can_extend_refund_window_after_init.1.json index 7ad7e48..3ddd0d4 100644 --- a/contracts/hamplard/test_snapshots/test/test_admin_can_extend_refund_window_after_init.1.json +++ b/contracts/hamplard/test_snapshots/test/test_admin_can_extend_refund_window_after_init.1.json @@ -515,6 +515,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -776,6 +784,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -784,6 +803,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_admin_can_raise_limit.1.json b/contracts/hamplard/test_snapshots/test/test_admin_can_raise_limit.1.json index 20dd213..ece8638 100644 --- a/contracts/hamplard/test_snapshots/test/test_admin_can_raise_limit.1.json +++ b/contracts/hamplard/test_snapshots/test/test_admin_can_raise_limit.1.json @@ -437,6 +437,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -643,6 +651,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_admin_can_update_content_hash.1.json b/contracts/hamplard/test_snapshots/test/test_admin_can_update_content_hash.1.json index 8c97913..cc2277b 100644 --- a/contracts/hamplard/test_snapshots/test/test_admin_can_update_content_hash.1.json +++ b/contracts/hamplard/test_snapshots/test/test_admin_can_update_content_hash.1.json @@ -402,6 +402,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_approve_already_active_course.1.json b/contracts/hamplard/test_snapshots/test/test_approve_already_active_course.1.json index 3fd9142..2c28874 100644 --- a/contracts/hamplard/test_snapshots/test/test_approve_already_active_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_approve_already_active_course.1.json @@ -377,6 +377,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_approve_course_event_details.1.json b/contracts/hamplard/test_snapshots/test/test_approve_course_event_details.1.json index 7f8c5b2..57e2cab 100644 --- a/contracts/hamplard/test_snapshots/test/test_approve_course_event_details.1.json +++ b/contracts/hamplard/test_snapshots/test/test_approve_course_event_details.1.json @@ -376,6 +376,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_approve_course_success.1.json b/contracts/hamplard/test_snapshots/test/test_approve_course_success.1.json index 411c6e3..9042c31 100644 --- a/contracts/hamplard/test_snapshots/test/test_approve_course_success.1.json +++ b/contracts/hamplard/test_snapshots/test/test_approve_course_success.1.json @@ -377,6 +377,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_approve_course_unauthorized.1.json b/contracts/hamplard/test_snapshots/test/test_approve_course_unauthorized.1.json index d95a755..3c134f9 100644 --- a/contracts/hamplard/test_snapshots/test/test_approve_course_unauthorized.1.json +++ b/contracts/hamplard/test_snapshots/test/test_approve_course_unauthorized.1.json @@ -355,6 +355,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_archive_active_course_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_archive_active_course_rejected.1.json index b3cff6a..a323c63 100644 --- a/contracts/hamplard/test_snapshots/test/test_archive_active_course_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_archive_active_course_rejected.1.json @@ -377,6 +377,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_archive_course_blocked_by_active_enrollment.1.json b/contracts/hamplard/test_snapshots/test/test_archive_course_blocked_by_active_enrollment.1.json index 98382ec..c3f7204 100644 --- a/contracts/hamplard/test_snapshots/test/test_archive_course_blocked_by_active_enrollment.1.json +++ b/contracts/hamplard/test_snapshots/test/test_archive_course_blocked_by_active_enrollment.1.json @@ -448,6 +448,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -709,6 +717,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -717,6 +736,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_archive_course_with_refunds.1.json b/contracts/hamplard/test_snapshots/test/test_archive_course_with_refunds.1.json index 1a3c853..2d9ab58 100644 --- a/contracts/hamplard/test_snapshots/test/test_archive_course_with_refunds.1.json +++ b/contracts/hamplard/test_snapshots/test/test_archive_course_with_refunds.1.json @@ -673,6 +673,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_archive_paused_course_succeeds.1.json b/contracts/hamplard/test_snapshots/test/test_archive_paused_course_succeeds.1.json index 4ccd335..a936f90 100644 --- a/contracts/hamplard/test_snapshots/test/test_archive_paused_course_succeeds.1.json +++ b/contracts/hamplard/test_snapshots/test/test_archive_paused_course_succeeds.1.json @@ -449,6 +449,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_archive_pending_course_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_archive_pending_course_rejected.1.json index 8a0cabc..d89c9cb 100644 --- a/contracts/hamplard/test_snapshots/test/test_archive_pending_course_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_archive_pending_course_rejected.1.json @@ -355,6 +355,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_archive_then_reregister_fails.1.json b/contracts/hamplard/test_snapshots/test/test_archive_then_reregister_fails.1.json index 9bb541a..61e29bc 100644 --- a/contracts/hamplard/test_snapshots/test/test_archive_then_reregister_fails.1.json +++ b/contracts/hamplard/test_snapshots/test/test_archive_then_reregister_fails.1.json @@ -450,6 +450,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_batch_enroll_blocked_during_platform_pause.1.json b/contracts/hamplard/test_snapshots/test/test_batch_enroll_blocked_during_platform_pause.1.json index 0c36f56..99c98c5 100644 --- a/contracts/hamplard/test_snapshots/test/test_batch_enroll_blocked_during_platform_pause.1.json +++ b/contracts/hamplard/test_snapshots/test/test_batch_enroll_blocked_during_platform_pause.1.json @@ -421,6 +421,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_batch_enroll_emits_event_for_each_enrollment.1.json b/contracts/hamplard/test_snapshots/test/test_batch_enroll_emits_event_for_each_enrollment.1.json index 432e359..3ebe263 100644 --- a/contracts/hamplard/test_snapshots/test/test_batch_enroll_emits_event_for_each_enrollment.1.json +++ b/contracts/hamplard/test_snapshots/test/test_batch_enroll_emits_event_for_each_enrollment.1.json @@ -537,6 +537,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -743,6 +751,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1052,6 +1068,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1060,6 +1087,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1183,6 +1221,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1191,6 +1240,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_batch_enroll_fails_on_invalid_course.1.json b/contracts/hamplard/test_snapshots/test/test_batch_enroll_fails_on_invalid_course.1.json index 611b714..6ed6951 100644 --- a/contracts/hamplard/test_snapshots/test/test_batch_enroll_fails_on_invalid_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_batch_enroll_fails_on_invalid_course.1.json @@ -440,6 +440,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -646,6 +654,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_batch_enroll_rejects_duplicates.1.json b/contracts/hamplard/test_snapshots/test/test_batch_enroll_rejects_duplicates.1.json index 7a7199f..b108ae2 100644 --- a/contracts/hamplard/test_snapshots/test/test_batch_enroll_rejects_duplicates.1.json +++ b/contracts/hamplard/test_snapshots/test/test_batch_enroll_rejects_duplicates.1.json @@ -402,6 +402,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_batch_enroll_respects_capacity.1.json b/contracts/hamplard/test_snapshots/test/test_batch_enroll_respects_capacity.1.json index b095c4b..1493be7 100644 --- a/contracts/hamplard/test_snapshots/test/test_batch_enroll_respects_capacity.1.json +++ b/contracts/hamplard/test_snapshots/test/test_batch_enroll_respects_capacity.1.json @@ -466,6 +466,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -672,6 +680,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_batch_enroll_success.1.json b/contracts/hamplard/test_snapshots/test/test_batch_enroll_success.1.json index 0a5c102..c1cec36 100644 --- a/contracts/hamplard/test_snapshots/test/test_batch_enroll_success.1.json +++ b/contracts/hamplard/test_snapshots/test/test_batch_enroll_success.1.json @@ -626,6 +626,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -832,6 +840,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1038,6 +1054,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1395,6 +1419,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1403,6 +1438,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1526,6 +1572,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1534,6 +1591,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" @@ -1657,6 +1725,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 240000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1665,6 +1744,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 60000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_blocked_student_cannot_enroll.1.json b/contracts/hamplard/test_snapshots/test/test_blocked_student_cannot_enroll.1.json index 4067a13..e9c511b 100644 --- a/contracts/hamplard/test_snapshots/test/test_blocked_student_cannot_enroll.1.json +++ b/contracts/hamplard/test_snapshots/test/test_blocked_student_cannot_enroll.1.json @@ -399,6 +399,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_cancel_upgrade_authorized.1.json b/contracts/hamplard/test_snapshots/test/test_cancel_upgrade_authorized.1.json new file mode 100644 index 0000000..1752f79 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_cancel_upgrade_authorized.1.json @@ -0,0 +1,844 @@ +{ + "generators": { + "address": 8, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ], + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "cancel_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + } + }, + "sub_invocations": [] + } + ], + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "cancel_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_cancel_upgrade_unauthorized_fails.1.json b/contracts/hamplard/test_snapshots/test/test_cancel_upgrade_unauthorized_fails.1.json new file mode 100644 index 0000000..42b1352 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_cancel_upgrade_unauthorized_fails.1.json @@ -0,0 +1,772 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ], + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PendingUpgrade" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "effective_ledger" + }, + "val": { + "u32": 17280 + } + }, + { + "key": { + "symbol": "new_wasm_hash" + }, + "val": { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + }, + { + "key": { + "symbol": "proposed_at_ledger" + }, + "val": { + "u32": 0 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_certificate_expiry_behavior.1.json b/contracts/hamplard/test_snapshots/test/test_certificate_expiry_behavior.1.json index 2905ec3..a91fdc6 100644 --- a/contracts/hamplard/test_snapshots/test/test_certificate_expiry_behavior.1.json +++ b/contracts/hamplard/test_snapshots/test/test_certificate_expiry_behavior.1.json @@ -685,6 +685,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -948,6 +956,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -956,6 +975,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_certificate_id_collision_across_courses.1.json b/contracts/hamplard/test_snapshots/test/test_certificate_id_collision_across_courses.1.json index 02498f0..13005a8 100644 --- a/contracts/hamplard/test_snapshots/test/test_certificate_id_collision_across_courses.1.json +++ b/contracts/hamplard/test_snapshots/test/test_certificate_id_collision_across_courses.1.json @@ -816,6 +816,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1022,6 +1030,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1335,6 +1351,17 @@ "string": "ev_a" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 240000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1343,6 +1370,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 60000000 + } + } + }, { "key": { "symbol": "student" @@ -1468,6 +1506,17 @@ "string": "ev_b" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 240000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1476,6 +1525,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 60000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_is_not_admin_or_instructor.1.json b/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_is_not_admin_or_instructor.1.json index f43eed1..47292bb 100644 --- a/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_is_not_admin_or_instructor.1.json +++ b/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_is_not_admin_or_instructor.1.json @@ -678,6 +678,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -943,6 +951,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -951,6 +970,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_matches_contract_address.1.json b/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_matches_contract_address.1.json index 31c50bb..1b08bee 100644 --- a/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_matches_contract_address.1.json +++ b/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_matches_contract_address.1.json @@ -678,6 +678,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -943,6 +951,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -951,6 +970,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_persists_after_revocation.1.json b/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_persists_after_revocation.1.json index e1bd50e..a707d77 100644 --- a/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_persists_after_revocation.1.json +++ b/contracts/hamplard/test_snapshots/test/test_certificate_issued_by_persists_after_revocation.1.json @@ -709,6 +709,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -974,6 +982,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -982,6 +1001,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_certificate_issued_event_contains_full_issuance_details.1.json b/contracts/hamplard/test_snapshots/test/test_certificate_issued_event_contains_full_issuance_details.1.json index 856c1b7..4826598 100644 --- a/contracts/hamplard/test_snapshots/test/test_certificate_issued_event_contains_full_issuance_details.1.json +++ b/contracts/hamplard/test_snapshots/test/test_certificate_issued_event_contains_full_issuance_details.1.json @@ -678,6 +678,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -943,6 +951,17 @@ "string": "completion-proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -951,6 +970,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_certificate_requires_completion.1.json b/contracts/hamplard/test_snapshots/test/test_certificate_requires_completion.1.json index 40c3577..738f820 100644 --- a/contracts/hamplard/test_snapshots/test/test_certificate_requires_completion.1.json +++ b/contracts/hamplard/test_snapshots/test/test_certificate_requires_completion.1.json @@ -448,6 +448,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -709,6 +717,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 320000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -717,6 +736,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_certificate_student_b_without_enrollment_panics.1.json b/contracts/hamplard/test_snapshots/test/test_certificate_student_b_without_enrollment_panics.1.json index 4fcdd0a..af1a1ed 100644 --- a/contracts/hamplard/test_snapshots/test/test_certificate_student_b_without_enrollment_panics.1.json +++ b/contracts/hamplard/test_snapshots/test/test_certificate_student_b_without_enrollment_panics.1.json @@ -501,6 +501,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -764,6 +772,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -772,6 +791,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_certificate_student_matches_enrollment.1.json b/contracts/hamplard/test_snapshots/test/test_certificate_student_matches_enrollment.1.json index b6c4c26..15563b2 100644 --- a/contracts/hamplard/test_snapshots/test/test_certificate_student_matches_enrollment.1.json +++ b/contracts/hamplard/test_snapshots/test/test_certificate_student_matches_enrollment.1.json @@ -703,6 +703,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -968,6 +976,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -976,6 +995,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_concurrent_completion.1.json b/contracts/hamplard/test_snapshots/test/test_concurrent_completion.1.json index 39a1657..bcb4fa2 100644 --- a/contracts/hamplard/test_snapshots/test/test_concurrent_completion.1.json +++ b/contracts/hamplard/test_snapshots/test/test_concurrent_completion.1.json @@ -476,6 +476,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -739,6 +747,17 @@ "string": "ev" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -747,6 +766,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_content_hash_survives_enroll_and_completion.1.json b/contracts/hamplard/test_snapshots/test/test_content_hash_survives_enroll_and_completion.1.json index 80d16ab..762488b 100644 --- a/contracts/hamplard/test_snapshots/test/test_content_hash_survives_enroll_and_completion.1.json +++ b/contracts/hamplard/test_snapshots/test/test_content_hash_survives_enroll_and_completion.1.json @@ -476,6 +476,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -739,6 +747,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -747,6 +766,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_course_approval_time_lock_premature_panics.1.json b/contracts/hamplard/test_snapshots/test/test_course_approval_time_lock_premature_panics.1.json index 29d5121..42cad4e 100644 --- a/contracts/hamplard/test_snapshots/test/test_course_approval_time_lock_premature_panics.1.json +++ b/contracts/hamplard/test_snapshots/test/test_course_approval_time_lock_premature_panics.1.json @@ -377,6 +377,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_course_approval_time_lock_success.1.json b/contracts/hamplard/test_snapshots/test/test_course_approval_time_lock_success.1.json index 74db36d..8e90211 100644 --- a/contracts/hamplard/test_snapshots/test/test_course_approval_time_lock_success.1.json +++ b/contracts/hamplard/test_snapshots/test/test_course_approval_time_lock_success.1.json @@ -399,6 +399,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_course_certificate_id_collision_verification.1.json b/contracts/hamplard/test_snapshots/test/test_course_certificate_id_collision_verification.1.json index 4204b39..83f8d4e 100644 --- a/contracts/hamplard/test_snapshots/test/test_course_certificate_id_collision_verification.1.json +++ b/contracts/hamplard/test_snapshots/test/test_course_certificate_id_collision_verification.1.json @@ -680,6 +680,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -945,6 +953,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -953,6 +972,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_course_count_increments_correctly.1.json b/contracts/hamplard/test_snapshots/test/test_course_count_increments_correctly.1.json index 398dec0..c518a29 100644 --- a/contracts/hamplard/test_snapshots/test/test_course_count_increments_correctly.1.json +++ b/contracts/hamplard/test_snapshots/test/test_course_count_increments_correctly.1.json @@ -395,6 +395,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -601,6 +609,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_course_created_at_ledger_is_accurate.1.json b/contracts/hamplard/test_snapshots/test/test_course_created_at_ledger_is_accurate.1.json index 4345ff8..cbbcfda 100644 --- a/contracts/hamplard/test_snapshots/test/test_course_created_at_ledger_is_accurate.1.json +++ b/contracts/hamplard/test_snapshots/test/test_course_created_at_ledger_is_accurate.1.json @@ -355,6 +355,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_course_last_updated_ledger_tracks_modifications.1.json b/contracts/hamplard/test_snapshots/test/test_course_last_updated_ledger_tracks_modifications.1.json index 5b96650..204ef6d 100644 --- a/contracts/hamplard/test_snapshots/test/test_course_last_updated_ledger_tracks_modifications.1.json +++ b/contracts/hamplard/test_snapshots/test/test_course_last_updated_ledger_tracks_modifications.1.json @@ -378,6 +378,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_different_instructors_have_independent_limits.1.json b/contracts/hamplard/test_snapshots/test/test_different_instructors_have_independent_limits.1.json index 6da276c..ccea721 100644 --- a/contracts/hamplard/test_snapshots/test/test_different_instructors_have_independent_limits.1.json +++ b/contracts/hamplard/test_snapshots/test/test_different_instructors_have_independent_limits.1.json @@ -416,6 +416,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -622,6 +630,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_double_withdrawal_prevented.1.json b/contracts/hamplard/test_snapshots/test/test_double_withdrawal_prevented.1.json index 6026425..04efc03 100644 --- a/contracts/hamplard/test_snapshots/test/test_double_withdrawal_prevented.1.json +++ b/contracts/hamplard/test_snapshots/test/test_double_withdrawal_prevented.1.json @@ -505,6 +505,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -766,6 +774,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -774,6 +793,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_admin_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_admin_rejected.1.json index cce9776..633c18b 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_admin_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_admin_rejected.1.json @@ -402,6 +402,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_at_capacity_succeeds.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_at_capacity_succeeds.1.json index a6b6212..c983636 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_at_capacity_succeeds.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_at_capacity_succeeds.1.json @@ -452,6 +452,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -713,6 +721,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -721,6 +740,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_beyond_capacity_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_beyond_capacity_rejected.1.json index f8ced54..b4ba52a 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_beyond_capacity_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_beyond_capacity_rejected.1.json @@ -477,6 +477,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -738,6 +746,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -746,6 +765,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_blocked_during_platform_pause.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_blocked_during_platform_pause.1.json index 0c36f56..99c98c5 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_blocked_during_platform_pause.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_blocked_during_platform_pause.1.json @@ -421,6 +421,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_blocked_when_prerequisite_certificate_revoked.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_blocked_when_prerequisite_certificate_revoked.1.json new file mode 100644 index 0000000..fb97074 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_enroll_blocked_when_prerequisite_certificate_revoked.1.json @@ -0,0 +1,2621 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_prerequisite_courses", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "vec": [ + { + "string": "COURSE-PREREQ-A" + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "enroll", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_completed", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "evidence" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_certificate", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "CERT-PREREQ-A-REVOKED" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "Course A" + }, + { + "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "revoke_certificate", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "CERT-PREREQ-A-REVOKED" + }, + { + "string": "ISSUED_IN_ERROR" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 2, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Certificate" + }, + { + "string": "CERT-PREREQ-A-REVOKED" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Certificate" + }, + { + "string": "CERT-PREREQ-A-REVOKED" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "course_title" + }, + "val": { + "string": "Course A" + } + }, + { + "key": { + "symbol": "enrollment_reference" + }, + "val": { + "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "CERT-PREREQ-A-REVOKED" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "instructor_signature" + }, + "val": "void" + }, + { + "key": { + "symbol": "issued_at_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "issued_by" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + }, + { + "key": { + "symbol": "revocation_reason" + }, + "val": { + "string": "ISSUED_IN_ERROR" + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "revoked_at_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "revoked_by" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-B" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount_paid" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "certificate_id" + }, + "val": { + "string": "CERT-PREREQ-A-REVOKED" + } + }, + { + "key": { + "symbol": "certificate_issued" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "completed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "course_version" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrolled_at_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "evidence_hash" + }, + "val": { + "string": "evidence" + } + }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, + { + "key": { + "symbol": "is_refunded" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "total_certificates" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "total_completions" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "total_students" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "TotalActiveEnrollments" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 6517132746326325848 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 6517132746326325848 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518402 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518402 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 99900000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_blocked_when_prerequisite_completed_but_not_certified.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_blocked_when_prerequisite_completed_but_not_certified.1.json new file mode 100644 index 0000000..7eb0b41 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_enroll_blocked_when_prerequisite_completed_but_not_certified.1.json @@ -0,0 +1,2341 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_prerequisite_courses", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "vec": [ + { + "string": "COURSE-PREREQ-A" + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "enroll", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_completed", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "evidence" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 2, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-B" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount_paid" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "certificate_id" + }, + "val": "void" + }, + { + "key": { + "symbol": "certificate_issued" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "completed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "course_version" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrolled_at_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "evidence_hash" + }, + "val": { + "string": "evidence" + } + }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, + { + "key": { + "symbol": "is_refunded" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "total_certificates" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "total_completions" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "total_students" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "TotalActiveEnrollments" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518402 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518402 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 99900000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_blocked_without_completed_prerequisite.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_blocked_without_completed_prerequisite.1.json new file mode 100644 index 0000000..8472e21 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_enroll_blocked_without_completed_prerequisite.1.json @@ -0,0 +1,1716 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_prerequisite_courses", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "vec": [ + { + "string": "COURSE-PREREQ-A" + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 2, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-B" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_duplicate.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_duplicate.1.json index 1fa324d..d63e08c 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_duplicate.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_duplicate.1.json @@ -448,6 +448,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -709,6 +717,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -717,6 +736,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_fee_overflow.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_fee_overflow.1.json index 9a2bc6f..bf8684c 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_fee_overflow.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_fee_overflow.1.json @@ -425,6 +425,14 @@ "u32": 100 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_fee_uses_live_default_fee.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_fee_uses_live_default_fee.1.json index 2359328..6720db1 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_fee_uses_live_default_fee.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_fee_uses_live_default_fee.1.json @@ -509,6 +509,14 @@ "u32": 40 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -770,6 +778,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 900000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -778,6 +797,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_insufficient_funds_rollback.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_insufficient_funds_rollback.1.json index cf85f2c..5b01f8e 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_insufficient_funds_rollback.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_insufficient_funds_rollback.1.json @@ -402,6 +402,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_pending_course.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_pending_course.1.json index fe78b9e..80f0038 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_pending_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_pending_course.1.json @@ -380,6 +380,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_rejected_for_just_paused_course.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_rejected_for_just_paused_course.1.json index 9036c23..6cc7edd 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_rejected_for_just_paused_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_rejected_for_just_paused_course.1.json @@ -424,6 +424,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_rejects_before_enrollment_start_ledger.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_rejects_before_enrollment_start_ledger.1.json index 51b3169..2aaf222 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_rejects_before_enrollment_start_ledger.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_rejects_before_enrollment_start_ledger.1.json @@ -429,6 +429,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_same_ledger_as_registration_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_same_ledger_as_registration_rejected.1.json index ea04df7..be063d7 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_same_ledger_as_registration_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_same_ledger_as_registration_rejected.1.json @@ -402,6 +402,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_after_token_removed_from_whitelist_is_re_added.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_after_token_removed_from_whitelist_is_re_added.1.json index 476031b..9eae0c8 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_after_token_removed_from_whitelist_is_re_added.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_after_token_removed_from_whitelist_is_re_added.1.json @@ -492,6 +492,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -753,6 +761,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -761,6 +780,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_at_enrollment_start_ledger.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_at_enrollment_start_ledger.1.json index 664fa10..397b346 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_at_enrollment_start_ledger.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_at_enrollment_start_ledger.1.json @@ -500,6 +500,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -761,6 +769,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -769,6 +788,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_when_instructor_is_contract_address.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_when_instructor_is_contract_address.1.json index d3cfe62..04277e2 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_when_instructor_is_contract_address.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_when_instructor_is_contract_address.1.json @@ -450,6 +450,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -711,6 +719,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 800000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -719,6 +738,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 200000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_with_completed_and_certified_prerequisite.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_with_completed_and_certified_prerequisite.1.json new file mode 100644 index 0000000..5e1b8bd --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_enroll_succeeds_with_completed_and_certified_prerequisite.1.json @@ -0,0 +1,2789 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_prerequisite_courses", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "vec": [ + { + "string": "COURSE-PREREQ-A" + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "enroll", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_completed", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "evidence" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_certificate", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "CERT-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "Course A" + }, + { + "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "enroll", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 2, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Certificate" + }, + { + "string": "CERT-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Certificate" + }, + { + "string": "CERT-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "course_title" + }, + "val": { + "string": "Course A" + } + }, + { + "key": { + "symbol": "enrollment_reference" + }, + "val": { + "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "CERT-PREREQ-A" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "instructor_signature" + }, + "val": "void" + }, + { + "key": { + "symbol": "issued_at_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "issued_by" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + }, + { + "key": { + "symbol": "revocation_reason" + }, + "val": "void" + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "revoked_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "revoked_by" + }, + "val": "void" + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-B" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount_paid" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "certificate_id" + }, + "val": { + "string": "CERT-PREREQ-A" + } + }, + { + "key": { + "symbol": "certificate_issued" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "completed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "course_version" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrolled_at_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "evidence_hash" + }, + "val": { + "string": "evidence" + } + }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, + { + "key": { + "symbol": "is_refunded" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount_paid" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "certificate_id" + }, + "val": "void" + }, + { + "key": { + "symbol": "certificate_issued" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "completed" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-PREREQ-B" + } + }, + { + "key": { + "symbol": "course_version" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrolled_at_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "evidence_hash" + }, + "val": "void" + }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, + { + "key": { + "symbol": "is_refunded" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "total_certificates" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "total_completions" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "total_students" + }, + "val": { + "u32": 2 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + } + }, + "ext": "v0" + }, + 6300002 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "TotalActiveEnrollments" + } + ] + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 6517132746326325848 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 6517132746326325848 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518402 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518402 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 99800000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_success_with_payment_split.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_success_with_payment_split.1.json index 645c649..d7e1ae3 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_success_with_payment_split.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_success_with_payment_split.1.json @@ -478,6 +478,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -739,6 +747,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 800000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -747,6 +766,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 200000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_total_earned_overflow.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_total_earned_overflow.1.json index 5c97307..da0151b 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_total_earned_overflow.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_total_earned_overflow.1.json @@ -403,6 +403,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_unlimited_capacity.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_unlimited_capacity.1.json index c275261..df186fe 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_unlimited_capacity.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_unlimited_capacity.1.json @@ -732,6 +732,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -993,6 +1001,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1001,6 +1020,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1124,6 +1154,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1132,6 +1173,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1255,6 +1307,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1263,6 +1326,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1386,6 +1460,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1394,6 +1479,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1517,6 +1613,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1525,6 +1632,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_uses_registered_course_fee_when_default_fee_changes.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_uses_registered_course_fee_when_default_fee_changes.1.json index 910a9ef..a46fa2b 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_uses_registered_course_fee_when_default_fee_changes.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_uses_registered_course_fee_when_default_fee_changes.1.json @@ -509,6 +509,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -770,6 +778,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 650000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -778,6 +797,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 350000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_with_non_whitelisted_token_fails.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_with_non_whitelisted_token_fails.1.json index c620171..61b9eb2 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_with_non_whitelisted_token_fails.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_with_non_whitelisted_token_fails.1.json @@ -482,6 +482,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_enroll_zero_price_free_course.1.json b/contracts/hamplard/test_snapshots/test/test_enroll_zero_price_free_course.1.json index cc6950d..8204c2c 100644 --- a/contracts/hamplard/test_snapshots/test/test_enroll_zero_price_free_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enroll_zero_price_free_course.1.json @@ -424,6 +424,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -685,6 +693,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, { "key": { "symbol": "is_refunded" @@ -693,6 +712,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enrollment_blocked_at_platform_cap.1.json b/contracts/hamplard/test_snapshots/test/test_enrollment_blocked_at_platform_cap.1.json index 8b58580..16b3975 100644 --- a/contracts/hamplard/test_snapshots/test/test_enrollment_blocked_at_platform_cap.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enrollment_blocked_at_platform_cap.1.json @@ -496,6 +496,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -757,6 +765,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -765,6 +784,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enrollment_expiry_none_allows_completion_at_any_time.1.json b/contracts/hamplard/test_snapshots/test/test_enrollment_expiry_none_allows_completion_at_any_time.1.json index 47e7f42..1e0e89c 100644 --- a/contracts/hamplard/test_snapshots/test/test_enrollment_expiry_none_allows_completion_at_any_time.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enrollment_expiry_none_allows_completion_at_any_time.1.json @@ -476,6 +476,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -739,6 +747,17 @@ "string": "late_evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -747,6 +766,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enrollment_persists_after_long_ledger_advance.1.json b/contracts/hamplard/test_snapshots/test/test_enrollment_persists_after_long_ledger_advance.1.json index fea9714..3882200 100644 --- a/contracts/hamplard/test_snapshots/test/test_enrollment_persists_after_long_ledger_advance.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enrollment_persists_after_long_ledger_advance.1.json @@ -473,6 +473,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -734,6 +742,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -742,6 +761,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enrollment_receipt_event_emitted_with_payment_breakdown.1.json b/contracts/hamplard/test_snapshots/test/test_enrollment_receipt_event_emitted_with_payment_breakdown.1.json index f03268d..37f082e 100644 --- a/contracts/hamplard/test_snapshots/test/test_enrollment_receipt_event_emitted_with_payment_breakdown.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enrollment_receipt_event_emitted_with_payment_breakdown.1.json @@ -447,6 +447,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -708,6 +716,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 800000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -716,6 +735,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 200000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enrollment_succeeds_below_platform_cap.1.json b/contracts/hamplard/test_snapshots/test/test_enrollment_succeeds_below_platform_cap.1.json index 8b602dd..502e9bc 100644 --- a/contracts/hamplard/test_snapshots/test/test_enrollment_succeeds_below_platform_cap.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enrollment_succeeds_below_platform_cap.1.json @@ -542,6 +542,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -803,6 +811,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -811,6 +830,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -934,6 +964,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -942,6 +983,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_enrollment_ttl_extended_on_write.1.json b/contracts/hamplard/test_snapshots/test/test_enrollment_ttl_extended_on_write.1.json index 984fe7e..ed24fae 100644 --- a/contracts/hamplard/test_snapshots/test/test_enrollment_ttl_extended_on_write.1.json +++ b/contracts/hamplard/test_snapshots/test/test_enrollment_ttl_extended_on_write.1.json @@ -476,6 +476,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -739,6 +747,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -747,6 +766,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_event_certificate_revoked.1.json b/contracts/hamplard/test_snapshots/test/test_event_certificate_revoked.1.json index db42c97..451e777 100644 --- a/contracts/hamplard/test_snapshots/test/test_event_certificate_revoked.1.json +++ b/contracts/hamplard/test_snapshots/test/test_event_certificate_revoked.1.json @@ -687,6 +687,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -952,6 +960,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 240000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -960,6 +979,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 60000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_events_emitted_for_admin_operations.1.json b/contracts/hamplard/test_snapshots/test/test_events_emitted_for_admin_operations.1.json index 1c0e2f6..38b5b92 100644 --- a/contracts/hamplard/test_snapshots/test/test_events_emitted_for_admin_operations.1.json +++ b/contracts/hamplard/test_snapshots/test/test_events_emitted_for_admin_operations.1.json @@ -923,6 +923,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1188,6 +1196,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1196,6 +1215,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_frozen_instructor_enrollment_blocked.1.json b/contracts/hamplard/test_snapshots/test/test_frozen_instructor_enrollment_blocked.1.json index d859580..c3ada29 100644 --- a/contracts/hamplard/test_snapshots/test/test_frozen_instructor_enrollment_blocked.1.json +++ b/contracts/hamplard/test_snapshots/test/test_frozen_instructor_enrollment_blocked.1.json @@ -424,6 +424,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_full_lifecycle_enroll_complete_certify.1.json b/contracts/hamplard/test_snapshots/test/test_full_lifecycle_enroll_complete_certify.1.json index 1718470..8ef0f60 100644 --- a/contracts/hamplard/test_snapshots/test/test_full_lifecycle_enroll_complete_certify.1.json +++ b/contracts/hamplard/test_snapshots/test/test_full_lifecycle_enroll_complete_certify.1.json @@ -707,6 +707,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -972,6 +980,17 @@ "string": "evidence_hash" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -980,6 +999,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_get_certificate_authorized_roles.1.json b/contracts/hamplard/test_snapshots/test/test_get_certificate_authorized_roles.1.json index 1569b14..ee30b30 100644 --- a/contracts/hamplard/test_snapshots/test/test_get_certificate_authorized_roles.1.json +++ b/contracts/hamplard/test_snapshots/test/test_get_certificate_authorized_roles.1.json @@ -722,6 +722,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -987,6 +995,17 @@ "string": "evidence_hash" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -995,6 +1014,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_get_certificate_unauthorized_third_party_fails.1.json b/contracts/hamplard/test_snapshots/test/test_get_certificate_unauthorized_third_party_fails.1.json index b990c35..23bcf82 100644 --- a/contracts/hamplard/test_snapshots/test/test_get_certificate_unauthorized_third_party_fails.1.json +++ b/contracts/hamplard/test_snapshots/test/test_get_certificate_unauthorized_third_party_fails.1.json @@ -658,6 +658,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -923,6 +931,17 @@ "string": "evidence_hash" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -931,6 +950,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_get_course_extends_ttl_on_each_successive_read.1.json b/contracts/hamplard/test_snapshots/test/test_get_course_extends_ttl_on_each_successive_read.1.json index cb2ab67..432344f 100644 --- a/contracts/hamplard/test_snapshots/test/test_get_course_extends_ttl_on_each_successive_read.1.json +++ b/contracts/hamplard/test_snapshots/test/test_get_course_extends_ttl_on_each_successive_read.1.json @@ -381,6 +381,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_get_course_extends_ttl_on_read.1.json b/contracts/hamplard/test_snapshots/test/test_get_course_extends_ttl_on_read.1.json index 63a511f..ace0a6c 100644 --- a/contracts/hamplard/test_snapshots/test/test_get_course_extends_ttl_on_read.1.json +++ b/contracts/hamplard/test_snapshots/test/test_get_course_extends_ttl_on_read.1.json @@ -377,6 +377,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_get_course_ttl_extension_does_not_mutate_course_data.1.json b/contracts/hamplard/test_snapshots/test/test_get_course_ttl_extension_does_not_mutate_course_data.1.json index 27c23b4..9af235b 100644 --- a/contracts/hamplard/test_snapshots/test/test_get_course_ttl_extension_does_not_mutate_course_data.1.json +++ b/contracts/hamplard/test_snapshots/test/test_get_course_ttl_extension_does_not_mutate_course_data.1.json @@ -378,6 +378,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_get_courses_by_instructor_accurate_after_registration_pause_and_archival.1.json b/contracts/hamplard/test_snapshots/test/test_get_courses_by_instructor_accurate_after_registration_pause_and_archival.1.json index de41fc9..95708b6 100644 --- a/contracts/hamplard/test_snapshots/test/test_get_courses_by_instructor_accurate_after_registration_pause_and_archival.1.json +++ b/contracts/hamplard/test_snapshots/test/test_get_courses_by_instructor_accurate_after_registration_pause_and_archival.1.json @@ -529,6 +529,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -735,6 +743,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -941,6 +957,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_get_enrollment_authorized_access.1.json b/contracts/hamplard/test_snapshots/test/test_get_enrollment_authorized_access.1.json index ac694a5..b0bfe59 100644 --- a/contracts/hamplard/test_snapshots/test/test_get_enrollment_authorized_access.1.json +++ b/contracts/hamplard/test_snapshots/test/test_get_enrollment_authorized_access.1.json @@ -522,6 +522,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -783,6 +791,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -791,6 +810,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_get_enrollment_history_unauthorized_access.1.json b/contracts/hamplard/test_snapshots/test/test_get_enrollment_history_unauthorized_access.1.json index ae61ba7..ae78d76 100644 --- a/contracts/hamplard/test_snapshots/test/test_get_enrollment_history_unauthorized_access.1.json +++ b/contracts/hamplard/test_snapshots/test/test_get_enrollment_history_unauthorized_access.1.json @@ -522,6 +522,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -783,6 +791,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -791,6 +810,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" @@ -918,6 +948,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -926,6 +967,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_get_enrollment_returns_none_after_ttl_expiry.1.json b/contracts/hamplard/test_snapshots/test/test_get_enrollment_returns_none_after_ttl_expiry.1.json index 6a4a3df..519f9a0 100644 --- a/contracts/hamplard/test_snapshots/test/test_get_enrollment_returns_none_after_ttl_expiry.1.json +++ b/contracts/hamplard/test_snapshots/test/test_get_enrollment_returns_none_after_ttl_expiry.1.json @@ -498,6 +498,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_get_enrollment_unauthorized_access.1.json b/contracts/hamplard/test_snapshots/test/test_get_enrollment_unauthorized_access.1.json index 481c9a2..4bb69af 100644 --- a/contracts/hamplard/test_snapshots/test/test_get_enrollment_unauthorized_access.1.json +++ b/contracts/hamplard/test_snapshots/test/test_get_enrollment_unauthorized_access.1.json @@ -448,6 +448,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -709,6 +717,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -717,6 +736,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_has_completed_distinguishes_absent_enrollment_from_incomplete.1.json b/contracts/hamplard/test_snapshots/test/test_has_completed_distinguishes_absent_enrollment_from_incomplete.1.json index 5c973b0..cf9f8b7 100644 --- a/contracts/hamplard/test_snapshots/test/test_has_completed_distinguishes_absent_enrollment_from_incomplete.1.json +++ b/contracts/hamplard/test_snapshots/test/test_has_completed_distinguishes_absent_enrollment_from_incomplete.1.json @@ -478,6 +478,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -741,6 +749,17 @@ "string": "evidence_hash" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -749,6 +768,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_has_completed_returns_false_when_enrollment_expired.1.json b/contracts/hamplard/test_snapshots/test/test_has_completed_returns_false_when_enrollment_expired.1.json index 5eac411..a5fd037 100644 --- a/contracts/hamplard/test_snapshots/test/test_has_completed_returns_false_when_enrollment_expired.1.json +++ b/contracts/hamplard/test_snapshots/test/test_has_completed_returns_false_when_enrollment_expired.1.json @@ -476,6 +476,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -737,6 +745,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -745,6 +764,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_has_completed_returns_true_when_completed_before_expiry.1.json b/contracts/hamplard/test_snapshots/test/test_has_completed_returns_true_when_completed_before_expiry.1.json index 06054ff..90cc7da 100644 --- a/contracts/hamplard/test_snapshots/test/test_has_completed_returns_true_when_completed_before_expiry.1.json +++ b/contracts/hamplard/test_snapshots/test/test_has_completed_returns_true_when_completed_before_expiry.1.json @@ -503,6 +503,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -766,6 +774,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -774,6 +793,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_instructor_can_update_content_hash_on_active_course.1.json b/contracts/hamplard/test_snapshots/test/test_instructor_can_update_content_hash_on_active_course.1.json index 2978bae..17da745 100644 --- a/contracts/hamplard/test_snapshots/test/test_instructor_can_update_content_hash_on_active_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_instructor_can_update_content_hash_on_active_course.1.json @@ -402,6 +402,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_instructor_can_update_content_hash_on_paused_course.1.json b/contracts/hamplard/test_snapshots/test/test_instructor_can_update_content_hash_on_paused_course.1.json index 2426197..f76ce4c 100644 --- a/contracts/hamplard/test_snapshots/test/test_instructor_can_update_content_hash_on_paused_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_instructor_can_update_content_hash_on_paused_course.1.json @@ -424,6 +424,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_instructor_earnings_accumulate_and_withdraw.1.json b/contracts/hamplard/test_snapshots/test/test_instructor_earnings_accumulate_and_withdraw.1.json index 0acb796..4dccbc1 100644 --- a/contracts/hamplard/test_snapshots/test/test_instructor_earnings_accumulate_and_withdraw.1.json +++ b/contracts/hamplard/test_snapshots/test/test_instructor_earnings_accumulate_and_withdraw.1.json @@ -479,6 +479,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -740,6 +748,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 800000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -748,6 +767,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 200000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_instructor_self_enrollment_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_instructor_self_enrollment_rejected.1.json index 3194561..ec2814d 100644 --- a/contracts/hamplard/test_snapshots/test/test_instructor_self_enrollment_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_instructor_self_enrollment_rejected.1.json @@ -402,6 +402,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_instructor_total_earnings_across_courses.1.json b/contracts/hamplard/test_snapshots/test/test_instructor_total_earnings_across_courses.1.json index 0e1539b..64b75de 100644 --- a/contracts/hamplard/test_snapshots/test/test_instructor_total_earnings_across_courses.1.json +++ b/contracts/hamplard/test_snapshots/test/test_instructor_total_earnings_across_courses.1.json @@ -580,6 +580,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -786,6 +794,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1095,6 +1111,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 320000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1103,6 +1130,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "student" @@ -1226,6 +1264,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 480000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1234,6 +1283,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 120000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_is_enrolled_check.1.json b/contracts/hamplard/test_snapshots/test/test_is_enrolled_check.1.json index f96b7ab..310826d 100644 --- a/contracts/hamplard/test_snapshots/test/test_is_enrolled_check.1.json +++ b/contracts/hamplard/test_snapshots/test/test_is_enrolled_check.1.json @@ -449,6 +449,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -710,6 +718,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 240000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -718,6 +737,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 60000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_issue_certificate_after_revoke_is_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_issue_certificate_after_revoke_is_rejected.1.json new file mode 100644 index 0000000..d89f42f --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_issue_certificate_after_revoke_is_rejected.1.json @@ -0,0 +1,2165 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-REVOKE-REISSUE" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-REVOKE-REISSUE" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "enroll", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REISSUE" + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_completed", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REISSUE" + }, + { + "string": "evidence" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_certificate", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "CERT-ORIGINAL" + }, + { + "string": "COURSE-REVOKE-REISSUE" + }, + { + "string": "Course Title" + }, + { + "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "revoke_certificate", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "CERT-ORIGINAL" + }, + { + "string": "ACADEMIC_DISHONESTY" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 1, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Certificate" + }, + { + "string": "CERT-ORIGINAL" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Certificate" + }, + { + "string": "CERT-ORIGINAL" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-REVOKE-REISSUE" + } + }, + { + "key": { + "symbol": "course_title" + }, + "val": { + "string": "Course Title" + } + }, + { + "key": { + "symbol": "enrollment_reference" + }, + "val": { + "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "CERT-ORIGINAL" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "instructor_signature" + }, + "val": "void" + }, + { + "key": { + "symbol": "issued_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "issued_by" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + }, + { + "key": { + "symbol": "revocation_reason" + }, + "val": { + "string": "ACADEMIC_DISHONESTY" + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "revoked_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "revoked_by" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-REVOKE-REISSUE" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-REVOKE-REISSUE" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-REVOKE-REISSUE" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-REVOKE-REISSUE" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-REVOKE-REISSUE" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-REVOKE-REISSUE" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REISSUE" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REISSUE" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount_paid" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "certificate_id" + }, + "val": { + "string": "CERT-ORIGINAL" + } + }, + { + "key": { + "symbol": "certificate_issued" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "completed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-REVOKE-REISSUE" + } + }, + { + "key": { + "symbol": "course_version" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrolled_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "evidence_hash" + }, + "val": { + "string": "evidence" + } + }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, + { + "key": { + "symbol": "is_refunded" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-REVOKE-REISSUE" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "total_certificates" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "total_completions" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "total_students" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "TotalActiveEnrollments" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518401 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518401 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 99900000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_issue_certificate_empty_id_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_issue_certificate_empty_id_rejected.1.json index 9147435..ff554be 100644 --- a/contracts/hamplard/test_snapshots/test/test_issue_certificate_empty_id_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_issue_certificate_empty_id_rejected.1.json @@ -476,6 +476,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -739,6 +747,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -747,6 +766,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_issue_certificate_id_too_long.1.json b/contracts/hamplard/test_snapshots/test/test_issue_certificate_id_too_long.1.json index 598c3d3..976bfc5 100644 --- a/contracts/hamplard/test_snapshots/test/test_issue_certificate_id_too_long.1.json +++ b/contracts/hamplard/test_snapshots/test/test_issue_certificate_id_too_long.1.json @@ -476,6 +476,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -739,6 +747,17 @@ "string": "hash" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -747,6 +766,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_issue_certificate_title_too_long.1.json b/contracts/hamplard/test_snapshots/test/test_issue_certificate_title_too_long.1.json index 1c67380..9be73e1 100644 --- a/contracts/hamplard/test_snapshots/test/test_issue_certificate_title_too_long.1.json +++ b/contracts/hamplard/test_snapshots/test/test_issue_certificate_title_too_long.1.json @@ -476,6 +476,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -739,6 +747,17 @@ "string": "hash" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -747,6 +766,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_issue_certificate_with_instructor_signature.1.json b/contracts/hamplard/test_snapshots/test/test_issue_certificate_with_instructor_signature.1.json index 2e2a01c..bb90994 100644 --- a/contracts/hamplard/test_snapshots/test/test_issue_certificate_with_instructor_signature.1.json +++ b/contracts/hamplard/test_snapshots/test/test_issue_certificate_with_instructor_signature.1.json @@ -682,6 +682,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -947,6 +955,17 @@ "string": "evidence_hash" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -955,6 +974,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_issue_certificate_without_instructor_signature.1.json b/contracts/hamplard/test_snapshots/test/test_issue_certificate_without_instructor_signature.1.json index f82312b..a938dbe 100644 --- a/contracts/hamplard/test_snapshots/test/test_issue_certificate_without_instructor_signature.1.json +++ b/contracts/hamplard/test_snapshots/test/test_issue_certificate_without_instructor_signature.1.json @@ -678,6 +678,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -943,6 +951,17 @@ "string": "evidence_hash" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -951,6 +970,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_after_min_duration_succeeds.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_after_min_duration_succeeds.1.json index d7678b7..52a61e6 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_after_min_duration_succeeds.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_after_min_duration_succeeds.1.json @@ -498,6 +498,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -761,6 +769,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -769,6 +788,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_before_min_duration_fails.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_before_min_duration_fails.1.json index 4b7ea40..f85b1b4 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_before_min_duration_fails.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_before_min_duration_fails.1.json @@ -470,6 +470,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -731,6 +739,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -739,6 +758,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_default_zero_delay_allows_immediate_completion.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_default_zero_delay_allows_immediate_completion.1.json index 20141c6..4864701 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_default_zero_delay_allows_immediate_completion.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_default_zero_delay_allows_immediate_completion.1.json @@ -476,6 +476,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -739,6 +747,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -747,6 +766,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_event_contains_full_completion_details.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_event_contains_full_completion_details.1.json new file mode 100644 index 0000000..0803fd6 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_event_contains_full_completion_details.1.json @@ -0,0 +1,1917 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-COMPLETION-EVENT" + }, + { + "i128": { + "hi": 0, + "lo": 500000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-COMPLETION-EVENT" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "enroll", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-COMPLETION-EVENT" + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + }, + { + "i128": { + "hi": 0, + "lo": 500000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_completed", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-COMPLETION-EVENT" + }, + { + "string": "completion_evidence" + } + ] + } + }, + "sub_invocations": [] + } + ] + ] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 1, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-COMPLETION-EVENT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-COMPLETION-EVENT" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-COMPLETION-EVENT" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 500000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 500000000 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-COMPLETION-EVENT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-COMPLETION-EVENT" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-COMPLETION-EVENT" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-COMPLETION-EVENT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-COMPLETION-EVENT" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount_paid" + }, + "val": { + "i128": { + "hi": 0, + "lo": 500000000 + } + } + }, + { + "key": { + "symbol": "certificate_id" + }, + "val": "void" + }, + { + "key": { + "symbol": "certificate_issued" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "completed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-COMPLETION-EVENT" + } + }, + { + "key": { + "symbol": "course_version" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrolled_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "evidence_hash" + }, + "val": { + "string": "completion_evidence" + } + }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, + { + "key": { + "symbol": "is_refunded" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-COMPLETION-EVENT" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "total_certificates" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "total_completions" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "total_students" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "TotalActiveEnrollments" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518401 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518401 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 99500000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "course_completed" + }, + { + "string": "COURSE-COMPLETION-EVENT" + } + ], + "data": { + "vec": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "u32": 1 + } + ] + } + } + } + }, + "failed_call": false + } + ] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_no_evidence_requires_student_auth.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_no_evidence_requires_student_auth.1.json index 2d0a5fa..2dd63b4 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_no_evidence_requires_student_auth.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_no_evidence_requires_student_auth.1.json @@ -497,6 +497,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -758,6 +766,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -766,6 +785,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1925,6 +1955,9 @@ }, { "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "u32": 1 } ] } diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_on_archived_course_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_on_archived_course_rejected.1.json index 0d7861b..1524b1a 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_on_archived_course_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_on_archived_course_rejected.1.json @@ -548,6 +548,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -811,6 +819,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -819,6 +838,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_panics_when_enrollment_expired.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_panics_when_enrollment_expired.1.json index 18b5a22..af4cb5d 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_panics_when_enrollment_expired.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_panics_when_enrollment_expired.1.json @@ -475,6 +475,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -736,6 +744,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -744,6 +763,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_rejects_archived_course_even_with_active_enrollment.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_rejects_archived_course_even_with_active_enrollment.1.json index cffe811..3a638d3 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_rejects_archived_course_even_with_active_enrollment.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_rejects_archived_course_even_with_active_enrollment.1.json @@ -558,6 +558,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_rejects_mismatched_enrollment_course_id.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_rejects_mismatched_enrollment_course_id.1.json index 86701d3..1b2f44b 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_rejects_mismatched_enrollment_course_id.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_rejects_mismatched_enrollment_course_id.1.json @@ -474,6 +474,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -735,6 +743,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -743,6 +762,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_succeeds_on_paused_course.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_succeeds_on_paused_course.1.json index ab085bc..364760f 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_succeeds_on_paused_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_succeeds_on_paused_course.1.json @@ -522,6 +522,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -785,6 +793,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -793,6 +812,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_unauthorized_includes_operation.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_unauthorized_includes_operation.1.json index 90e11d8..ad82f9c 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_unauthorized_includes_operation.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_unauthorized_includes_operation.1.json @@ -448,6 +448,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -709,6 +717,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -717,6 +736,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 10000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_mark_completed_with_evidence_does_not_require_student_auth.1.json b/contracts/hamplard/test_snapshots/test/test_mark_completed_with_evidence_does_not_require_student_auth.1.json index 6333d83..998e283 100644 --- a/contracts/hamplard/test_snapshots/test/test_mark_completed_with_evidence_does_not_require_student_auth.1.json +++ b/contracts/hamplard/test_snapshots/test/test_mark_completed_with_evidence_does_not_require_student_auth.1.json @@ -500,6 +500,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -763,6 +771,17 @@ "string": "some_evidence_hash" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -771,6 +790,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_multi_sig_admin_events_record_both_actors.1.json b/contracts/hamplard/test_snapshots/test/test_multi_sig_admin_events_record_both_actors.1.json index ef0cd49..6b9a019 100644 --- a/contracts/hamplard/test_snapshots/test/test_multi_sig_admin_events_record_both_actors.1.json +++ b/contracts/hamplard/test_snapshots/test/test_multi_sig_admin_events_record_both_actors.1.json @@ -550,6 +550,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_multiple_certificates_share_same_issued_by.1.json b/contracts/hamplard/test_snapshots/test/test_multiple_certificates_share_same_issued_by.1.json index bfbaf39..28c7d30 100644 --- a/contracts/hamplard/test_snapshots/test/test_multiple_certificates_share_same_issued_by.1.json +++ b/contracts/hamplard/test_snapshots/test/test_multiple_certificates_share_same_issued_by.1.json @@ -1040,6 +1040,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1246,6 +1254,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1559,6 +1575,17 @@ "string": "proof-a" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1567,6 +1594,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1694,6 +1732,17 @@ "string": "proof-b" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1702,6 +1751,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_multiple_enrollments_aggregate_earnings.1.json b/contracts/hamplard/test_snapshots/test/test_multiple_enrollments_aggregate_earnings.1.json index 2a7661e..0c6657f 100644 --- a/contracts/hamplard/test_snapshots/test/test_multiple_enrollments_aggregate_earnings.1.json +++ b/contracts/hamplard/test_snapshots/test/test_multiple_enrollments_aggregate_earnings.1.json @@ -590,6 +590,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -851,6 +859,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -859,6 +878,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" @@ -982,6 +1012,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -990,6 +1031,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" @@ -1113,6 +1165,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1121,6 +1184,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_multiple_students_same_course.1.json b/contracts/hamplard/test_snapshots/test/test_multiple_students_same_course.1.json index 62cf013..eccaf3e 100644 --- a/contracts/hamplard/test_snapshots/test/test_multiple_students_same_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_multiple_students_same_course.1.json @@ -732,6 +732,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -993,6 +1001,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1001,6 +1020,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" @@ -1124,6 +1154,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1132,6 +1173,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" @@ -1255,6 +1307,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1263,6 +1326,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" @@ -1386,6 +1460,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1394,6 +1479,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" @@ -1517,6 +1613,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1525,6 +1632,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_old_admin_rejected_for_all_admin_only_functions_after_transfer.1.json b/contracts/hamplard/test_snapshots/test/test_old_admin_rejected_for_all_admin_only_functions_after_transfer.1.json index 787191a..d2c58c6 100644 --- a/contracts/hamplard/test_snapshots/test/test_old_admin_rejected_for_all_admin_only_functions_after_transfer.1.json +++ b/contracts/hamplard/test_snapshots/test/test_old_admin_rejected_for_all_admin_only_functions_after_transfer.1.json @@ -936,6 +936,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1142,6 +1150,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1455,6 +1471,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1463,6 +1490,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" @@ -1586,6 +1624,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1594,6 +1643,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_pause_and_unpause_course.1.json b/contracts/hamplard/test_snapshots/test/test_pause_and_unpause_course.1.json index 24bb470..b5cf4f0 100644 --- a/contracts/hamplard/test_snapshots/test/test_pause_and_unpause_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_pause_and_unpause_course.1.json @@ -422,6 +422,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_pause_course_double_pause_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_pause_course_double_pause_rejected.1.json index 519e021..d25bebe 100644 --- a/contracts/hamplard/test_snapshots/test/test_pause_course_double_pause_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_pause_course_double_pause_rejected.1.json @@ -400,6 +400,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_platform_counter_decrements_on_completion.1.json b/contracts/hamplard/test_snapshots/test/test_platform_counter_decrements_on_completion.1.json index 2627d10..192c6ef 100644 --- a/contracts/hamplard/test_snapshots/test/test_platform_counter_decrements_on_completion.1.json +++ b/contracts/hamplard/test_snapshots/test/test_platform_counter_decrements_on_completion.1.json @@ -642,6 +642,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -905,6 +913,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -913,6 +932,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1036,6 +1066,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1044,6 +1085,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1167,6 +1219,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1175,6 +1238,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_platform_counter_decrements_on_refund.1.json b/contracts/hamplard/test_snapshots/test/test_platform_counter_decrements_on_refund.1.json index ff201b0..de93c28 100644 --- a/contracts/hamplard/test_snapshots/test/test_platform_counter_decrements_on_refund.1.json +++ b/contracts/hamplard/test_snapshots/test/test_platform_counter_decrements_on_refund.1.json @@ -690,6 +690,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -951,6 +959,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -959,6 +978,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -1082,6 +1112,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1090,6 +1131,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_platform_pause_lifecycle_end_to_end.1.json b/contracts/hamplard/test_snapshots/test/test_platform_pause_lifecycle_end_to_end.1.json index 2f8963b..707636a 100644 --- a/contracts/hamplard/test_snapshots/test/test_platform_pause_lifecycle_end_to_end.1.json +++ b/contracts/hamplard/test_snapshots/test/test_platform_pause_lifecycle_end_to_end.1.json @@ -589,6 +589,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -852,6 +860,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -860,6 +879,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" @@ -983,6 +1013,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -991,6 +1032,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_process_refund_event_includes_admin.1.json b/contracts/hamplard/test_snapshots/test/test_process_refund_event_includes_admin.1.json index 8d5e253..4baec65 100644 --- a/contracts/hamplard/test_snapshots/test/test_process_refund_event_includes_admin.1.json +++ b/contracts/hamplard/test_snapshots/test/test_process_refund_event_includes_admin.1.json @@ -523,6 +523,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_propose_upgrade_authorized.1.json b/contracts/hamplard/test_snapshots/test/test_propose_upgrade_authorized.1.json new file mode 100644 index 0000000..351b58a --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_propose_upgrade_authorized.1.json @@ -0,0 +1,773 @@ +{ + "generators": { + "address": 8, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ], + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PendingUpgrade" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "effective_ledger" + }, + "val": { + "u32": 17280 + } + }, + { + "key": { + "symbol": "new_wasm_hash" + }, + "val": { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + }, + { + "key": { + "symbol": "proposed_at_ledger" + }, + "val": { + "u32": 0 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_propose_upgrade_unauthorized.1.json b/contracts/hamplard/test_snapshots/test/test_propose_upgrade_unauthorized.1.json new file mode 100644 index 0000000..ec6bbd5 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_propose_upgrade_unauthorized.1.json @@ -0,0 +1,621 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_re_enroll_after_completion_succeeds.1.json b/contracts/hamplard/test_snapshots/test/test_re_enroll_after_completion_succeeds.1.json index d76d175..ec926dc 100644 --- a/contracts/hamplard/test_snapshots/test/test_re_enroll_after_completion_succeeds.1.json +++ b/contracts/hamplard/test_snapshots/test/test_re_enroll_after_completion_succeeds.1.json @@ -550,6 +550,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -811,6 +819,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -819,6 +838,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" @@ -946,6 +976,17 @@ "string": "evidence_1" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -954,6 +995,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_re_enroll_archives_original_completion_and_certificate.1.json b/contracts/hamplard/test_snapshots/test/test_re_enroll_archives_original_completion_and_certificate.1.json index e7cc072..c356351 100644 --- a/contracts/hamplard/test_snapshots/test/test_re_enroll_archives_original_completion_and_certificate.1.json +++ b/contracts/hamplard/test_snapshots/test/test_re_enroll_archives_original_completion_and_certificate.1.json @@ -750,6 +750,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1011,6 +1019,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1019,6 +1038,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" @@ -1148,6 +1178,17 @@ "string": "evidence_original" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1156,6 +1197,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_re_enroll_before_completion_fails.1.json b/contracts/hamplard/test_snapshots/test/test_re_enroll_before_completion_fails.1.json index d1c64fe..b80c80b 100644 --- a/contracts/hamplard/test_snapshots/test/test_re_enroll_before_completion_fails.1.json +++ b/contracts/hamplard/test_snapshots/test/test_re_enroll_before_completion_fails.1.json @@ -448,6 +448,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -709,6 +717,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -717,6 +736,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_re_enroll_multiple_times_accumulates_history.1.json b/contracts/hamplard/test_snapshots/test/test_re_enroll_multiple_times_accumulates_history.1.json index c1825c0..d6d905a 100644 --- a/contracts/hamplard/test_snapshots/test/test_re_enroll_multiple_times_accumulates_history.1.json +++ b/contracts/hamplard/test_snapshots/test/test_re_enroll_multiple_times_accumulates_history.1.json @@ -670,6 +670,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -931,6 +939,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -939,6 +958,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" @@ -1066,6 +1096,17 @@ "string": "evidence-1" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1074,6 +1115,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" @@ -1151,6 +1203,17 @@ "string": "evidence-2" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1159,6 +1222,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_re_enroll_without_prior_enrollment_fails.1.json b/contracts/hamplard/test_snapshots/test/test_re_enroll_without_prior_enrollment_fails.1.json index 1b6238d..7bd2e03 100644 --- a/contracts/hamplard/test_snapshots/test/test_re_enroll_without_prior_enrollment_fails.1.json +++ b/contracts/hamplard/test_snapshots/test/test_re_enroll_without_prior_enrollment_fails.1.json @@ -377,6 +377,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_refund_lifecycle.1.json b/contracts/hamplard/test_snapshots/test/test_refund_lifecycle.1.json index 47d3de6..8b7c696 100644 --- a/contracts/hamplard/test_snapshots/test/test_refund_lifecycle.1.json +++ b/contracts/hamplard/test_snapshots/test/test_refund_lifecycle.1.json @@ -552,6 +552,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_refund_rejection.1.json b/contracts/hamplard/test_snapshots/test/test_refund_rejection.1.json index 83fae41..01d2d86 100644 --- a/contracts/hamplard/test_snapshots/test/test_refund_rejection.1.json +++ b/contracts/hamplard/test_snapshots/test/test_refund_rejection.1.json @@ -499,6 +499,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -760,6 +768,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 800000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -768,6 +787,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 200000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_refund_request_at_window_boundary_succeeds.1.json b/contracts/hamplard/test_snapshots/test/test_refund_request_at_window_boundary_succeeds.1.json index c83a0b3..4293e9e 100644 --- a/contracts/hamplard/test_snapshots/test/test_refund_request_at_window_boundary_succeeds.1.json +++ b/contracts/hamplard/test_snapshots/test/test_refund_request_at_window_boundary_succeeds.1.json @@ -492,6 +492,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -753,6 +761,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -761,6 +780,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_refund_request_far_past_window_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_refund_request_far_past_window_rejected.1.json index 63794d6..bf4c509 100644 --- a/contracts/hamplard/test_snapshots/test/test_refund_request_far_past_window_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_refund_request_far_past_window_rejected.1.json @@ -470,6 +470,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -731,6 +739,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -739,6 +758,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_refund_request_one_ledger_past_window_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_refund_request_one_ledger_past_window_rejected.1.json index b32f56e..3716082 100644 --- a/contracts/hamplard/test_snapshots/test/test_refund_request_one_ledger_past_window_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_refund_request_one_ledger_past_window_rejected.1.json @@ -470,6 +470,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -731,6 +739,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -739,6 +758,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_refund_request_outside_window_fails.1.json b/contracts/hamplard/test_snapshots/test/test_refund_request_outside_window_fails.1.json index b823a5e..ec75ed1 100644 --- a/contracts/hamplard/test_snapshots/test/test_refund_request_outside_window_fails.1.json +++ b/contracts/hamplard/test_snapshots/test/test_refund_request_outside_window_fails.1.json @@ -470,6 +470,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -731,6 +739,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 800000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -739,6 +758,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 200000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_refund_request_within_window_succeeds.1.json b/contracts/hamplard/test_snapshots/test/test_refund_request_within_window_succeeds.1.json index c2d3e51..f420bff 100644 --- a/contracts/hamplard/test_snapshots/test/test_refund_request_within_window_succeeds.1.json +++ b/contracts/hamplard/test_snapshots/test/test_refund_request_within_window_succeeds.1.json @@ -470,6 +470,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -731,6 +739,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -739,6 +758,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_refund_window_zero_rejects_all_requests.1.json b/contracts/hamplard/test_snapshots/test/test_refund_window_zero_rejects_all_requests.1.json index 132f2c2..0222f0e 100644 --- a/contracts/hamplard/test_snapshots/test/test_refund_window_zero_rejects_all_requests.1.json +++ b/contracts/hamplard/test_snapshots/test/test_refund_window_zero_rejects_all_requests.1.json @@ -470,6 +470,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -731,6 +739,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -739,6 +758,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_register_course_custom_fee.1.json b/contracts/hamplard/test_snapshots/test/test_register_course_custom_fee.1.json index aabcf7d..ac69f57 100644 --- a/contracts/hamplard/test_snapshots/test/test_register_course_custom_fee.1.json +++ b/contracts/hamplard/test_snapshots/test/test_register_course_custom_fee.1.json @@ -355,6 +355,14 @@ "u32": 30 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_register_course_distinct_hashes_stored_independently.1.json b/contracts/hamplard/test_snapshots/test/test_register_course_distinct_hashes_stored_independently.1.json index 9de80d3..4dabb0e 100644 --- a/contracts/hamplard/test_snapshots/test/test_register_course_distinct_hashes_stored_independently.1.json +++ b/contracts/hamplard/test_snapshots/test/test_register_course_distinct_hashes_stored_independently.1.json @@ -394,6 +394,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -600,6 +608,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_register_course_id_at_max_length_succeeds.1.json b/contracts/hamplard/test_snapshots/test/test_register_course_id_at_max_length_succeeds.1.json index f313bd8..81ad302 100644 --- a/contracts/hamplard/test_snapshots/test/test_register_course_id_at_max_length_succeeds.1.json +++ b/contracts/hamplard/test_snapshots/test/test_register_course_id_at_max_length_succeeds.1.json @@ -355,6 +355,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_register_course_price_at_range_boundaries_succeeds.1.json b/contracts/hamplard/test_snapshots/test/test_register_course_price_at_range_boundaries_succeeds.1.json index 7d3c765..713b6c1 100644 --- a/contracts/hamplard/test_snapshots/test/test_register_course_price_at_range_boundaries_succeeds.1.json +++ b/contracts/hamplard/test_snapshots/test/test_register_course_price_at_range_boundaries_succeeds.1.json @@ -394,6 +394,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -600,6 +608,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_register_course_price_zero_still_allowed.1.json b/contracts/hamplard/test_snapshots/test/test_register_course_price_zero_still_allowed.1.json index a5fc3d5..3c52778 100644 --- a/contracts/hamplard/test_snapshots/test/test_register_course_price_zero_still_allowed.1.json +++ b/contracts/hamplard/test_snapshots/test/test_register_course_price_zero_still_allowed.1.json @@ -355,6 +355,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_register_course_stores_content_hash.1.json b/contracts/hamplard/test_snapshots/test/test_register_course_stores_content_hash.1.json index f5d01d9..bb63da3 100644 --- a/contracts/hamplard/test_snapshots/test/test_register_course_stores_content_hash.1.json +++ b/contracts/hamplard/test_snapshots/test/test_register_course_stores_content_hash.1.json @@ -355,6 +355,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_register_course_success.1.json b/contracts/hamplard/test_snapshots/test/test_register_course_success.1.json index f3d877b..442fd98 100644 --- a/contracts/hamplard/test_snapshots/test/test_register_course_success.1.json +++ b/contracts/hamplard/test_snapshots/test/test_register_course_success.1.json @@ -355,6 +355,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_register_duplicate_course.1.json b/contracts/hamplard/test_snapshots/test/test_register_duplicate_course.1.json index b078889..65dbec2 100644 --- a/contracts/hamplard/test_snapshots/test/test_register_duplicate_course.1.json +++ b/contracts/hamplard/test_snapshots/test/test_register_duplicate_course.1.json @@ -355,6 +355,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_registration_limit_enforced.1.json b/contracts/hamplard/test_snapshots/test/test_registration_limit_enforced.1.json index b95b6c3..0e8c51b 100644 --- a/contracts/hamplard/test_snapshots/test/test_registration_limit_enforced.1.json +++ b/contracts/hamplard/test_snapshots/test/test_registration_limit_enforced.1.json @@ -415,6 +415,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -621,6 +629,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_reissue_certificate_allowed_after_re_enroll.1.json b/contracts/hamplard/test_snapshots/test/test_reissue_certificate_allowed_after_re_enroll.1.json new file mode 100644 index 0000000..c087e65 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_reissue_certificate_allowed_after_re_enroll.1.json @@ -0,0 +1,2680 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-REVOKE-REENROLL" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "enroll", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_completed", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REENROLL" + }, + { + "string": "evidence" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_certificate", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "CERT-FIRST-ATTEMPT" + }, + { + "string": "COURSE-REVOKE-REENROLL" + }, + { + "string": "Course Title" + }, + { + "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "revoke_certificate", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "CERT-FIRST-ATTEMPT" + }, + { + "string": "ACADEMIC_DISHONESTY" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "re_enroll", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + } + }, + "sub_invocations": [ + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "transfer", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "mark_completed", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REENROLL" + }, + { + "string": "evidence-2" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "issue_certificate", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "CERT-SECOND-ATTEMPT" + }, + { + "string": "COURSE-REVOKE-REENROLL" + }, + { + "string": "Course Title" + }, + { + "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + "void", + "void" + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 1, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Certificate" + }, + { + "string": "CERT-FIRST-ATTEMPT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Certificate" + }, + { + "string": "CERT-FIRST-ATTEMPT" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-REVOKE-REENROLL" + } + }, + { + "key": { + "symbol": "course_title" + }, + "val": { + "string": "Course Title" + } + }, + { + "key": { + "symbol": "enrollment_reference" + }, + "val": { + "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "CERT-FIRST-ATTEMPT" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "instructor_signature" + }, + "val": "void" + }, + { + "key": { + "symbol": "issued_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "issued_by" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + }, + { + "key": { + "symbol": "revocation_reason" + }, + "val": { + "string": "ACADEMIC_DISHONESTY" + } + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "revoked_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "revoked_by" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Certificate" + }, + { + "string": "CERT-SECOND-ATTEMPT" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Certificate" + }, + { + "string": "CERT-SECOND-ATTEMPT" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-REVOKE-REENROLL" + } + }, + { + "key": { + "symbol": "course_title" + }, + "val": { + "string": "Course Title" + } + }, + { + "key": { + "symbol": "enrollment_reference" + }, + "val": { + "string": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "CERT-SECOND-ATTEMPT" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "instructor_signature" + }, + "val": "void" + }, + { + "key": { + "symbol": "issued_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "issued_by" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + }, + { + "key": { + "symbol": "revocation_reason" + }, + "val": "void" + }, + { + "key": { + "symbol": "revoked" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "revoked_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "revoked_by" + }, + "val": "void" + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-REVOKE-REENROLL" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 200000000 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Enrollment" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount_paid" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "certificate_id" + }, + "val": { + "string": "CERT-SECOND-ATTEMPT" + } + }, + { + "key": { + "symbol": "certificate_issued" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "completed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-REVOKE-REENROLL" + } + }, + { + "key": { + "symbol": "course_version" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrolled_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "evidence_hash" + }, + "val": { + "string": "evidence-2" + } + }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, + { + "key": { + "symbol": "is_refunded" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "EnrollmentHistory" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "EnrollmentHistory" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + }, + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "map": [ + { + "key": { + "symbol": "amount_paid" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "certificate_id" + }, + "val": { + "string": "CERT-FIRST-ATTEMPT" + } + }, + { + "key": { + "symbol": "certificate_issued" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "completed" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "course_id" + }, + "val": { + "string": "COURSE-REVOKE-REENROLL" + } + }, + { + "key": { + "symbol": "course_version" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrolled_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "evidence_hash" + }, + "val": { + "string": "evidence" + } + }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, + { + "key": { + "symbol": "is_refunded" + }, + "val": { + "bool": false + } + }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, + { + "key": { + "symbol": "student" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + } + ] + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-REVOKE-REENROLL" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorStats" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "total_certificates" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "total_completions" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "total_students" + }, + "val": { + "u32": 2 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorTotalEarnings" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "TotalActiveEnrollments" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 115220454072064130 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1194852393571756375 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1301173170172112462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 6517132746326325848 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 6517132746326325848 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 3126073502131104533 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 160000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518401 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518401 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYON" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 99800000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_revoke_certificate.1.json b/contracts/hamplard/test_snapshots/test/test_revoke_certificate.1.json index ad3c522..31a7051 100644 --- a/contracts/hamplard/test_snapshots/test/test_revoke_certificate.1.json +++ b/contracts/hamplard/test_snapshots/test/test_revoke_certificate.1.json @@ -711,6 +711,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -976,6 +984,17 @@ "string": "evidence_hash" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 480000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -984,6 +1003,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 120000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_revoke_certificate_double_revocation_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_revoke_certificate_double_revocation_rejected.1.json index c112578..be0a7f7 100644 --- a/contracts/hamplard/test_snapshots/test/test_revoke_certificate_double_revocation_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_revoke_certificate_double_revocation_rejected.1.json @@ -688,6 +688,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -953,6 +961,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -961,6 +980,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_revoke_certificate_id_cannot_be_reused_to_unrevoke.1.json b/contracts/hamplard/test_snapshots/test/test_revoke_certificate_id_cannot_be_reused_to_unrevoke.1.json index 3ed261c..b0eb648 100644 --- a/contracts/hamplard/test_snapshots/test/test_revoke_certificate_id_cannot_be_reused_to_unrevoke.1.json +++ b/contracts/hamplard/test_snapshots/test/test_revoke_certificate_id_cannot_be_reused_to_unrevoke.1.json @@ -847,6 +847,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1053,6 +1061,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -1366,6 +1382,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1374,6 +1401,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" @@ -1499,6 +1537,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1507,6 +1556,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_revoke_certificate_metadata_persisted.1.json b/contracts/hamplard/test_snapshots/test/test_revoke_certificate_metadata_persisted.1.json index 8e080bc..d666209 100644 --- a/contracts/hamplard/test_snapshots/test/test_revoke_certificate_metadata_persisted.1.json +++ b/contracts/hamplard/test_snapshots/test/test_revoke_certificate_metadata_persisted.1.json @@ -731,6 +731,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -996,6 +1004,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1004,6 +1023,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_revoke_certificate_metadata_unchanged_after_rejected_double_revoke.1.json b/contracts/hamplard/test_snapshots/test/test_revoke_certificate_metadata_unchanged_after_rejected_double_revoke.1.json index d6dbc9e..daa940d 100644 --- a/contracts/hamplard/test_snapshots/test/test_revoke_certificate_metadata_unchanged_after_rejected_double_revoke.1.json +++ b/contracts/hamplard/test_snapshots/test/test_revoke_certificate_metadata_unchanged_after_rejected_double_revoke.1.json @@ -732,6 +732,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -997,6 +1005,17 @@ "string": "evidence" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -1005,6 +1024,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_revoke_certificate_unauthorized_includes_operation.1.json b/contracts/hamplard/test_snapshots/test/test_revoke_certificate_unauthorized_includes_operation.1.json index 0c452fb..1d3baf1 100644 --- a/contracts/hamplard/test_snapshots/test/test_revoke_certificate_unauthorized_includes_operation.1.json +++ b/contracts/hamplard/test_snapshots/test/test_revoke_certificate_unauthorized_includes_operation.1.json @@ -679,6 +679,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -942,6 +950,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 40000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -950,6 +969,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 10000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_nonexistent_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_nonexistent_rejected.1.json new file mode 100644 index 0000000..eef6881 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_nonexistent_rejected.1.json @@ -0,0 +1,1128 @@ +{ + "generators": { + "address": 8, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 1, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-B" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_self_reference_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_self_reference_rejected.1.json new file mode 100644 index 0000000..9812864 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_self_reference_rejected.1.json @@ -0,0 +1,1128 @@ +{ + "generators": { + "address": 8, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-SELF" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-SELF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 1, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-SELF" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-SELF" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-SELF" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-SELF" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-SELF" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-SELF" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-SELF" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_success.1.json b/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_success.1.json new file mode 100644 index 0000000..25de83d --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_success.1.json @@ -0,0 +1,1585 @@ +{ + "generators": { + "address": 8, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_prerequisite_courses", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "vec": [ + { + "string": "COURSE-PREREQ-A" + } + ] + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 2, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-B" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 5806905060045992000 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_unauthorized.1.json b/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_unauthorized.1.json new file mode 100644 index 0000000..43d0a77 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_set_prerequisite_courses_unauthorized.1.json @@ -0,0 +1,1519 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-A" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "register_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + }, + { + "string": "COURSE-PREREQ-B" + }, + { + "i128": { + "hi": 0, + "lo": 100000000 + } + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + }, + { + "u32": 0 + }, + "void", + { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "approve_course", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 2, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-A" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Course" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "active_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "certificates_issued" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "content_hash" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000000" + } + }, + { + "key": { + "symbol": "created_at_ledger" + }, + "val": { + "u32": 1 + } + }, + { + "key": { + "symbol": "enrollment_expiry_ledgers" + }, + "val": "void" + }, + { + "key": { + "symbol": "enrollment_start_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "expires_at_ledger" + }, + "val": "void" + }, + { + "key": { + "symbol": "id" + }, + "val": { + "string": "COURSE-PREREQ-B" + } + }, + { + "key": { + "symbol": "instructor" + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + }, + { + "key": { + "symbol": "last_updated_ledger" + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "symbol": "max_capacity" + }, + "val": "void" + }, + { + "key": { + "symbol": "max_certificates" + }, + "val": "void" + }, + { + "key": { + "symbol": "min_completion_ledgers" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "platform_fee_percent" + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, + { + "key": { + "symbol": "price" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, + { + "key": { + "symbol": "status" + }, + "val": { + "vec": [ + { + "symbol": "Active" + } + ] + } + }, + { + "key": { + "symbol": "token" + }, + "val": { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + }, + { + "key": { + "symbol": "total_earned" + }, + "val": { + "i128": { + "hi": 0, + "lo": 0 + } + } + }, + { + "key": { + "symbol": "total_enrollments" + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "symbol": "version" + }, + "val": { + "u32": 1 + } + } + ] + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-A" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseInstructorRef" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + }, + "durability": "persistent", + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + } + }, + "ext": "v0" + }, + 6300001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "CourseList" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "InstructorCourseList" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "durability": "persistent", + "val": { + "vec": [ + { + "string": "COURSE-PREREQ-A" + }, + { + "string": "COURSE-PREREQ-B" + } + ] + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 2 + } + }, + { + "key": { + "vec": [ + { + "symbol": "InstructorPendingCourseCount" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM" + } + ] + }, + "val": { + "u32": 0 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 6277191135259896685 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312001 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLZM", + "key": { + "ledger_key_nonce": { + "nonce": 8370022561469687789 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6312000 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_set_upgrade_timelock_authorized.1.json b/contracts/hamplard/test_snapshots/test/test_set_upgrade_timelock_authorized.1.json new file mode 100644 index 0000000..0101001 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_set_upgrade_timelock_authorized.1.json @@ -0,0 +1,747 @@ +{ + "generators": { + "address": 8, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_upgrade_timelock", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "u32": 500 + } + ] + } + }, + "sub_invocations": [] + } + ], + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "set_upgrade_timelock", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "u32": 500 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "UpgradeTimelock" + } + ] + }, + "val": { + "u32": 500 + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_set_upgrade_timelock_unauthorized_fails.1.json b/contracts/hamplard/test_snapshots/test/test_set_upgrade_timelock_unauthorized_fails.1.json new file mode 100644 index 0000000..ec6bbd5 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_set_upgrade_timelock_unauthorized_fails.1.json @@ -0,0 +1,621 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_treasury_update_delay.1.json b/contracts/hamplard/test_snapshots/test/test_treasury_update_delay.1.json index f8846de..7106f63 100644 --- a/contracts/hamplard/test_snapshots/test/test_treasury_update_delay.1.json +++ b/contracts/hamplard/test_snapshots/test/test_treasury_update_delay.1.json @@ -570,6 +570,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -831,6 +839,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -839,6 +858,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" @@ -962,6 +992,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -970,6 +1011,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_unauthorized_instructor_withdraw_fails.1.json b/contracts/hamplard/test_snapshots/test/test_unauthorized_instructor_withdraw_fails.1.json index def402d..c95b6dc 100644 --- a/contracts/hamplard/test_snapshots/test/test_unauthorized_instructor_withdraw_fails.1.json +++ b/contracts/hamplard/test_snapshots/test/test_unauthorized_instructor_withdraw_fails.1.json @@ -448,6 +448,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -709,6 +717,17 @@ }, "val": "void" }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 400000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -717,6 +736,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_update_content_hash_archived_course_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_update_content_hash_archived_course_rejected.1.json index 28af5f5..ff1e10f 100644 --- a/contracts/hamplard/test_snapshots/test/test_update_content_hash_archived_course_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_update_content_hash_archived_course_rejected.1.json @@ -449,6 +449,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_update_content_hash_emits_event.1.json b/contracts/hamplard/test_snapshots/test/test_update_content_hash_emits_event.1.json index 23ec1ee..75cb2e1 100644 --- a/contracts/hamplard/test_snapshots/test/test_update_content_hash_emits_event.1.json +++ b/contracts/hamplard/test_snapshots/test/test_update_content_hash_emits_event.1.json @@ -401,6 +401,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_update_content_hash_random_caller_rejected.1.json b/contracts/hamplard/test_snapshots/test/test_update_content_hash_random_caller_rejected.1.json index e69321b..5af46fe 100644 --- a/contracts/hamplard/test_snapshots/test/test_update_content_hash_random_caller_rejected.1.json +++ b/contracts/hamplard/test_snapshots/test/test_update_content_hash_random_caller_rejected.1.json @@ -377,6 +377,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_update_content_hash_updates_last_updated_ledger.1.json b/contracts/hamplard/test_snapshots/test/test_update_content_hash_updates_last_updated_ledger.1.json index 5098da1..d2344ff 100644 --- a/contracts/hamplard/test_snapshots/test/test_update_content_hash_updates_last_updated_ledger.1.json +++ b/contracts/hamplard/test_snapshots/test/test_update_content_hash_updates_last_updated_ledger.1.json @@ -402,6 +402,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" diff --git a/contracts/hamplard/test_snapshots/test/test_upgrade_contract_before_timelock_fails.1.json b/contracts/hamplard/test_snapshots/test/test_upgrade_contract_before_timelock_fails.1.json new file mode 100644 index 0000000..e305d49 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_upgrade_contract_before_timelock_fails.1.json @@ -0,0 +1,772 @@ +{ + "generators": { + "address": 8, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ], + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PendingUpgrade" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "effective_ledger" + }, + "val": { + "u32": 17280 + } + }, + { + "key": { + "symbol": "new_wasm_hash" + }, + "val": { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + }, + { + "key": { + "symbol": "proposed_at_ledger" + }, + "val": { + "u32": 0 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_upgrade_contract_executes_after_timelock_elapses.1.json b/contracts/hamplard/test_snapshots/test/test_upgrade_contract_executes_after_timelock_elapses.1.json new file mode 100644 index 0000000..f5f49a1 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_upgrade_contract_executes_after_timelock_elapses.1.json @@ -0,0 +1,810 @@ +{ + "generators": { + "address": 8, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ], + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 17281, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PendingUpgrade" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "effective_ledger" + }, + "val": { + "u32": 17280 + } + }, + { + "key": { + "symbol": "new_wasm_hash" + }, + "val": { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + }, + { + "key": { + "symbol": "proposed_at_ledger" + }, + "val": { + "u32": 0 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [ + { + "event": { + "ext": "v0", + "contract_id": "0000000000000000000000000000000000000000000000000000000000000001", + "type_": "contract", + "body": { + "v0": { + "topics": [ + { + "symbol": "upgrade_executed" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ], + "data": { + "vec": [ + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "u32": 17281 + } + ] + } + } + } + }, + "failed_call": true + } + ] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_upgrade_contract_unauthorized_fails.1.json b/contracts/hamplard/test_snapshots/test/test_upgrade_contract_unauthorized_fails.1.json new file mode 100644 index 0000000..42b1352 --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_upgrade_contract_unauthorized_fails.1.json @@ -0,0 +1,772 @@ +{ + "generators": { + "address": 9, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ], + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "propose_upgrade", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PendingUpgrade" + } + ] + }, + "val": { + "map": [ + { + "key": { + "symbol": "effective_ledger" + }, + "val": { + "u32": 17280 + } + }, + { + "key": { + "symbol": "new_wasm_hash" + }, + "val": { + "bytes": "0707070707070707070707070707070707070707070707070707070707070707" + } + }, + { + "key": { + "symbol": "proposed_at_ledger" + }, + "val": { + "u32": 0 + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 2032731177588607455 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM", + "key": { + "ledger_key_nonce": { + "nonce": 4270020994084947596 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_upgrade_contract_without_proposal_fails.1.json b/contracts/hamplard/test_snapshots/test/test_upgrade_contract_without_proposal_fails.1.json new file mode 100644 index 0000000..a1511fc --- /dev/null +++ b/contracts/hamplard/test_snapshots/test/test_upgrade_contract_without_proposal_fails.1.json @@ -0,0 +1,621 @@ +{ + "generators": { + "address": 8, + "nonce": 0 + }, + "auth": [ + [], + [ + [ + "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "set_admin", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + { + "function": { + "contract_fn": { + "contract_address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "function_name": "mint", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + }, + { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "init", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + }, + { + "u32": 20 + }, + { + "u32": 50 + }, + { + "u32": 1000 + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [ + [ + "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + { + "function": { + "contract_fn": { + "contract_address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "function_name": "add_approved_token", + "args": [ + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + } + }, + "sub_invocations": [] + } + ] + ], + [] + ], + "ledger": { + "protocol_version": 22, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 4096, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 6312000, + "ledger_entries": [ + [ + { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "account": { + "account_id": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "balance": 0, + "seq_num": 0, + "num_sub_entries": 0, + "inflation_dest": null, + "flags": 0, + "home_domain": "", + "thresholds": "01010101", + "signers": [], + "ext": "v0" + } + }, + "ext": "v0" + }, + null + ] + ], + [ + { + "contract_data": { + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V", + "key": { + "ledger_key_nonce": { + "nonce": 801925984706572462 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": [ + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "ApprovedToken" + }, + { + "address": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF" + } + ] + }, + "val": { + "bool": true + } + }, + { + "key": { + "vec": [ + { + "symbol": "DefaultFee" + } + ] + }, + "val": { + "u32": 20 + } + }, + { + "key": { + "vec": [ + { + "symbol": "MaxCoursesPerInstructor" + } + ] + }, + "val": { + "u32": 50 + } + }, + { + "key": { + "vec": [ + { + "symbol": "PlatformPaused" + } + ] + }, + "val": { + "bool": false + } + }, + { + "key": { + "vec": [ + { + "symbol": "RefundWindow" + } + ] + }, + "val": { + "u32": 1000 + } + }, + { + "key": { + "vec": [ + { + "symbol": "SecondaryAdmin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3IM" + } + }, + { + "key": { + "vec": [ + { + "symbol": "Treasury" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDR4" + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 6300000 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "ledger_key_nonce": { + "nonce": 5541220902715666415 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 1033654523790656264 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITA4", + "key": { + "ledger_key_nonce": { + "nonce": 4837995959683129791 + } + }, + "durability": "temporary", + "val": "void" + } + }, + "ext": "v0" + }, + 6311999 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": { + "vec": [ + { + "symbol": "Balance" + }, + { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQG5" + } + ] + }, + "durability": "persistent", + "val": { + "map": [ + { + "key": { + "symbol": "amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 100000000000 + } + } + }, + { + "key": { + "symbol": "authorized" + }, + "val": { + "bool": true + } + }, + { + "key": { + "symbol": "clawback" + }, + "val": { + "bool": false + } + } + ] + } + } + }, + "ext": "v0" + }, + 518400 + ] + ], + [ + { + "contract_data": { + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CBUSYNQKASUYFWYC3M2GUEDMX4AIVWPALDBYJPNK6554BREHTGZ2IUNF", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": "stellar_asset", + "storage": [ + { + "key": { + "symbol": "METADATA" + }, + "val": { + "map": [ + { + "key": { + "symbol": "decimal" + }, + "val": { + "u32": 7 + } + }, + { + "key": { + "symbol": "name" + }, + "val": { + "string": "aaa:GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGO6V" + } + }, + { + "key": { + "symbol": "symbol" + }, + "val": { + "string": "aaa" + } + } + ] + } + }, + { + "key": { + "vec": [ + { + "symbol": "Admin" + } + ] + }, + "val": { + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4" + } + }, + { + "key": { + "vec": [ + { + "symbol": "AssetInfo" + } + ] + }, + "val": { + "vec": [ + { + "symbol": "AlphaNum4" + }, + { + "map": [ + { + "key": { + "symbol": "asset_code" + }, + "val": { + "string": "aaa\\0" + } + }, + { + "key": { + "symbol": "issuer" + }, + "val": { + "bytes": "0000000000000000000000000000000000000000000000000000000000000003" + } + } + ] + } + ] + } + } + ] + } + } + } + }, + "ext": "v0" + }, + 120960 + ] + ], + [ + { + "contract_code": { + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + } + }, + [ + { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + 6300000 + ] + ] + ] + }, + "events": [] +} \ No newline at end of file diff --git a/contracts/hamplard/test_snapshots/test/test_verify_certificate_false_does_not_mutate_state.1.json b/contracts/hamplard/test_snapshots/test/test_verify_certificate_false_does_not_mutate_state.1.json index 0a071fe..47d3a3d 100644 --- a/contracts/hamplard/test_snapshots/test/test_verify_certificate_false_does_not_mutate_state.1.json +++ b/contracts/hamplard/test_snapshots/test/test_verify_certificate_false_does_not_mutate_state.1.json @@ -711,6 +711,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -976,6 +984,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -984,6 +1003,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_verify_certificate_returns_false_for_revoked_cert.1.json b/contracts/hamplard/test_snapshots/test/test_verify_certificate_returns_false_for_revoked_cert.1.json index e6d6026..3d09080 100644 --- a/contracts/hamplard/test_snapshots/test/test_verify_certificate_returns_false_for_revoked_cert.1.json +++ b/contracts/hamplard/test_snapshots/test/test_verify_certificate_returns_false_for_revoked_cert.1.json @@ -689,6 +689,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -954,6 +962,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -962,6 +981,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student" diff --git a/contracts/hamplard/test_snapshots/test/test_verify_certificate_returns_true_for_valid_cert.1.json b/contracts/hamplard/test_snapshots/test/test_verify_certificate_returns_true_for_valid_cert.1.json index 98fa62f..3e44c83 100644 --- a/contracts/hamplard/test_snapshots/test/test_verify_certificate_returns_true_for_valid_cert.1.json +++ b/contracts/hamplard/test_snapshots/test/test_verify_certificate_returns_true_for_valid_cert.1.json @@ -657,6 +657,14 @@ "u32": 20 } }, + { + "key": { + "symbol": "prerequisite_course_ids" + }, + "val": { + "vec": [] + } + }, { "key": { "symbol": "price" @@ -922,6 +930,17 @@ "string": "proof" } }, + { + "key": { + "symbol": "instructor_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 80000000 + } + } + }, { "key": { "symbol": "is_refunded" @@ -930,6 +949,17 @@ "bool": false } }, + { + "key": { + "symbol": "platform_amount" + }, + "val": { + "i128": { + "hi": 0, + "lo": 20000000 + } + } + }, { "key": { "symbol": "student"