@@ -59,7 +59,7 @@ def _init_dataclass(cls: type, data: dict) -> object:
5959 field_value = data .get (field .name )
6060 # Check if the field expects another dataclass and the value is a dict.
6161 if dataclasses .is_dataclass (field .type ) and isinstance (field_value , dict ):
62- field_values [field .name ] = _init_dataclass (field .type , field_value )
62+ field_values [field .name ] = _init_dataclass (typing . cast ( type , field .type ) , field_value )
6363 else :
6464 field_values [field .name ] = field_value
6565 return cls (** field_values )
@@ -69,17 +69,29 @@ class HelloStringStringArgs:
6969 """Dataclass for hello_string_string arguments"""
7070 name : str
7171
72+ @property
73+ def abi_method_signature (self ) -> str :
74+ return "hello(string)string"
75+
7276@dataclasses .dataclass (frozen = True , kw_only = True )
7377class CreateStringStringArgs :
7478 """Dataclass for create_string_string arguments"""
7579 greeting : str
7680
81+ @property
82+ def abi_method_signature (self ) -> str :
83+ return "create(string)string"
84+
7785@dataclasses .dataclass (frozen = True , kw_only = True )
7886class CreateStringUint32VoidArgs :
7987 """Dataclass for create_string_uint32_void arguments"""
8088 greeting : str
8189 times : int
8290
91+ @property
92+ def abi_method_signature (self ) -> str :
93+ return "create(string,uint32)void"
94+
8395
8496class _LifeCycleAppUpdate :
8597 def __init__ (self , app_client : algokit_utils .AppClient ):
@@ -592,18 +604,20 @@ def decode_return_value(
592604@dataclasses .dataclass (frozen = True )
593605class LifeCycleAppMethodCallCreateParams (
594606 algokit_utils .AppClientCreateSchema , algokit_utils .BaseAppClientMethodCallParams [
595- tuple [ str ] | CreateStringStringArgs | tuple [ str , int ] | CreateStringUint32VoidArgs ,
596- typing . Literal [ "create(string)string" ] | typing . Literal [ "create(string,uint32)void" ] ,
607+ CreateStringStringArgs | CreateStringUint32VoidArgs ,
608+ str | None ,
597609 ]
598610):
599611 """Parameters for creating LifeCycleApp contract using ABI"""
600612 on_complete : typing .Literal [OnComplete .NoOpOC ] | None = None
613+ method : str | None = None
601614
602615 def to_algokit_utils_params (self ) -> algokit_utils .AppClientMethodCallCreateParams :
603616 method_args = _parse_abi_args (self .args )
604617 return algokit_utils .AppClientMethodCallCreateParams (
605618 ** {
606619 ** self .__dict__ ,
620+ "method" : self .method or getattr (self .args , "abi_method_signature" , None ),
607621 "args" : method_args ,
608622 }
609623 )
@@ -617,7 +631,7 @@ def to_algokit_utils_params(self) -> algokit_utils.AppClientBareCallCreateParams
617631 return algokit_utils .AppClientBareCallCreateParams (** self .__dict__ )
618632
619633@dataclasses .dataclass (frozen = True )
620- class LifeCycleAppBareCallUpdateParams (algokit_utils .AppClientBareCallCreateParams ):
634+ class LifeCycleAppBareCallUpdateParams (algokit_utils .AppClientBareCallParams ):
621635 """Parameters for calling LifeCycleApp contract with bare calls"""
622636 on_complete : typing .Literal [OnComplete .UpdateApplicationOC ] | None = None
623637
@@ -862,7 +876,7 @@ def bare(
862876 """Updates an instance using a bare call"""
863877 params = params or algokit_utils .CommonAppCallCreateParams ()
864878 return self .app_factory .params .bare .deploy_update (
865- algokit_utils .AppFactoryCreateParams (** dataclasses .asdict (params )),
879+ algokit_utils .AppClientBareCallParams (** dataclasses .asdict (params )),
866880 )
867881
868882class LifeCycleAppFactoryDeleteParams :
@@ -880,7 +894,7 @@ def bare(
880894 """Deletes an instance using a bare call"""
881895 params = params or algokit_utils .CommonAppCallCreateParams ()
882896 return self .app_factory .params .bare .deploy_delete (
883- algokit_utils .AppFactoryCreateParams (** dataclasses .asdict (params )),
897+ algokit_utils .AppClientBareCallParams (** dataclasses .asdict (params )),
884898 )
885899
886900
0 commit comments