> For the complete documentation index, see [llms.txt](https://suisec.gitbook.io/suisec/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://suisec.gitbook.io/suisec/suisec-blocklist/scanpackage.md).

# scanPackage

## Usage

```typescript
import { getFullnodeUrl, SuiClient } from "@mysten/sui/client";
import { Transaction } from "@mysten/sui/transactions";
import { Action, SuiSecBlocklist } from "suisecblocklist";

const client = new SuiClient({
  url: getFullnodeUrl("mainnet"),
});

const blocklist = new SuiSecBlocklist();
blocklist.fetchPackagelist();
// setInterval(() => blocklist.fetchPackagelist(), 1000 * 60 * 5);

const tx = new Transaction();
const mint_fee = 10;
const [coin] = tx.splitCoins(tx.gas, [mint_fee]);
tx.moveCall({
  package: "0xd89d1288e1d0a69cc7e5a30625c238e2310e4c23221557b819174f8c14b31ef8",
  module: "managed",
  function: "mint",
  arguments: [
    tx.object(
      "0x4b65993b5d2cfdd2bef8f43b78fd65491317d8ee9a7f44c24a8265b7b305201f",
    ),
    tx.pure.u64(22000000000000n),
    tx.pure.address(
      "0x000647e27dfba064eacdb5bfa1f94c963977823de2d47ff86267ac775cc97c92",
    ),
  ],
});
tx.transferObjects(
  [coin],
  tx.pure.address(
    "0x000647e27dfba064eacdb5bfa1f94c963977823de2d47ff86267ac775cc97c92",
  ),
);

const transactions_command = tx.getData().commands;

let packages: string[] = [];

for (const command of transactions_command) {
  if (command.$kind === "MoveCall") {
    packages.push(command.MoveCall.package);
  }
}

for (const pkg of packages) {
  const action = await blocklist.scanPackage(pkg);
  if (action === Action.BLOCK) {
    console.log("BLOCK", pkg);
  }
}
```
