@@ -739,6 +739,7 @@ impl<'a> MoveTestAdapter<'a> for SuiTestAdapter {
739739 sponsor,
740740 gas_budget,
741741 gas_price,
742+ gas_payment,
742743 dev_inspect,
743744 inputs,
744745 } ) => {
@@ -784,8 +785,11 @@ impl<'a> MoveTestAdapter<'a> for SuiTestAdapter {
784785 let summary = if !dev_inspect {
785786 let gas_budget = gas_budget. unwrap_or ( DEFAULT_GAS_BUDGET ) ;
786787 let gas_price = gas_price. unwrap_or ( self . gas_price ) ;
787- let transaction =
788- self . sign_sponsor_txn ( sender, sponsor, |sender, sponsor, gas| {
788+ let transaction = self . sign_sponsor_txn (
789+ sender,
790+ sponsor,
791+ gas_payment,
792+ |sender, sponsor, gas| {
789793 TransactionData :: new_programmable_allow_sponsor (
790794 sender,
791795 vec ! [ gas] ,
@@ -794,7 +798,8 @@ impl<'a> MoveTestAdapter<'a> for SuiTestAdapter {
794798 gas_price,
795799 sponsor,
796800 )
797- } ) ;
801+ } ,
802+ ) ;
798803 self . execute_txn ( transaction) . await ?
799804 } else {
800805 assert ! (
@@ -1364,13 +1369,16 @@ impl<'a> SuiTestAdapter {
13641369 sender : Option < String > ,
13651370 txn_data : impl FnOnce ( /* sender */ SuiAddress , /* gas */ ObjectRef ) -> TransactionData ,
13661371 ) -> Transaction {
1367- self . sign_sponsor_txn ( sender, None , move |sender, _, gas| txn_data ( sender, gas) )
1372+ self . sign_sponsor_txn ( sender, None , None , move |sender, _, gas| {
1373+ txn_data ( sender, gas)
1374+ } )
13681375 }
13691376
13701377 fn sign_sponsor_txn (
13711378 & self ,
13721379 sender : Option < String > ,
13731380 sponsor : Option < String > ,
1381+ payment : Option < FakeID > ,
13741382 txn_data : impl FnOnce (
13751383 /* sender */ SuiAddress ,
13761384 /* sponsor */ SuiAddress ,
@@ -1380,12 +1388,19 @@ impl<'a> SuiTestAdapter {
13801388 let sender = self . get_sender ( sender) ;
13811389 let sponsor = sponsor. map_or ( sender, |a| self . get_sender ( Some ( a) ) ) ;
13821390
1383- let gas_payment = self
1384- . get_object ( & sender. gas , None )
1391+ let payment = if let Some ( payment) = payment {
1392+ self . fake_to_real_object_id ( payment)
1393+ . expect ( "Could not find specified payment object" )
1394+ } else {
1395+ sponsor. gas
1396+ } ;
1397+
1398+ let payment_ref = self
1399+ . get_object ( & payment, None )
13851400 . unwrap ( )
13861401 . compute_object_reference ( ) ;
13871402
1388- let data = txn_data ( sender. address , sponsor. address , gas_payment ) ;
1403+ let data = txn_data ( sender. address , sponsor. address , payment_ref ) ;
13891404 if sender. address == sponsor. address {
13901405 to_sender_signed_transaction ( data, & sender. key_pair )
13911406 } else {
0 commit comments