47 releases (6 stable)

2.0.0 Mar 15, 2024
1.1.2 Nov 23, 2023
1.1.0 Jun 19, 2023
1.0.1 Dec 19, 2022
0.4.0 Dec 22, 2020

#1296 in Magic Beans

Download history 3644/week @ 2024-03-13 3148/week @ 2024-03-20 2741/week @ 2024-03-27 3590/week @ 2024-04-03 2485/week @ 2024-04-10 2994/week @ 2024-04-17 3723/week @ 2024-04-24 2788/week @ 2024-05-01 3457/week @ 2024-05-08 3020/week @ 2024-05-15 3146/week @ 2024-05-22 3435/week @ 2024-05-29 3471/week @ 2024-06-05 4064/week @ 2024-06-12 3573/week @ 2024-06-19 2916/week @ 2024-06-26

14,746 downloads per month
Used in 120 crates (55 directly)

Apache-2.0

95KB
2K SLoC

CW Controllers: Common controllers for many contracts

This is a collection of "controllers" that we end up reimplementing in many contracts. I use the word "controller" similar to the MVC framework style, where it is an element that encapsulated business logic and data access. We can also directly handle some ExecuteMsg and QueryMsg variants by adding a sub-router to these controllers.

This is the beginning of an experiment in code composition, and how best to reuse code among multiple contracts. We have already seen some "extend" and existing base contract (like cw20-staking extends cw20-base), but this goes for smaller scale units.

Supported controllers:

  • Admin (UpdateAdmin handler, Admin querier, set_admin and is_admin methods)

lib.rs:

This is a collection of "controllers" that we end up reimplementing in many contracts. I use the word "controller" similar to the MVC framework style, where it is an element that encapsulated business logic and data access. We can also directly handle some ExecuteMsg and QueryMsg variants by adding a sub-router to these controllers.

This is the beginning of an experiment in code composition, and how best to reuse code among multiple contracts. We have already seen some "extend" and existing base contract (like cw20-staking extends cw20-base), but this goes for smaller scale units.

Supported controllers:

  • Admin (UpdateAdmin handler, Admin querier, set_admin and is_admin methods)

Dependencies

~3.5–5.5MB
~118K SLoC