# ReceivePolicyReceipt

TIP-1028 receive-policy claim receipt utilities.

When an inbound transfer or mint violates the recipient's receive policy, the
funds are redirected to the `ReceivePolicyGuard` and a `ClaimReceiptV1`
witness is emitted. This module decodes those witnesses (required to later
`claim` or `burn` the blocked funds) from raw bytes or transaction receipts.

[TIP-1028](https://docs.tempo.xyz/protocol/tips/tip-1028)

## Examples

```ts twoslash
// @noErrors
import { ReceivePolicyReceipt } from 'ox/tempo'

const receipts =
  ReceivePolicyReceipt.fromTransactionReceipt(receipt)
const decoded = ReceivePolicyReceipt.decode('0x...')
```

## Functions

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`ReceivePolicyReceipt.decode`](/tempo/reference/ReceivePolicyReceipt/decode) | Decodes a [`ReceivePolicyReceipt.ReceivePolicyReceipt`](/tempo/reference/ReceivePolicyReceipt/types#receivepolicyreceipt) (ABI-encoded `ClaimReceiptV1` witness) into its fields. |
| [`ReceivePolicyReceipt.encode`](/tempo/reference/ReceivePolicyReceipt/encode) | Encodes decoded fields into a [`ReceivePolicyReceipt.ReceivePolicyReceipt`](/tempo/reference/ReceivePolicyReceipt/types#receivepolicyreceipt). Inverse of `decode`. |
| [`ReceivePolicyReceipt.from`](/tempo/reference/ReceivePolicyReceipt/from) | Normalizes a [`ReceivePolicyReceipt.ReceivePolicyReceipt`](/tempo/reference/ReceivePolicyReceipt/types#receivepolicyreceipt) from either an encoded receipt (passthrough) or decoded fields. |
| [`ReceivePolicyReceipt.fromLog`](/tempo/reference/ReceivePolicyReceipt/fromLog) | Extracts the [`ReceivePolicyReceipt.ReceivePolicyReceipt`](/tempo/reference/ReceivePolicyReceipt/types#receivepolicyreceipt) from a `ReceivePolicyGuard` `TransferBlocked` log. |
| [`ReceivePolicyReceipt.fromTransactionReceipt`](/tempo/reference/ReceivePolicyReceipt/fromTransactionReceipt) | Extracts every [`ReceivePolicyReceipt.ReceivePolicyReceipt`](/tempo/reference/ReceivePolicyReceipt/types#receivepolicyreceipt) from a transaction receipt's logs. |

## Types

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`ReceivePolicyReceipt.BlockedReason`](/tempo/reference/ReceivePolicyReceipt/types#receivepolicyreceiptblockedreason) | Reason an inbound transfer or mint was blocked by a receive policy. |
| [`ReceivePolicyReceipt.Decoded`](/tempo/reference/ReceivePolicyReceipt/types#receivepolicyreceiptdecoded) | A decoded [`ReceivePolicyReceipt.ReceivePolicyReceipt`](/tempo/reference/ReceivePolicyReceipt/types#receivepolicyreceipt). |
| [`ReceivePolicyReceipt.Kind`](/tempo/reference/ReceivePolicyReceipt/types#receivepolicyreceiptkind) | Kind of inbound operation that was blocked. |
| [`ReceivePolicyReceipt.ReceivePolicyReceipt`](/tempo/reference/ReceivePolicyReceipt/types#receivepolicyreceiptreceivepolicyreceipt) | A TIP-1028 receive-policy claim receipt: the ABI-encoded `ClaimReceiptV1` witness emitted when an inbound transfer or mint violates the recipient's receive policy. |
