@@ -712,7 +712,10 @@ export interface ChainTx<
712712 > ;
713713
714714 /**
715- * Cancel an anonymously scheduled task.
715+ * Cancel a scheduled task (named or anonymous), by providing the block it is scheduled for
716+ * execution in, as well as the index of the task in that block's agenda.
717+ *
718+ * In the case of a named task, it will remove it from the lookup table as well.
716719 *
717720 * @param {number } when
718721 * @param {number } index
@@ -864,6 +867,8 @@ export interface ChainTx<
864867 * original task's configuration, but will have a lower value for `remaining` than the
865868 * original `total_retries`.
866869 *
870+ * This call **cannot** be used to set a retry configuration for a named task.
871+ *
867872 * @param {[number, number] } task
868873 * @param {number } retries
869874 * @param {number } period
@@ -899,6 +904,8 @@ export interface ChainTx<
899904 * original task's configuration, but will have a lower value for `remaining` than the
900905 * original `total_retries`.
901906 *
907+ * This is the only way to set a retry configuration for a named task.
908+ *
902909 * @param {FixedBytes<32> } id
903910 * @param {number } retries
904911 * @param {number } period
@@ -1753,14 +1760,16 @@ export interface ChainTx<
17531760 session : {
17541761 /**
17551762 * Sets the session key(s) of the function caller to `keys`.
1763+ *
17561764 * Allows an account to set its session key prior to becoming a validator.
17571765 * This doesn't take effect until the next session.
17581766 *
1759- * The dispatch origin of this function must be signed.
1760- *
1761- * ## Complexity
1762- * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is
1763- * fixed.
1767+ * - `origin`: The dispatch origin of this function must be signed.
1768+ * - `keys`: The new session keys to set. These are the public keys of all sessions keys
1769+ * setup in the runtime.
1770+ * - `proof`: The proof that `origin` has access to the private keys of `keys`. See
1771+ * [`impl_opaque_keys`](sp_runtime::impl_opaque_keys) for more information about the
1772+ * proof format.
17641773 *
17651774 * @param {AssetHubWestendRuntimeSessionKeys } keys
17661775 * @param {BytesLike } proof
@@ -1791,10 +1800,6 @@ export interface ChainTx<
17911800 * means being a controller account) or directly convertible into a validator ID (which
17921801 * usually means being a stash account).
17931802 *
1794- * ## Complexity
1795- * - `O(1)` in number of key types. Actual cost depends on the number of length of
1796- * `T::Keys::key_ids()` which is fixed.
1797- *
17981803 **/
17991804 purgeKeys : GenericTxCall <
18001805 ( ) => ChainSubmittableExtrinsic <
@@ -3074,7 +3079,9 @@ export interface ChainTx<
30743079 * Register approval for a dispatch to be made from a deterministic composite account if
30753080 * approved by a total of `threshold - 1` of `other_signatories`.
30763081 *
3077- * If there are enough, then dispatch the call.
3082+ * **If the approval threshold is met (including the sender's approval), this will
3083+ * immediately execute the call.** This is the only way to execute a multisig call -
3084+ * `approve_as_multi` will never trigger execution.
30783085 *
30793086 * Payment: `DepositBase` will be reserved if this is the first approval, plus
30803087 * `threshold` times `DepositFactor`. It is returned once this dispatch happens or
@@ -3090,8 +3097,9 @@ export interface ChainTx<
30903097 * transaction index) of the first approval transaction.
30913098 * - `call`: The call to be executed.
30923099 *
3093- * NOTE: Unless this is the final approval, you will generally want to use
3094- * `approve_as_multi` instead, since it only requires a hash of the call.
3100+ * NOTE: For intermediate approvals (not the final approval), you should generally use
3101+ * `approve_as_multi` instead, since it only requires a hash of the call and is more
3102+ * efficient.
30953103 *
30963104 * Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise
30973105 * on success, result is `Ok` and the result from the interior call, if it was executed,
@@ -3146,6 +3154,13 @@ export interface ChainTx<
31463154 * Register approval for a dispatch to be made from a deterministic composite account if
31473155 * approved by a total of `threshold - 1` of `other_signatories`.
31483156 *
3157+ * **This function will NEVER execute the call, even if the approval threshold is
3158+ * reached.** It only registers approval. To actually execute the call, `as_multi` must
3159+ * be called with the full call data by any of the signatories.
3160+ *
3161+ * This function is more efficient than `as_multi` for intermediate approvals since it
3162+ * only requires the call hash, not the full call data.
3163+ *
31493164 * Payment: `DepositBase` will be reserved if this is the first approval, plus
31503165 * `threshold` times `DepositFactor`. It is returned once this dispatch happens or
31513166 * is cancelled.
@@ -3160,7 +3175,8 @@ export interface ChainTx<
31603175 * transaction index) of the first approval transaction.
31613176 * - `call_hash`: The hash of the call to be executed.
31623177 *
3163- * NOTE: If this is the final approval, you will want to use `as_multi` instead.
3178+ * NOTE: To execute the call after approvals are gathered, any signatory must call
3179+ * `as_multi` with the full call data. This function cannot execute the call.
31643180 *
31653181 * ## Complexity
31663182 * - `O(S)`.
@@ -11536,26 +11552,6 @@ export interface ChainTx<
1153611552 >
1153711553 > ;
1153811554
11539- /**
11540- * Set the validators who cannot be slashed (if any).
11541- *
11542- * The dispatch origin must be Root.
11543- *
11544- * @param {Array<AccountId32Like> } invulnerables
11545- **/
11546- setInvulnerables : GenericTxCall <
11547- ( invulnerables : Array < AccountId32Like > ) => ChainSubmittableExtrinsic <
11548- {
11549- pallet : 'Staking' ;
11550- palletCall : {
11551- name : 'SetInvulnerables' ;
11552- params : { invulnerables : Array < AccountId32Like > } ;
11553- } ;
11554- } ,
11555- ChainKnownTypes
11556- >
11557- > ;
11558-
1155911555 /**
1156011556 * Force a current staker to become completely unstaked, immediately.
1156111557 *
@@ -13089,16 +13085,17 @@ export interface ChainTx<
1308913085 * Set session keys for a validator. Keys are validated on AssetHub and forwarded to RC.
1309013086 *
1309113087 * **Validation on AssetHub:**
13092- * Keys are decoded as `T::RelayChainSessionKeys` to ensure they match RC's expected
13093- * format. This prevents malicious validators from bloating the XCM queue with garbage
13094- * data.
13088+ * - Keys are decoded as `T::RelayChainSessionKeys` to ensure they match RC's expected
13089+ * format.
13090+ * - Ownership proof is validated using `OpaqueKeys::ownership_proof_is_valid`.
13091+ *
13092+ * If validation passes, only the validated keys are sent to RC (with empty proof),
13093+ * since RC trusts AH's validation. This prevents malicious validators from bloating
13094+ * the XCM queue with garbage data.
1309513095 *
1309613096 * This, combined with the enforcement of a high minimum validator bond, makes it
1309713097 * reasonable not to require a deposit.
1309813098 *
13099- * Note: Ownership proof validation requires PR #1739 which is not backported to
13100- * stable2512. The proof parameter will be added when that PR is backported.
13101- *
1310213099 * **Fees:**
1310313100 * The actual cost of this call is higher than what the weight-based fee estimate shows.
1310413101 * In addition to the local transaction weight fee, the stash account is charged an XCM
@@ -13119,18 +13116,20 @@ export interface ChainTx<
1311913116 * set keys before declaring intent to validate will fail with NotValidator.
1312013117 *
1312113118 * @param {BytesLike } keys
13119+ * @param {BytesLike } proof
1312213120 * @param {bigint | undefined } maxDeliveryAndRemoteExecutionFee
1312313121 **/
1312413122 setKeys : GenericTxCall <
1312513123 (
1312613124 keys : BytesLike ,
13125+ proof : BytesLike ,
1312713126 maxDeliveryAndRemoteExecutionFee : bigint | undefined ,
1312813127 ) => ChainSubmittableExtrinsic <
1312913128 {
1313013129 pallet : 'StakingRcClient' ;
1313113130 palletCall : {
1313213131 name : 'SetKeys' ;
13133- params : { keys : BytesLike ; maxDeliveryAndRemoteExecutionFee : bigint | undefined } ;
13132+ params : { keys : BytesLike ; proof : BytesLike ; maxDeliveryAndRemoteExecutionFee : bigint | undefined } ;
1313413133 } ;
1313513134 } ,
1313613135 ChainKnownTypes
0 commit comments