Inter-canister calls to self pricing

I need my canister to be able to call functions of itself, but the names of functions to call are only known at runtime. It is guaranteed that these functions exist on a canister, I just need a way for the wasm module to call it and get back the result.

As far as I remember, inter-canister calls to self allow me to do exactly that. The only question I have is cost-efficiency of such an approach.

How such calls are billed? They are not XNet calls, which means, that they should be billed cheaper than usual. But they are also not binary-local calls, since the message leaves the execution layer for some time.

Also, it would be nice if someone could explain how such calls work in regards to DTS.

Thanks in advance!

All canister calls (whether actually XNet; to a canister on the same subnet; or to self) are priced the same.

1 Like

DTS is unrelated to cross-canister calls. DTS only affects the maximum amount of computation that can happen in one chunk