@chipi-stack/backend 14.12.1 → 14.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -535,9 +535,16 @@ declare class ChipiTreasury {
535
535
  * from their own server could see a quorum applied to a proposal but never
536
536
  * choose it.
537
537
  *
538
- * IMPORTANT: a quorum can only RAISE `requiredApprovals` above the wallet's
539
- * on-chain threshold. The chain is the hard floor, so a quorum set below it
540
- * produces proposals that reach `APPROVED` here and then revert at execute.
538
+ * IMPORTANT: a quorum can only RAISE `requiredApprovals`, never lower it
539
+ * below the wallet's on-chain threshold. Set one below and it is SILENTLY
540
+ * RAISED at propose time, not rejected and not reverted: a `routineQuorum`
541
+ * of 1 on a 2-of-3 wallet is clamped to 2 and executes normally. The risk is
542
+ * a policy that reads 1 everywhere while the system uses 2.
543
+ *
544
+ * The server now rejects that outright so the stored value means what it
545
+ * says (server-side enforcement, live since 2026-08; no SDK upgrade
546
+ * needed). To genuinely lower the requirement, lower the on-chain
547
+ * threshold first with `propose_set_threshold` (48h timelock).
541
548
  *
542
549
  * Server-only: it needs a `sk_`.
543
550
  *
@@ -2057,9 +2064,14 @@ declare const TIMELOCK_SECONDS: {
2057
2064
  readonly REMOVE_GUARDIAN: 86400;
2058
2065
  readonly RECOVERY: 604800;
2059
2066
  };
2060
- /** `DEFAULT_OP_EXPIRY_SECONDS` from `pending_ops.cairo:78`. After this
2061
- * window from propose-time, the pending op auto-expires even if no one
2062
- * calls cancel. UI should reflect this so users don't sit on a stale op. */
2067
+ /** `DEFAULT_OP_EXPIRY_SECONDS` from `pending_ops.cairo:78`. The window is
2068
+ * measured from `valid_after`, not from propose time:
2069
+ * `expires_at = now + timelock + DEFAULT_OP_EXPIRY_SECONDS`
2070
+ * (governance/component.cairo). So a 48h op (add_owner, set_threshold) lives
2071
+ * 16 days from propose and a 7d recovery lives 21. Read `get_pending_op` for
2072
+ * the exact `expires_at` instead of adding 14d to the propose timestamp. The
2073
+ * op auto-expires at that point even if no one calls cancel; UI should
2074
+ * reflect it so users don't sit on a stale op. */
2063
2075
  declare const DEFAULT_OP_EXPIRY_SECONDS = 1209600;
2064
2076
  /** Owner role on-chain. ROLE_OWNER can sign OEs; ROLE_GUARDIAN can
2065
2077
  * only `initiate_recovery` (no general signing power). */
package/dist/index.d.ts CHANGED
@@ -535,9 +535,16 @@ declare class ChipiTreasury {
535
535
  * from their own server could see a quorum applied to a proposal but never
536
536
  * choose it.
537
537
  *
538
- * IMPORTANT: a quorum can only RAISE `requiredApprovals` above the wallet's
539
- * on-chain threshold. The chain is the hard floor, so a quorum set below it
540
- * produces proposals that reach `APPROVED` here and then revert at execute.
538
+ * IMPORTANT: a quorum can only RAISE `requiredApprovals`, never lower it
539
+ * below the wallet's on-chain threshold. Set one below and it is SILENTLY
540
+ * RAISED at propose time, not rejected and not reverted: a `routineQuorum`
541
+ * of 1 on a 2-of-3 wallet is clamped to 2 and executes normally. The risk is
542
+ * a policy that reads 1 everywhere while the system uses 2.
543
+ *
544
+ * The server now rejects that outright so the stored value means what it
545
+ * says (server-side enforcement, live since 2026-08; no SDK upgrade
546
+ * needed). To genuinely lower the requirement, lower the on-chain
547
+ * threshold first with `propose_set_threshold` (48h timelock).
541
548
  *
542
549
  * Server-only: it needs a `sk_`.
543
550
  *
@@ -2057,9 +2064,14 @@ declare const TIMELOCK_SECONDS: {
2057
2064
  readonly REMOVE_GUARDIAN: 86400;
2058
2065
  readonly RECOVERY: 604800;
2059
2066
  };
2060
- /** `DEFAULT_OP_EXPIRY_SECONDS` from `pending_ops.cairo:78`. After this
2061
- * window from propose-time, the pending op auto-expires even if no one
2062
- * calls cancel. UI should reflect this so users don't sit on a stale op. */
2067
+ /** `DEFAULT_OP_EXPIRY_SECONDS` from `pending_ops.cairo:78`. The window is
2068
+ * measured from `valid_after`, not from propose time:
2069
+ * `expires_at = now + timelock + DEFAULT_OP_EXPIRY_SECONDS`
2070
+ * (governance/component.cairo). So a 48h op (add_owner, set_threshold) lives
2071
+ * 16 days from propose and a 7d recovery lives 21. Read `get_pending_op` for
2072
+ * the exact `expires_at` instead of adding 14d to the propose timestamp. The
2073
+ * op auto-expires at that point even if no one calls cancel; UI should
2074
+ * reflect it so users don't sit on a stale op. */
2063
2075
  declare const DEFAULT_OP_EXPIRY_SECONDS = 1209600;
2064
2076
  /** Owner role on-chain. ROLE_OWNER can sign OEs; ROLE_GUARDIAN can
2065
2077
  * only `initiate_recovery` (no general signing power). */
package/dist/index.js CHANGED
@@ -2920,9 +2920,16 @@ var ChipiTreasury = class {
2920
2920
  * from their own server could see a quorum applied to a proposal but never
2921
2921
  * choose it.
2922
2922
  *
2923
- * IMPORTANT: a quorum can only RAISE `requiredApprovals` above the wallet's
2924
- * on-chain threshold. The chain is the hard floor, so a quorum set below it
2925
- * produces proposals that reach `APPROVED` here and then revert at execute.
2923
+ * IMPORTANT: a quorum can only RAISE `requiredApprovals`, never lower it
2924
+ * below the wallet's on-chain threshold. Set one below and it is SILENTLY
2925
+ * RAISED at propose time, not rejected and not reverted: a `routineQuorum`
2926
+ * of 1 on a 2-of-3 wallet is clamped to 2 and executes normally. The risk is
2927
+ * a policy that reads 1 everywhere while the system uses 2.
2928
+ *
2929
+ * The server now rejects that outright so the stored value means what it
2930
+ * says (server-side enforcement, live since 2026-08; no SDK upgrade
2931
+ * needed). To genuinely lower the requirement, lower the on-chain
2932
+ * threshold first with `propose_set_threshold` (48h timelock).
2926
2933
  *
2927
2934
  * Server-only: it needs a `sk_`.
2928
2935
  *