RIF Scheduler - SDK
Repository: rsksmart/rif-scheduler-sdk
With the RIF Scheduler SDK you can schedule transactions in the Rootstock (RSK) network.
Features:
- Query and purchase plans
- Schedule transactions
- Schedule recurrent transactions
- Cancel a scheduling
- Query transactions scheduled and states
- Request refunds of overdue executions
This is the official SDK for @rsksmart/rif-scheduler-contracts
smart contract. Use it to interact with the RIFScheduler
smart contract in a more simple way.
Getting Started
@rsksmart/rif-scheduler-sdk
is built on top of ethers
.
Installation
npm i @rsksmart/rif-scheduler-sdk ethers
Use 0xad249557515d8b89f2869834857bb872d7b5c398
for RSK Testnet
You can run your own instance following this guide
Initialization
First, you will need an ethers
provider
or signer
instance.
Using a provider
will only allow read-only operations, such as getPlan
. Using a signer
will allow all operations, such as purchasePlan
, schedule
, etc.
You can pass an object as optional third parameter with a property supportedER677Tokens
, where you can configure a list of tokens supporting ERC677 interface like the RIF token.
For example, to connect the SDK to Metamask
import { RIFScheduler } from "@rsksmart/rif-scheduler-sdk";
import { providers } from "ethers";
const provider = new providers.Web3Provider(web3.currentProvider);
// Creates instance with provider, you can execute read-only operations
const rifScheduler = new RifScheduler({
contractAddress: serviceProviderContractAddress,
providerOrSigner: provider
});
const signer = provider.getSigner();
// Creates instance with signer, you can execute any kind of operation
const rifScheduler = new RifScheduler({
contractAddress: serviceProviderContractAddress,
providerOrSigner: signer
});
to connect the SDK to RPC / Ganache
import { RIFScheduler } from "@rsksmart/rif-scheduler-sdk";
import { providers } from "ethers";
const url = "http://localhost:8545";
const provider = new providers.JsonRpcProvider(url);
// Creates instance with provider, you can execute read-only operations
const rifScheduler = new RifScheduler({
contractAddress: serviceProviderContractAddress,
providerOrSigner: provider
});
const signer = provider.getSigner();
// Creates instance with signer, you can execute any kind of operation
const rifScheduler = new RifScheduler({
contractAddress: serviceProviderContractAddress,
providerOrSigner: signer
});
What you can do with this sdk?