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

@gelatonetwork/relay-sdk

Package Overview
Dependencies
Maintainers
13
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@gelatonetwork/relay-sdk

SDK to integrate the Gelato Multichain Relay

  • 0.2.4
  • npm
  • Socket score

Version published
Weekly downloads
1.6K
decreased by-18.41%
Maintainers
13
Weekly downloads
 
Created
Source

Gelato Multichain Relay SDK

SDK to integrate into Gelato Multichain Relay.

Table of Contents

  • Installation
  • Getting Started
  • Examples
  • Supported Chains
  • Gelato Contract Addresses
  • RelayTransit Contract Addresses

Installation

yarn add @gelatonetwork/relay-sdk

or

npm install @gelatonetwork/relay-sdk

Getting Started

Import the Gelato Multichain Relay into your project

import { RelaySDK } from "@gelatonetwork/relay-sdk";
  1. Check if the Gelato Multichain Relay supports a given ChainId
  const chainSupported = await RelaySDK.isChainSupported(chainId);
  if (!chainSupported) {
    console.log("ChainId not supported");
    return;
  }
  1. Estimate the execution price using the Relay Multichain Oracle
  // Check if the Relay has an oracle on this ChainId
  const isActiveOracle = await RelaySDK.isOracleActive(chainId);
  if (!isActiveOracle) {
    console.log("Oracle is not active on this network");
    return;
  }

  // Estimates the transaction cost in the defined token for the inputted gasLimit
  // The paymentTokenAddress is the address of the token used to pay transaction fees
  const estimatedExecutionFeeInToken: BigNumber = await RelaySDK.getEstimatedFee(
    chainId,
    paymentTokenAddress,
    gasLimit,
    isHighPriority // If we want to get a high priority fee
  );
  1. Get supported payment tokens by chain id
  // Get Payment Token Addresses
  const paymentTokensAdresses: string[] = await RelaySDK.getPaymentTokens(
    chainId,
  );
  1. Submit transaction: If you want to submit a transaction using the Gelato Multichain Relayer, the transaction should pay to the Gelato contract to execute, otherwise the transaction will revert.
  import { BigNumber } from "ethers"; 
  import { Interface } from "ethers/lib/utils";

  // Generate the function data
  const contractInterface = new Interface(contractABI);
  const data = contractInterface.encodeFunctionData("functionToCall", [args]);

  const relayTx = await RelaySDK.sendRelayTransaction(
    chainId,
    destAddress,
    data,
    paymentTokenAddress,
  );
  console.log(`RelayerTransactionId = ${relayTx.taskId}`);
  1. Check your transaction status:
const status = await RelaySDK.getTaskStatus(taskId);
if (status) {
  const state = (status as TransactionStatus).taskState;
  switch (state) {
    case TaskState.CheckPending:
      console.log(`> Task pending relayer verification`);
      break;
    case TaskState.ExecPending:
      console.log(`> Task queued for execution`);
      break;
    case TaskState.ExecSuccess:
      console.log(`> Task successfully executed, tx hash: ${status.execution?.transactionHash}`);
      break;
    case TaskState.ExecReverted:
      console.log(`> Task was reverted with message: ${status.lastCheck?.message}`);
      break;
    case TaskState.Cancelled:
      console.log(`> Task was cancelled with message: ${status.lastCheck?.message}`);
      break;
    default:
      console.log(`> Task status: ${state}`);
  }

Examples

Check out our tutorial repository relay-sdk-hello-world for more in-depth examples.

Supported Chains

These are the chain Ids supported by the Gelato Multichain Relay:

MAINNET: 1,
ROPSTEN: 3,
RINKEBY: 4,
GOERLI: 5,
OPTIMISM: 10,
BSC: 56,
XDAI: 100,
MATIC: 137,
FANTOM: 250,
MOONBEAM: 1284,
ARBITRUM: 42161,
AVALANCHE: 43114

Gelato Contract Addresses

ChainContract Address
MAINNET0x3CACa7b48D0573D793d3b0279b5F0029180E83b6
ROPSTEN0xCc4CcD69D31F9FfDBD3BFfDe49c6aA886DaB98d9
RINKEBY0x0630d1b8C2df3F0a68Df578D02075027a6397173
GOERLI0x683913B3A32ada4F8100458A3E1675425BdAa7DF
OPTIMISM0x01051113D81D7d6DA508462F2ad6d7fD96cF42Ef
BSC0x7C5c4Af1618220C090A6863175de47afb20fa9Df
XDAI0x29b6603D17B9D8f021EcB8845B6FD06E1Adf89DE
MATIC0x7598e84B2E114AB62CAB288CE5f7d5f6bad35BbA
FANTOM0xebA27A2301975FF5BF7864b99F55A4f7A457ED10
MOONBEAM0x91f2A140cA47DdF438B9c583b7E71987525019bB
ARBITRUM0x4775aF8FEf4809fE10bf05867d2b038a4b5B2146
AVALANCHE0x7C5c4Af1618220C090A6863175de47afb20fa9Df

RelayTransit Contract Addresses

ChainContract Address
MAINNET0x36225733276425f5DbA88977Aef45f042BACB953
ROPSTEN0x1908238d294058722D9c27B3DCaffA326F05eDA4
RINKEBY0xfe65B7FA42d7F71C6725b183CAF03b1622F3B69F
GOERLI0x5d61B0425FcEE18C872104ED00477286d7d461dc
OPTIMISM0xb34758F24fFEf132dc5831C2Cd9A0a5e120CD564
BSC0x3652b3D7c814D331974a3Ff70C8038971727cd63
XDAI0x0f92f38A73e8f1f226517C14126F95f5Bd3678e8
MATIC0xAe92F11c3c8BA455e858Fbd50AA29B2db8E57121
FANTOM0x5D6c3f065Ce364Af04f1207Cbad999A7B640921A
MOONBEAM0x24D677f8A59A486BfC6d87E9453C4f1fEfcB0958
ARBITRUM0x79A0cB573D3Db184752511969F1b869A184EA445
AVALANCHE0x4efaEe0fAD71A451c6Ca621df5AeFc5c01668a26

FAQs

Package last updated on 15 Mar 2022

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