Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@dfinity/ledger-icp

Package Overview
Dependencies
Maintainers
0
Versions
340
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dfinity/ledger-icp

A library for interfacing with the ICP ledger on the Internet Computer.

  • 2.6.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3.5K
increased by5.43%
Maintainers
0
Weekly downloads
 
Created
Source

ledger-icp-js

A library for interfacing with the ICP ledger on the Internet Computer.

npm version GitHub license

ℹ️ This library is meant to interface with the ICP ledger only. If you are looking to interact with Snses, ckBTC, or other ICRC tokens, use the ledger-icrc-js library.

Table of contents

Installation

You can use ledger-icp-js by installing it in your project.

npm i @dfinity/ledger-icp

The bundle needs peer dependencies, be sure that following resources are available in your project as well.

npm i @dfinity/agent @dfinity/candid @dfinity/principal @dfinity/utils

Usage

The features are available through the class LedgerCanister. It has to be instantiated with a canister ID.

e.g. fetching a token metadata.

import { createAgent } from "@dfinity/utils";
import { LedgerCanister } from "@dfinity/ledger-icp";

const agent = await createAgent({
  identity,
  host: HOST,
});

const { metadata } = LedgerCanister.create({
  agent,
  canisterId: MY_LEDGER_CANISTER_ID,
});

const data = await metadata();

Features

ledger-icp-js implements following features:

:factory: AccountIdentifier

:link: Source

Methods
:gear: fromHex
MethodType
fromHex(hex: string) => AccountIdentifier

:link: Source

:gear: fromPrincipal
MethodType
fromPrincipal({ principal, subAccount, }: { principal: Principal; subAccount?: SubAccount or undefined; }) => AccountIdentifier

:link: Source

:gear: toHex
MethodType
toHex() => string

:link: Source

:gear: toUint8Array
MethodType
toUint8Array() => Uint8Array

:link: Source

:gear: toNumbers
MethodType
toNumbers() => number[]

:link: Source

:gear: toAccountIdentifierHash
MethodType
toAccountIdentifierHash() => { hash: Uint8Array; }

:link: Source

:factory: SubAccount

:link: Source

Methods
:gear: fromBytes
MethodType
fromBytes(bytes: Uint8Array) => SubAccount or Error

:link: Source

:gear: fromPrincipal
MethodType
fromPrincipal(principal: Principal) => SubAccount

:link: Source

:gear: fromID
MethodType
fromID(id: number) => SubAccount

:link: Source

:gear: toUint8Array
MethodType
toUint8Array() => Uint8Array

:link: Source

:factory: LedgerCanister

:link: Source

Methods
:gear: create
MethodType
create(options?: LedgerCanisterOptions) => LedgerCanister

:link: Source

:gear: accountBalance

Returns the balance of the specified account identifier.

If certified is true, the request is fetched as an update call, otherwise it is fetched using a query call.

MethodType
accountBalance({ accountIdentifier: accountIdentifierParam, certified, }: AccountBalanceParams) => Promise<bigint>

Parameters:

  • params: The parameters to get the balance of an account.
  • params.accountIdentifier: The account identifier provided either as hex string or as an AccountIdentifier.
  • params.certified: query or update call.

:link: Source

:gear: metadata

Fetches the ledger metadata.

MethodType
metadata(params: QueryParams) => Promise<[string, Value][]>

Parameters:

  • params: - The parameters used to fetch the metadata, notably query or certified call.

:link: Source

:gear: transactionFee

Returns the transaction fee of the ICP ledger canister.

MethodType
transactionFee(params?: QueryParams) => Promise<bigint>

Parameters:

  • params: - Optional query parameters for the request, defaulting to { certified: false } for backwards compatibility reason.

:link: Source

:gear: transfer

Transfer ICP from the caller to the destination accountIdentifier. Returns the index of the block containing the tx if it was successful.

MethodType
transfer(request: TransferRequest) => Promise<bigint>

:link: Source

:gear: icrc1Transfer

Transfer ICP from the caller to the destination Account. Returns the index of the block containing the tx if it was successful.

MethodType
icrc1Transfer(request: Icrc1TransferRequest) => Promise<bigint>

:link: Source

:gear: icrc2Approve

This method entitles the spender to transfer token amount on behalf of the caller from account { owner = caller; subaccount = from_subaccount }.

Reference: https://github.com/dfinity/ICRC-1/blob/main/standards/ICRC-2/README.md#icrc2_approve

MethodType
icrc2Approve(params: Icrc2ApproveRequest) => Promise<bigint>

Parameters:

  • params: - The parameters to approve.

:link: Source

:gear: icrc21ConsentMessage

Fetches the consent message for a specified canister call, intended to provide a human-readable message that helps users make informed decisions.

MethodType
icrc21ConsentMessage(params: Icrc21ConsentMessageRequest) => Promise<icrc21_consent_info>

Parameters:

  • params: - The request parameters containing the method name, arguments, and consent preferences (e.g., language).

:link: Source

:factory: IndexCanister

:link: Source

Methods
:gear: create
MethodType
create({ canisterId: optionsCanisterId, ...options }: CanisterOptions<_SERVICE>) => IndexCanister

:link: Source

:gear: accountBalance

Returns the balance of the specified account identifier.

MethodType
accountBalance({ certified, accountIdentifier, }: AccountBalanceParams) => Promise<bigint>

Parameters:

  • params: The parameters to get the balance of an account.
  • params.accountIdentifier: The account identifier provided either as hex string or as an AccountIdentifier.
  • params.certified: query or update call.

:link: Source

:gear: getTransactions

Returns the transactions and balance of an ICP account.

MethodType
getTransactions({ certified, accountIdentifier, start, maxResults: max_results, }: GetTransactionsParams) => Promise<GetAccountIdentifierTransactionsResponse>

Parameters:

  • params: The parameters to get the transactions.
  • params.certified: query or update call.
  • params.accountIdentifier: The account identifier provided either as hex string or as an AccountIdentifier.
  • params.start: If set then the results will start from the next most recent transaction id after start (start won't be included). If not provided, then the results will start from the most recent transaction id.
  • params.maxResults: Maximum number of transactions to fetch.

:link: Source

Resources

Keywords

FAQs

Package last updated on 21 Nov 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