@@ -605,6 +605,8 @@ export class GlobalStateContract extends arc4.Contract {
605605 implicitKeyArc4Address = GlobalState ( { initialValue : new Address ( Global . creatorAddress ) } )
606606 implicitKeyArc4UintN128 = GlobalState ( { initialValue : new UintN128 ( 2n ** 100n ) } )
607607 implicitKeyArc4DynamicBytes = GlobalState ( { initialValue : new DynamicBytes ( 'dynamic bytes' ) } )
608+ implicitKeyTuple = GlobalState < [ uint64 , bytes , boolean ] > ( { initialValue : [ Uint64 ( 42 ) , Bytes ( 'Hello' ) , false ] } )
609+ implicitKeyObj = GlobalState < { a : uint64 ; b : bytes ; c : boolean } > ( { initialValue : { a : 42 , b : Bytes ( 'World' ) , c : true } } )
608610
609611 // Explicit key state variables
610612 arc4UintN64 = GlobalState ( { initialValue : new UintN64 ( 1337 ) , key : 'explicit_key_arc4_uintn64' } )
@@ -651,6 +653,16 @@ export class GlobalStateContract extends arc4.Contract {
651653 return this . implicitKeyArc4DynamicBytes . value
652654 }
653655
656+ @arc4 . abimethod ( )
657+ get_implicit_key_tuple ( ) : [ uint64 , bytes , boolean ] {
658+ return this . implicitKeyTuple . value
659+ }
660+
661+ @arc4 . abimethod ( )
662+ get_implicit_key_obj ( ) : { a : uint64 ; b : bytes ; c : boolean } {
663+ return this . implicitKeyObj . value
664+ }
665+
654666 // Getter methods for explicit key state variables
655667 @arc4 . abimethod ( )
656668 get_arc4_uintn64 ( ) : UintN64 {
@@ -723,6 +735,16 @@ export class GlobalStateContract extends arc4.Contract {
723735 this . implicitKeyArc4DynamicBytes . value = value
724736 }
725737
738+ @arc4 . abimethod ( )
739+ set_implicit_key_tuple ( value : [ uint64 , bytes , boolean ] ) {
740+ this . implicitKeyTuple . value = value
741+ }
742+
743+ @arc4 . abimethod ( )
744+ set_implicit_key_obj ( value : { a : uint64 ; b : bytes ; c : boolean } ) {
745+ this . implicitKeyObj . value = value
746+ }
747+
726748 // Setter methods for explicit key state variables
727749 @arc4 . abimethod ( )
728750 set_arc4_uintn64 ( value : UintN64 ) {
@@ -769,6 +791,8 @@ export class LocalStateContract extends arc4.Contract {
769791 implicitKeyArc4Address = LocalState < Address > ( )
770792 implicitKeyArc4UintN128 = LocalState < UintN128 > ( )
771793 implicitKeyArc4DynamicBytes = LocalState < DynamicBytes > ( )
794+ implicitKeyTuple = LocalState < [ uint64 , bytes , boolean ] > ( )
795+ implicitKeyObj = LocalState < { a : uint64 ; b : bytes ; c : boolean } > ( )
772796
773797 // Explicit key state variables
774798 arc4UintN64 = LocalState < UintN64 > ( { key : 'explicit_key_arc4_uintn64' } )
@@ -788,6 +812,8 @@ export class LocalStateContract extends arc4.Contract {
788812 this . implicitKeyArc4Address ( Global . creatorAddress ) . value = new Address ( Global . creatorAddress )
789813 this . implicitKeyArc4UintN128 ( Global . creatorAddress ) . value = new UintN128 ( 2n ** 100n )
790814 this . implicitKeyArc4DynamicBytes ( Global . creatorAddress ) . value = new DynamicBytes ( 'dynamic bytes' )
815+ this . implicitKeyTuple ( Global . creatorAddress ) . value = [ 42 , Bytes ( 'dummy_bytes' ) , true ]
816+ this . implicitKeyObj ( Global . creatorAddress ) . value = { a : Uint64 ( 42 ) , b : Bytes ( 'dummy_bytes' ) , c : true }
791817
792818 this . arc4UintN64 ( Global . creatorAddress ) . value = new UintN64 ( 1337 )
793819 this . arc4Str ( Global . creatorAddress ) . value = new Str ( 'Hello' )
@@ -834,6 +860,16 @@ export class LocalStateContract extends arc4.Contract {
834860 return this . implicitKeyArc4DynamicBytes ( a ) . value
835861 }
836862
863+ @arc4 . abimethod ( )
864+ get_implicit_key_tuple ( a : Account ) : [ uint64 , bytes , boolean ] {
865+ return this . implicitKeyTuple ( a ) . value
866+ }
867+
868+ @arc4 . abimethod ( )
869+ get_implicit_key_obj ( a : Account ) : { a : uint64 ; b : bytes ; c : boolean } {
870+ return this . implicitKeyObj ( a ) . value
871+ }
872+
837873 // Getter methods for explicit key state variables
838874 @arc4 . abimethod ( )
839875 get_arc4_uintn64 ( a : Account ) : arc4 . UintN64 {
0 commit comments