Listen for incoming payments

In this example, we will use the sub2 SDK to set up a listener for incoming payments to our address. This is useful for anyone who wishes to accept payments with sub2 as you can validate that a payment has successfully gone through and update your backend accordingly. It is assumed that sub2-sdk is installed and set up as done here.

const unwatch: WatchEventReturnType = sub2SDK.watchIncomingPayments(recipientAddress, callbackFn);

Here recipientAddress is of type `0x{string}` and callbackFn is of type (payment: Payment) => any. The callback function is defiend by you and is called on the newly observed payment to the address. For example, you can make a callback function which checks that the subscription index corresponds to an active subscription in your backend and update access accordingly.

The returned value unwatch of the viem type WatchEventReturnType is a function that can be called to stop listening for events.

The Payment type has the following definition and can be imported directly from sub2-sdk:

interface Payment {
  sender: `0x${string}`,
  recipient: `0x${string}`,
  subscriptionIndex: bigint,
  sponsor: `0x${string}`,
  amount: bigint,
  token: `0x${string}`,
  protocolFee: bigint,
  processingFee: bigint,
  processingFeeToken: `0x${string}`,
  terms: bigint,
}

Last updated