Socket
Socket
Sign inDemoInstall

@solana/programs

Package Overview
Dependencies
Maintainers
15
Versions
775
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@solana/programs

Helpers for defining programs and resolving program errors


Version published
Weekly downloads
2.8K
decreased by-13.67%
Maintainers
15
Weekly downloads
 
Created
Source

npm npm-downloads semantic-release
code-style-prettier

@solana/programs

This package contains types for defining programs and helpers for resolving program errors. It can be used standalone, but it is also exported as part of the Solana JavaScript SDK @solana/web3.js@experimental.

Types

Program

The Program type defines a Solana program.

const myProgram: Program<'1234..5678'> = {
    name: 'myProgramName',
    address: '1234..5678' as Address<'1234..5678'>,
};

ProgramWithErrors

The ProgramWithErrors type helps extend the Program type by defining a getErrorFromCode function that can be used to resolve a custom program error from a transaction error code.

enum MyProgramErrorCode {
    UNINITIALIZED_ACCOUNT = 0,
    INVALID_ACCOUNT_OWNER = 1,
    INVALID_ACCOUNT_DATA = 2,
    SOME_OTHER_ERROR = 3,
}

class MyProgramError extends Error {
    // ...
}

const myProgram: Program<'1234..5678'> & ProgramWithErrors<MyProgramErrorCode, MyProgramError> = {
    name: 'myProgramName',
    address: '1234..5678' as Address<'1234..5678'>,
    getErrorFromCode: (code: MyProgramErrorCode, originalError: Error): MyProgramError => {
        // ...
    },
};

Functions

resolveTransactionError()

This function takes a raw error caused by a transaction failure and attempts to resolve it into a custom program error.

For this to work, the resolveTransactionError function also needs the following parameters:

  • The transaction object that failed to execute. This allows us to identify the failing instruction and correctly identify the program that caused the error.
  • An array of all programs that can be used to resolve the error. If the program that caused the error is not present in the array, the function won't be able to return a custom program error.

Note that, if the error cannot be resolved into a custom program error, the original error is returned as-is.

// Store your programs.
const programs = [createSplSystemProgram(), createSplComputeBudgetProgram(), createSplAddressLookupTableProgram()];

try {
    // Send and confirm your transaction.
} catch (error) {
    throw resolveTransactionError(error, transaction, programs);
}

Keywords

FAQs

Package last updated on 05 Mar 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc