call_old_weight
Call v334 → current #0Legacy call interface using old weight format (deprecated).
View calls on chainCall Workflow
This diagram shows the call execution flow: starting with call_old_weight, passing through validation
(signature, nonce, mortality, fee payment), then pre-dispatch checks, followed by dispatch which emits events: ContractEmitted, Called, DelegateCalled and modifies storage: ContractInfoOf, and finally post-dispatch where ExtrinsicSuccess is emitted and fees are settled.
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
Click items to navigate. Pan and zoom to explore.
Used by: developers
The Big Picture
When Substrate changed weight representation, old call signatures became incompatible. This preserves the old interface for tools that haven't updated. Functionally identical to Contracts.call, just with legacy weight parameters.
Use Cases
- Support old tools/libraries not updated to new weight format
- Backward compatibility during transition periods
From Chain Metadata
Deprecated version if [`Self::call`] for use in an in-storage `Call`.
Input Parameters
| # | Name | Type | Description |
|---|---|---|---|
| 0 | dest | MultiAddress AccountIdLookupOf<T> | dest: Account address as a lookup source (typically resolves to AccountId) |
| 1 | value | Compact<u64> Cpt BalanceOf<T> | value: Balance in chain native currency (RAO for TAO; ÷10⁹) (RAO -> TAO (/ 10^9)) |
| 2 | gas_limit | Compact<u64> Cpt OldWeight | gas_limit: Legacy Substrate weight (pre-WeightV2) (SCALE compact -> integer) |
| 3 | storage_deposit_limit | Option Option<<BalanceOf<T> as codec::HasCompact>::Type> | storage_deposit_limit (Option) |
| 4 | data | Vec<u8> Vec | data (Vec<u8>) |
Permissions
Origin
Unknown
Required Role
Permission data inferred from metadata. May be incomplete.
Requirements
- Same as Contracts.call
- Used for backward compatibility with old tooling
Effects
Events Emitted
Storage Modified
Postconditions
- Same as Contracts.call
Side Effects
- Same as Contracts.call
Code Examples
// ----------------------------------------------------------------------
// HEADS UP: 1 arg below has a complex type with no usable default.
// Look for `undefined as any` and replace it with real value
// before running — the snippet compiles, but will fail at runtime as-is.
// ----------------------------------------------------------------------
import { createClient, Binary } from "polkadot-api";
import { getWsProvider } from "polkadot-api/ws";
import { sub } from "@polkadot-api/descriptors"; // generated by: npx papi add sub -w wss://entrypoint-finney.opentensor.ai:443
const client = createClient(getWsProvider("wss://entrypoint-finney.opentensor.ai:443"));
const api = client.getTypedApi(sub);
// Build call_old_weight call (typed, named args)
const dest = undefined as any /* MultiAddress — replace with real value */;
const value = 0n;
const gas_limit = 0n;
const storage_deposit_limit = undefined;
const data = Binary.fromOpaque(new Uint8Array(0));
const tx = api.tx.Contracts.call_old_weight({
dest,
value,
gas_limit,
storage_deposit_limit,
data,
});Runtime Info
- Pallet Index
- 29
- Call Index
- 0
- First Version
- v334
- Current Version
- v411