New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@heliofi/sdk

Package Overview
Dependencies
Maintainers
8
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@heliofi/sdk

## Introduction

  • 0.1.6
  • npm
  • Socket score

Version published
Weekly downloads
77
increased by266.67%
Maintainers
8
Weekly downloads
 
Created
Source

Helio SDK

Introduction

The Helio SDK is a packaged module to make integrating Helio and our components as easy and as quickly as possible into your front end web site or store so you can start accepting Helio web3 payments.

It wraps and enhances the Helio API away into one NPM package which is easy to install and upgrade.

The Helio SDK is is written in Typescript.

Please use the latest production version. Only used ALPHA versions if advised to do so.

Solana is currently supported with Polygon and ETH following soon.

Installation

yarn add @heliofi/sdk

After installing the SDK please import this into your project:

import { Helio } from "@heliofi/sdk";

Helio SDK Services

Detailed below are the methods used via the SDK to interact with the Helio API

Please ensure you select the correct 'Cluster' or network during deployment.

Properties table for the HelioSDK

MethodsParamsReturnDescription
constructoroptions?: { cluster: Cluster }voidset properties, cluster available values: devnet, mainnet-beta, testnet
setClustercluster: Clustervoidset cluster available value
currencyServicenoneCurrencyService, neverreturns object CurrencyService
apiServicenoneHelioApiConnector, neverreturns object HelioApiAdapter
solExplorerServicenoneSolExplorerService, neverreturns object SolExplorerService
tokenConversionServicenoneTokenConversionService, neverreturns object TokenConversionService
paylinkServicenonePaylinkSubmitService, neverreturns object PaylinkSubmitService
paystreamStartServicenonePaystreamStartService, neverreturns object PaystreamStartService
paystreamCancelServicenonePaystreamCancelService, neverreturns object PaystreamCancelService
configServicenoneConfigService, neverreturns object ConfigService
 Cluster = "devnet" | "testnet" | "mainnet-beta";

Methods

Properties table for the CurrencyService

MethodsParamsReturnDescription
getCurrenciesnonePromise<Currency[]>if currencies are empty adds currencies
getCurrencyBySymbolsymbol: stringCurrency, neverget currency by symbol (e.g. "SOl")
getCurrencyByMintmint: stringCurrency, neverget currency by mint address
  Currency: {
    blockchain: {
      engine: {
        id: string;
        type: "EVM" | "SOL";
      };
    };
    id: string;
    symbol: string;
    name: string;
    mintAddress?: string;
    coinMarketCapId: number;
    decimals: number;
    symbolPrefix?: string;
    order: number;
    type?: "FIAT" | "DIGITAL";
    iconUrl?: string;
  };

Properties table for the HelioApiAdapter

MethodsParamsReturnDescription
findAddressquery: string, country_code: stringPromise<FetchifyFindAddress>get addresses list by area code and country code
retrieveAddressaddress_id: string, country_code: stringPromise<FetchifyRetrieveAddress>get address more info by address id and country code
listCurrenciesnonePromise<Currency[]>get currencies list
getPaymentRequestByIdPublicid: string, paymentType: PaymentRequestTypePromise<any>get payment data by req. id and payment type
getTokenSwapMintAddressesmintAddress: stringPromise<string[]>get mint addresses list
getTokenSwapQuotepaymentRequestId: string, paymentRequestType: PaymentRequestType,
fromMint: string, quantity?: number,
normalizedPrice?: number, toMint?: string
Promise<SwapRouteToken>get route token for swap
getLivePriceamount: number, to: string, from: string,
paymentRequestId?: string, paymentRequestType?: string
Promise<TokenQuoting>get converted data
getPreparedTransactionMessageurl: string, body: stringPromise<PrepareTransaction>prepare transaction to send
getPreparedTransactionSwapMessageurl: string, body: stringPromise<PrepareSwapTransaction>prepare transaction to send for swap case
  FetchifyFindAddress: {
    results: {
      id: string;
      count: number;
      labels: string[];
    }[];
  };
  
  FetchifyRetrieveAddress: {
    result: {
      province_name: string;
      street_name: string;
      street_prefix: string;
      street_suffix: string;
      building_number: string;
      line_2: string;
      province: string;
      locality: string;
    };
  };
  
  Currency: {
    blockchain: {
      engine: {
        id: string;
        type: "EVM" | "SOL";
      };
    };
    id: string;
    symbol: string;
    name: string;
    mintAddress?: string;
    coinMarketCapId: number;
    decimals: number;
    symbolPrefix?: string;
    order: number;
    type?: "FIAT" | "DIGITAL";
    iconUrl?: string;
  };
  
  PaymentRequestType = "PAYLINK" | "PAYSTREAM" | "INVOICE";
 
  SwapRouteToken: {
    routeToken: string;
  };

  TokenQuoting: {
    rateToken: string;
  };
 
  PrepareTransaction: {
    transactionToken: string;
    transactionMessage: string;
  };
  
  PrepareSwapTransaction: {
    standardTransaction: PrepareTransaction;
    swapTransaction: string;
  };

