@@ -3,6 +3,7 @@ package integration
33import (
44 "testing"
55
6+ "github.com/Peersyst/xrpl-go/xrpl/rpc"
67 "github.com/Peersyst/xrpl-go/xrpl/testutil/integration"
78 "github.com/Peersyst/xrpl-go/xrpl/transaction"
89 "github.com/Peersyst/xrpl-go/xrpl/transaction/types"
@@ -137,3 +138,115 @@ func TestIntegrationBatchMultisign_Websocket(t *testing.T) {
137138 })
138139 }
139140}
141+
142+ func TestIntegrationBatch_RPC (t * testing.T ) {
143+ env := integration .GetRPCEnv (t )
144+ clientCfg , err := rpc .NewClientConfig (env .Host , rpc .WithFaucetProvider (env .FaucetProvider ))
145+ require .NoError (t , err )
146+ client := rpc .NewClient (clientCfg )
147+
148+ runner := integration .NewRunner (t , client , integration .NewRunnerConfig (
149+ integration .WithWallets (3 ),
150+ ))
151+
152+ err = runner .Setup ()
153+ require .NoError (t , err )
154+ defer runner .Teardown ()
155+
156+ sender := runner .GetWallet (0 )
157+ receiver := runner .GetWallet (1 )
158+
159+ tt := []BatchTest {
160+ {
161+ Name : "pass - valid batch transaction" ,
162+ Batch : & transaction.Batch {
163+ BaseTx : transaction.BaseTx {
164+ Account : runner .GetWallet (0 ).GetAddress (),
165+ TransactionType : transaction .BatchTx ,
166+ },
167+ RawTransactions : []types.RawTransaction {
168+ {
169+ RawTransaction : CreatePaymentTx (sender , receiver , types .XRPCurrencyAmount (1 )).Flatten (),
170+ },
171+ {
172+ RawTransaction : CreatePaymentTx (sender , receiver , types .XRPCurrencyAmount (1 )).Flatten (),
173+ },
174+ },
175+ },
176+ },
177+ }
178+
179+ for _ , tc := range tt {
180+ t .Run (tc .Name , func (t * testing.T ) {
181+ tc .Batch .SetAllOrNothingFlag ()
182+ flatTx := tc .Batch .Flatten ()
183+ err := client .Autofill (& flatTx )
184+
185+ require .NoError (t , err )
186+
187+ _ , err = runner .TestTransaction (& flatTx , sender , "tesSUCCESS" , & integration.TestTransactionOptions {
188+ SkipAutofill : true ,
189+ })
190+ require .NoError (t , err )
191+ })
192+ }
193+ }
194+
195+ func TestIntegrationBatchMultisign_RPC (t * testing.T ) {
196+ env := integration .GetRPCEnv (t )
197+ clientCfg , err := rpc .NewClientConfig (env .Host , rpc .WithFaucetProvider (env .FaucetProvider ))
198+ require .NoError (t , err )
199+ client := rpc .NewClient (clientCfg )
200+
201+ runner := integration .NewRunner (t , client , integration .NewRunnerConfig (
202+ integration .WithWallets (3 ),
203+ ))
204+
205+ err = runner .Setup ()
206+ require .NoError (t , err )
207+ defer runner .Teardown ()
208+
209+ sender := runner .GetWallet (0 )
210+ sender2 := runner .GetWallet (1 )
211+ receiver := runner .GetWallet (2 )
212+
213+ tt := []BatchTest {
214+ {
215+ Name : "pass - valid batch transaction" ,
216+ Batch : & transaction.Batch {
217+ BaseTx : transaction.BaseTx {
218+ Account : sender .GetAddress (),
219+ TransactionType : transaction .BatchTx ,
220+ },
221+ RawTransactions : []types.RawTransaction {
222+ {
223+ RawTransaction : CreatePaymentTx (sender , receiver , types .XRPCurrencyAmount (1 )).Flatten (),
224+ },
225+ {
226+ RawTransaction : CreatePaymentTx (sender2 , receiver , types .XRPCurrencyAmount (1 )).Flatten (),
227+ },
228+ },
229+ },
230+ },
231+ }
232+
233+ for _ , tc := range tt {
234+ t .Run (tc .Name , func (t * testing.T ) {
235+ tc .Batch .SetAllOrNothingFlag ()
236+ flatTx := tc .Batch .Flatten ()
237+ err := client .AutofillMultisigned (& flatTx , 1 )
238+ require .NoError (t , err )
239+
240+ err = wallet .SignMultiBatch (* sender2 , & flatTx , nil )
241+
242+ require .NoError (t , err )
243+
244+ _ , err = runner .TestTransaction (& flatTx , sender , "tesSUCCESS" , & integration.TestTransactionOptions {
245+ SkipAutofill : true ,
246+ })
247+
248+ require .NoError (t , err )
249+ })
250+ }
251+ }
252+
0 commit comments