Is your feature request related to a problem? Please describe.
When a coldkey grants a smart contract ProxyType::Staking proxy rights, the contract currently has no way to act on that coldkey's behalf through chain extensions. The existing V1 extensions (IDs 0–15) dispatch as the contract's own address, and the caller-preserved extensions in #2550 dispatch as the transaction signer. Neither supports the case where a contract needs to manage stake for an account that explicitly delegated proxy authority to it.
Describe the solution you'd like
Add proxy-delegated chain extension variants that accept an on_behalf_of: AccountId parameter identifying the proxied account. Validates proxy with the correct ProxyType & dispatches the operation as the proxied account.
Describe alternatives you've considered
A single generic proxy_execute(real_coldkey, call: RuntimeCall) dispatcher. Did not do this because it requires ink! developers to manually SCALE-encode RuntimeCall bytes.
Additional context
No response
Is your feature request related to a problem? Please describe.
When a coldkey grants a smart contract ProxyType::Staking proxy rights, the contract currently has no way to act on that coldkey's behalf through chain extensions. The existing V1 extensions (IDs 0–15) dispatch as the contract's own address, and the caller-preserved extensions in #2550 dispatch as the transaction signer. Neither supports the case where a contract needs to manage stake for an account that explicitly delegated proxy authority to it.
Describe the solution you'd like
Add proxy-delegated chain extension variants that accept an
on_behalf_of: AccountIdparameter identifying the proxied account. Validates proxy with the correct ProxyType & dispatches the operation as the proxied account.Describe alternatives you've considered
A single generic
proxy_execute(real_coldkey, call: RuntimeCall)dispatcher. Did not do this because it requires ink! developers to manually SCALE-encode RuntimeCall bytes.Additional context
No response