@@ -907,6 +907,7 @@ def do_run_relayed_builtin_functions(memento: "Memento", accounts: "BunchOfAccou
907907 }
908908
909909 named_addresses = {
910+ "sponsor" : named_accounts ["sponsor" ].address ,
910911 "a" : named_accounts ["a" ].address ,
911912 "b" : named_accounts ["b" ].address ,
912913 "c" : named_accounts ["c" ].address ,
@@ -1043,7 +1044,23 @@ def do_run_relayed_builtin_functions(memento: "Memento", accounts: "BunchOfAccou
10431044 ), await_completion = True )
10441045
10451046 # ESDTNFTCreate
1046- # TODO
1047+
1048+ for (sender , relayer ) in [("sponsor" , "a" ), ("sponsor" , "sponsor" )]:
1049+ print (f"## ESDTNFTCreate, sender={ sender } , relayer={ relayer } " )
1050+
1051+ transaction = controller .token_management_transactions_factory .create_transaction_for_creating_nft (
1052+ sender = named_addresses [sender ],
1053+ token_identifier = non_fungible_token ,
1054+ initial_quantity = 1 ,
1055+ name = f"dummy" ,
1056+ royalties = 1000 ,
1057+ hash = "abba" ,
1058+ attributes = bytes .fromhex ("abba" ),
1059+ uris = ["a" , "b" , "c" ]
1060+ )
1061+
1062+ controller .relay_arbitrary_transaction (transaction , relayer = named_accounts [relayer ], apply_nonce = True )
1063+ controller .send (transaction , await_processing_started = True )
10471064
10481065 # ESDTNFTAddQuantity
10491066 # TODO
@@ -1602,6 +1619,16 @@ def create_arbitrary_transaction(self, sender: "Account", receiver: Address, val
16021619
16031620 return transaction
16041621
1622+ def relay_arbitrary_transaction (self , transaction : Transaction , relayer : "Account" , apply_nonce : bool ) -> None :
1623+ transaction .relayer = relayer .address
1624+ transaction .gas_limit += ADDITIONAL_GAS_LIMIT_FOR_RELAYED_V3
1625+
1626+ if apply_nonce :
1627+ self .apply_nonce (transaction )
1628+
1629+ self .sign (transaction )
1630+ self .sign_as_relayer_v3 (transaction )
1631+
16051632 def create_transfer (self , sender : "Account" , receiver : Address , native_amount : int , custom_transfers : list [tuple [str , int , int ]], additional_gas_limit : int = 0 , relayer : Optional ["Account" ] = None ) -> Transaction :
16061633 token_transfers : List [TokenTransfer ] = []
16071634
0 commit comments