Properties table for the SolExplorerService

MethodsParamsReturnDescription
getSolanaExplorerTransactionURLtransactionID: stringstringget transaction URL by after pay

Properties table for the TokenConversionService

MethodsParamsReturnDescription
convertFromMinimalUnitssymbol: any, minimalAmount: bigintnumberconvert from minimal amount
convertToMinimalUnitssymbol?: any actualAmount?: numbernumberconvert to minimal amount
formatPricecurrency: Currency, normalizedAmount: numberstringformat price
convertFromMinimalAndRoundsymbol: string, minimalAmount: bigintstringconvert from minimal amount and round
  Currency: {
    blockchain: {
      engine: {
        id: string;
        type: "EVM" | "SOL";
      };
    };
    id: string;
    symbol: string;
    name: string;
    mintAddress?: string;
    coinMarketCapId: number;
    decimals: number;
    symbolPrefix?: string;
    order: number;
    type?: "FIAT" | "DIGITAL";
    iconUrl?: string;
  };

Properties table for the PaylinkSubmitService

MethodsParamsReturnDescription
handleTransactionprops: BasePaymentProps<BasePaymentResponse>Promise<void>prepare transaction, connect to wallet, send transaction
  import { Idl, Program } from "@project-serum/anchor";
  import { AnchorWallet } from "@solana/wallet-adapter-react";
  import { Cluster, Connection } from "@solana/web3.js";
  import { HelioIdl } from '@heliofi/solana-adapter';

  TransactionStatus: {
      INITIATED = "INITIATED",
      PENDING = "PENDING",
      SUCCESS = "SUCCESS",
      FAILED = "FAILED",
      CANCELED = "CANCELED",
      SETTLED = "SETTLED"
  };
    
  ContentResponse: {
      text?: string;
      mediaUrl?: string;
      mediaAttachmentId?: string;
  };

  ApproveTransactionResponse: {
      transactionSignature: string;
      swapTransactionSignature?: string;
      content: ContentResponse;
      status?: TransactionStatus;
      statusToken?: string;
  };
  
  BasePaymentProps: {
    onSuccess: (event: {
      data: ApproveTransactionResponse;
      transaction: string;
      paymentPK?: string;
      swapTransaction?: string;
    }) => void;
    onError: (event: { transaction?: string; errorMessage: string }) => void;
    onPending?: (event: { transaction: string }) => void;
    symbol: string;
    anchorProvider: Program<HelioIdl>;
    wallet: AnchorWallet;
    connection: Connection;
    rateToken?: string;
    cluster: Cluster;
  };
  

Properties table for the PaystreamStartService

