@chaingpt/smartcontractauditor
TypeScript icon, indicating that this package has built-in type declarations

0.0.1 • Public • Published

ChainGPT Smart Contract Auditor SDK

This library provides convenient access to the ChainGPT Smart Contract Auditor REST API from TypeScript or JavaScript.

Installation

npm install --save @chaingpt/smartcontractauditor
# or
yarn add smartcontractauditor

Usage

Audit a smart contract as a stream:

import { SmartContractAuditor } from "@chaingpt/smartcontractauditor";

const smartcontractauditor = new SmartContractAuditor({
  apiKey: 'Your ChainGPT API Key',
});

async function main() {
  const stream = await smartcontractauditor.auditSmartContractStream({
    question: 
    `Audit the following contract:
    pragma solidity ^0.8.0;
    contract Counter {
      uint256 private count; // This variable will hold the count
      constructor() {
        count = 0; // Initialize count to 0
      }
      function increment() public {
        count += 1;
        emit CountChanged(count); // Emit an event whenever the count changes
      }
    }`
    ,
    chatHistory: "on"
  });
  stream.on('data', (chunk: any) => console.log(chunk.toString()));
  stream.on('end', () => console.log("Stream ended"));
}

main();

Audit a smart contract as a blob:

import { SmartContractAuditor } from "@chaingpt/smartcontractauditor";

const smartcontractauditor = new SmartContractAuditor({
  apiKey: 'Your ChainGPT API Key',
});

async function main() {
  const response = await smartcontractauditor.auditSmartContractBlob({
    question: 
      `Audit the following contract:
      pragma solidity ^0.8.0;
      contract Counter {
        uint256 private count; // This variable will hold the count
        constructor() {
          count = 0; // Initialize count to 0
        }
        function increment() public {
          count += 1;
          emit CountChanged(count); // Emit an event whenever the count changes
        }
      }`,
    chatHistory: "off"
  })
  console.log(response.data.bot);
}

main();

Retrieve smart contract auditing history:

import { SmartContractAuditor } from "@chaingpt/smartcontractauditor";

const smartcontractauditor = new SmartContractAuditor({
  apiKey: 'Your ChainGPT API Key',
});

async function main() {
  const response = await smartcontractauditor.getChatHistory({
    limit: 10,
    offset: 0,
    sortBy: "createdAt",
    sortOrder: "DESC"
  })
  console.log(response.data.rows);
}

main();

Handling errors

When the library is unable to connect to the API, or if the API returns a non-success status code (i.e., 4xx or 5xx response), and error of the class SmartContractAuditorError will be thrown:

import { Errors } from '@chaingpt/smartcontractauditor';

async function main() {
  try {
    const stream = await smartcontractauditor.auditSmartContractStream({
      question: 
      `Audit the following contract:
      pragma solidity ^0.8.0;
      contract Counter {
        uint256 private count; // This variable will hold the count
        constructor() {
          count = 0; // Initialize count to 0
        }
        function increment() public {
          count += 1;
          emit CountChanged(count); // Emit an event whenever the count changes
        }
      }`
      ,
      chatHistory: "on"
    });
    stream.on('data', (chunk: any) => console.log(chunk.toString()));
    stream.on('end', () => console.log("Stream ended"));
  } catch(error) {
    if(error instanceof Errors.SmartContractAuditorError) {
      console.log(error.message)
    }
  }
}

main();

/@chaingpt/smartcontractauditor/

    Package Sidebar

    Install

    npm i @chaingpt/smartcontractauditor

    Weekly Downloads

    1

    Version

    0.0.1

    License

    MIT

    Unpacked Size

    27.5 kB

    Total Files

    39

    Last publish

    Collaborators

    • shahroze
    • maxcgpt
    • cgptadmin