PocketIC Version 8.0.0: New Response Types

Pocket IC

We have released PocketIC server 8.0.0 and its Rust library 7.0.0. This release contains new response types (announced in a separate forum post) and support for using the PocketIC Rust library in DFX (announced in the roadmap from the past PocketIC release forum post).

Changelog

Here’s an overview of the new features included in the latest PocketIC release and their use cases:

  • New response types (Vec<u8> and RejectResponse): more consistent with the (Rust) agent response types and less boilerplate code in tests (see a separate forum post for more details).
  • New instance endpoint /read/ingress_status to fetch the status of an update call submitted through an ingress message. This is an alternative to a mainnet-like read state request at /api/v2/canister/…/read_state which requires signatures and cannot thus be used when impersonating principals.
  • New instance endpoint /update/set_certified_time to set the current (certified) IC time on all subnets of the PocketIC instance. The (certified) time set via this endpoint is immediately observed by subsequent query calls and read state requests (the existing endpoint /update/set_time only sets the time of the next round, but doesn’t actually change the IC time until the next round is executed separately).
  • The instance endpoint /update/execute_ingress_message is removed: use the two instance endpoints /update/submit_ingress_message and /update/await_ingress_message to submit and then await an ingress message instead.

For a complete list of changes, see the server changelog and the library changelog.

Conclusion

Your feedback helps us improve PocketIC, so please let us know your thoughts and questions in this thread.

Thank you for providing feature requests and feedback on your PocketIC user experience!

4 Likes

PocketIC Python has been updated to version 3.0.1 to support these latest changes.