MethodsParamsReturnDescription
handleTransactionprops: BasePaymentProps<BasePaymentResponse>Promise<void>prepare transaction, connect to wallet, send pay stream transaction
  import { Idl, Program } from "@project-serum/anchor";
  import { AnchorWallet } from "@solana/wallet-adapter-react";
  import { Cluster, Connection } from "@solana/web3.js";
  import { HelioIdl } from '@heliofi/solana-adapter';

  TransactionStatus: {
      INITIATED = "INITIATED",
      PENDING = "PENDING",
      SUCCESS = "SUCCESS",
      FAILED = "FAILED",
      CANCELED = "CANCELED",
      SETTLED = "SETTLED"
  };

  ContentResponse: {
      text?: string;
      mediaUrl?: string;
      mediaAttachmentId?: string;
  };

  CreatePaystreamResponse: {
      document: {
          id: string;
          startedAt: bigint;
          endedAt: bigint;
      };
      content: ContentResponse;
      transactionSignature: string;
      status?: TransactionStatus;
      statusToken?: string;
      swapTransactionSignature?: string;
  };
  
  BasePaymentProps: {
    onSuccess: (event: {
      data: CreatePaystreamResponse;
      transaction: string;
      paymentPK?: string;
      swapTransaction?: string;
    }) => void;
    onError: (event: { transaction?: string; errorMessage: string }) => void;
    onPending?: (event: { transaction: string }) => void;
    symbol: string;
    anchorProvider: Program<HelioIdl>;
    wallet: AnchorWallet;
    connection: Connection;
    rateToken?: string;
    cluster: Cluster;
  };
  

Properties table for the PaystreamCancelService

MethodsParamsReturnDescription
handleTransactionprops: BasePaymentProps<BasePaymentResponse>Promise<void>prepare transaction, connect to wallet, send pay stream for cancel transaction
  import { Idl, Program } from "@project-serum/anchor";
  import { AnchorWallet } from "@solana/wallet-adapter-react";
  import { Cluster, Connection } from "@solana/web3.js";
  import { HelioIdl } from '@heliofi/solana-adapter';

  TransactionStatus: {
    INITIATED = "INITIATED",
    PENDING = "PENDING",
    SUCCESS = "SUCCESS",
    FAILED = "FAILED",
    CANCELED = "CANCELED",
    SETTLED = "SETTLED"
  };

  ContentResponse: {
    text?: string;
    mediaUrl?: string;
    mediaAttachmentId?: string;
  };

  CancelStreamResponse: {
    content: ContentResponse;
    transactionSignature: string;
    status?: TransactionStatus;
    statusToken?: string;
    swapTransactionSignature?: string;
  };

  BasePaymentProps: {
    onSuccess: (event: {
        data: CancelStreamResponse;
        transaction: string;
        paymentPK?: string;
        swapTransaction?: string;
    }) => void;
    onError: (event: { transaction?: string; errorMessage: string }) => void;
    onPending?: (event: { transaction: string }) => void;
    symbol: string;
    anchorProvider: Program<HelioIdl>;
    wallet: AnchorWallet;
    connection: Connection;
    rateToken?: string;
    cluster: Cluster;
  };


Properties table for the ConfigService

MethodsParamsReturnDescription
getAssetUrlnonestringget helio assets url
getClusternoneClusterreturn selected cluster
setClustercluster: Clustervoidset cluster
getHelioApiBaseUrlnonestringget Helio api base url for current cluster
getPhantomLinkid: string, paymentType: PaymentRequestTypestringget payment url for phantom app
 Cluster = "devnet" | "testnet" | "mainnet-beta";

PaymentRequestType = "PAYLINK" | "PAYSTREAM" | "INVOICE";

Example

import { HelioSDK, ClusterType } from '@heliofi/sdk';
import { Cluster } from '@solana/web3.js';

const cluster = ClusterType.Devnet;

//create object HelioSDK
const helioSDK = new HelioSDK({ cluster });

//get curriences
const currencies = helioSDK.currencyService.getCurrencies();

//get helio asset url
const url = helioSDK.configService.getAssetUrl();

//get mint addresses list
const mintAddresses = await helioSDK.apiService.getTokenSwapMintAddresses('mint address');

//get transaction url
const transactionUrl = helioSDK.solExplorerService.getSolanaExplorerTransactionURL('transaction');

//convert to minimal amount
const amount = helioSDK.tokenConversionService.convertToMinimalUnits('symbol', 100);

//handle transaction
await helioSDK.paylinkService.handleTransaction({...});

FAQs

Package last updated on 04 Apr 2023

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