You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.
This issue tracks the implementation of delegate call in pallet-contract.
Delegate call can be used to:
Create an upgradable contract via the Proxy pattern.
Implement some library that can be called via delegate call.
Split the logic of a big contract into small subcontracts.
There are different ways to implement delegated calls:
Use the existing seal_call function and create a new PRESERVE_CONTEXT flag in CallFlags(possible implementation).
Create a new seal_delegate_call with its own signature.
fn delegate_call(flags:CallFlags, <------ The user can copy or forward input
code_hash_ptr:u32,input_data_ptr:u32,input_data_len:u32,) -> Result<ExecReturnValue,ExecError>
This way we can keep API clean.
The text was updated successfully, but these errors were encountered:
This issue tracks the implementation of delegate call in
pallet-contract
.Delegate call can be used to:
Proxy
pattern.library
that can be called via delegate call.There are different ways to implement delegated calls:
seal_call
function and create a newPRESERVE_CONTEXT
flag inCallFlags
(possible implementation).seal_delegate_call
with its own signature.This way we can keep API clean.
The text was updated successfully, but these errors were encountered: