@rsksmart/rif-relay-light-sdk
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

RIF Relay Light SDK

This is a light implementation of the client RIF Relay SDK built using ethers. This is experimential and is subject to change. Please report any issues that you may find.

Install:

yarn @rsksmart/rif-relay-light-sdk
// or
npm i  @rsksmart/rif-relay-light-sdk

How to use:

The documentation for this is missing and needs much improvement. This repo is under development and is subject to change without notice.

Basic setup:

import RIFRelaySDK from '@rsksmart/rif-relay-light-sdk
import ethers from 'ethers'

// ...

// fill out the following:
const privateKey = ''

const relayConfig = {
  smartWalletFactoryAddress: '',
  relayVerifierAddress: '',
  deployVerifierAddress: '',
  relayServer: ''
}

// Create the Signer: 
const provider = new ethers.providers.JsonRpcProvider('https://public-node.testnet.rsk.co')
const signer = new ethers.Wallet(privateKey, provider)

// Create the SDK:
const relaySDK = await sdk.RIFRelaySDK.create(signer, relayConfig)

// Some variables that you might need:
const eoaAddress = relaySDK.eoaAddress
const smartWalletAddress = relaySDK.smartWalletAddress
const isDeployed = await relaySDK.smartWalletFactory.isDeployed()

Deploy the SmartWallet:

The server this is being tested with offers free deployment transactions, if your server costs, then you may need to estimate the cost and send it. Below we are sending 0:

// Deploy the smartwallet for the user.
const freePayment = {
  tokenContract: RIF_TOKEN_ADDRESS_TESTNET,
  tokenAmount: '0'
}

const deployTx = await relaySDK.sendDeployTransaction(freePayment)
console.log(deployTx)

Estimate and Relay a Transaction:

// A simple ERC20 transaction:
const sendFiveRifToJesseTx = {
  to: RIF_TOKEN_ADDRESS_TESTNET,
  data: '0xa9059cbb0000000000000000000000003dd03d7d6c3137f1eb7582ba5957b8a2e26f304a0000000000000000000000000000000000000000000000004563918244f40000'
}

// estimate a transaction cost:
const estimateFee = await relaySDK.estimateTransactionCost(sendFiveRifToJesseTx, RIF_TOKEN_ADDRESS_TESTNET)
const payment = {
    tokenContract: RIF_TOKEN_ADDRESS_TESTNET,
    tokenAmount: estimateFee.toString()
  }

// relay a transaction if the smartcontract is already deployed:
const relayTx = await relaySDK.sendRelayTransaction(sendFiveRifToJesseTx, payment)

console.log(relayTx)

Tests:

There are no tests for this library at this time. This tech debt is known, your help is appreciated.

Contribution

Yes please.

Readme

Keywords

Package Sidebar

Install

npm i @rsksmart/rif-relay-light-sdk

Weekly Downloads

7

Version

1.1.1

License

MIT

Unpacked Size

97.8 kB

Total Files

28

Last publish

Collaborators

  • jessgusclark