import { AccountObjectsRequest, Client, PaymentChannelCreate, PaymentChannelClaim, hashes, } from '../../src' const client = new Client('wss://s.altnet.rippletest.net:51233') void claimPayChannel() // The snippet walks us through creating and claiming a Payment Channel. async function claimPayChannel(): Promise { await client.connect() // creating wallets as prerequisite const { wallet: wallet1 } = await client.fundWallet() const { wallet: wallet2 } = await client.fundWallet() console.log('Balances of wallets before Payment Channel is claimed:') console.log(await client.getXrpBalance(wallet1.classicAddress)) console.log(await client.getXrpBalance(wallet2.classicAddress)) // create a Payment Channel and submit and wait for tx to be validated const paymentChannelCreate: PaymentChannelCreate = { TransactionType: 'PaymentChannelCreate', Account: wallet1.classicAddress, Amount: '100', Destination: wallet2.classicAddress, SettleDelay: 86400, PublicKey: wallet1.publicKey, } const paymentChannelResponse = await client.submitAndWait( paymentChannelCreate, { wallet: wallet1 }, ) console.log(paymentChannelResponse) // check that the object was actually created const accountObjectsRequest: AccountObjectsRequest = { command: 'account_objects', account: wallet1.classicAddress, } const accountObjects = (await client.request(accountObjectsRequest)).result .account_objects console.log(accountObjects) // destination claims the Payment Channel and we see the balances to verify. const paymentChannelClaim: PaymentChannelClaim = { Account: wallet2.classicAddress, TransactionType: 'PaymentChannelClaim', Channel: hashes.hashPaymentChannel( wallet1.classicAddress, wallet2.classicAddress, paymentChannelResponse.result.Sequence ?? 0, ), Amount: '100', } const channelClaimResponse = await client.submit(paymentChannelClaim, { wallet: wallet1, }) console.log(channelClaimResponse) console.log('Balances of wallets after Payment Channel is claimed:') console.log(await client.getXrpBalance(wallet1.classicAddress)) console.log(await client.getXrpBalance(wallet2.classicAddress)) await client.disconnect() }