@livepeer/sdk

An SDK for interacting with Livepeer's smart contracts.

Usage no npm install needed!

<script type="module">
  import livepeerSdk from 'https://cdn.skypack.dev/@livepeer/sdk';
</script>

README

Livepeer SDK

npm Discord

An SDK for interacting with Livepeer's smart contracts.

Table of Contents

Installation

yarn add @livepeer/sdk

Usage

Here's a code snippet showing instantiation and basic usage of the Livepeer SDK.

import LivepeerSDK from '@livepeer/sdk'

// Or if you prefer require
// const { LivepeerSDK } = require('@livepeer/sdk')
//
// First, call the SDK factory function
// pass it any configuration options
LivepeerSDK({ ... }).then(async (sdk) => {

  // Once initialized, you can access the methods under the `rpc` namespace
  const { rpc } = sdk

  // For example, you can get the total supply of Livepeer Tokens like so
  const tokens = await rpc.getTokenTotalSupply()

  console.log(tokens)
  // => string representation of some absurdly high number, maybe "9999999999999999999999" or something like that :)
})

To use with a testnet please instantiate with the following params:

const provider = "https://rinkeby.infura.io" #or your testnet of choice
const controllerAddress = "0x37dC71366Ec655093b9930bc816E16e6b587F968"

LivepeerSDK({ provider, controllerAddress }).then(async sdk => {
  mycode...
})

The following section details the rpc API's function signatures and typedefs.

API

Table of Contents

module~exports

Livepeer SDK main module exports

default

Livepeer SDK factory function. Creates an instance of the Livepeer SDK -- an object with useful methods for interacting with Livepeer protocol smart contracts

Parameters
Examples
// Here we're naming the default export "LivepeerSDK"
import LivepeerSDK from "@livepeer/sdk";

// Call the factory function and await its Promise
LivepeerSDK().then((sdk) => {
  // Your Livepeer SDK instance is now ready to use
});

Returns Promise<LivepeerSDK>

livepeer~rpc

"rpc" namespace of a Livepeer SDK instance

Examples

import LivepeerSDK from "@livepeer/sdk";

LivepeerSDK().then(({ rpc }) => {
  // Here, we're destructuring the sdk to expose only its rpc namespace
  // Now, you you are able call rpc.<method-name>()
  // All rpc method yield Promises. Their usage is further explained below.
});

getENSName

Gets the ENS name for an address. This is known as a reverse lookup. Unfortunately, users must explicitly set their own resolver. So most of the time, this method just returns an empty string More info here: (https://docs.ens.domains/en/latest/userguide.html#reverse-name-resolution)

Parameters
  • address string address to look up an ENS name for
Examples
await rpc.getENSName("0xd34db33f...");
// => string

Returns Promise<string>

getENSAddress

Gets the address for an ENS name

Parameters
  • name string ENS name to look up an address for
Examples
await rpc.getENSAddress("vitalik.eth");
// => string

Returns Promise<string>

getBlock

Gets a block by number, hash, or keyword ('earliest' | 'latest')

Parameters
Examples
await rpc.getBlock('latest')
// => {
  "number": string,
  "hash": string,
  "parentHash": string,
  "nonce": string,
  "sha3Uncles": string,
  "logsBloom": string,
  "transactionsRoot": string,
  "stateRoot": string,
  "receiptsRoot": string,
  "miner": string,
  "mixHash": string,
  "difficulty": string,
  "totalDifficulty": string,
  "extraData": string,
  "size": string,
  "gasLimit": string,
  "gasUsed": string,
  "timestamp": number,
  "transactions": Array<Transaction>,
  "transactionsRoot": string,
  "uncles": Array<Uncle>,
}

Returns Promise<Block>

getEthBalance

Gets the ETH balance for an account

Parameters
  • addr string ETH account address
Examples
await rpc.getEthBalance("0xf00...");
// => string

Returns Promise<string>

getUnbondingPeriod

Gets the unbonding period for transcoders

Examples
await rpc.getUnbondingPeriod();
// => string

Returns Promise<string>

getNumActiveTranscoders

Gets the number of active transcoders

Examples
await rpc.getNumActiveTranscoders();
// => string

Returns Promise<string>

getMaxEarningsClaimsRounds

Gets the maximum earnings for claims rounds

Examples
await rpc.getMaxEarningsClaimsRounds();
// => string

Returns Promise<string>

getTotalBonded

Gets the total amount of bonded tokens

Examples
await rpc.getTotalBonded();
// => string

Returns Promise<string>

getTokenTotalSupply

Gets the total supply of token (LTPU) available in the protocol

Examples
await rpc.getTokenTotalSupply();
// => string

Returns Promise<string>

getTokenBalance

Gets a user's token balance (LPTU)

Parameters
  • addr string user's ETH address
Examples
await rpc.getTokenBalance("0xf00...");
// => string

Returns Promise<string>

getTokenInfo

Gets general information about tokens

Parameters
  • addr string user's ETH address
Examples
await rpc.getTokenInfo();
// => TokenInfo { totalSupply: string, balance: string }

Returns Promise<TokenInfo>

transferToken

Transfers tokens (LPTU) from one account to another

Parameters
  • to string the account ETH address to send tokens to
  • amount string the amount of token to send (LPTU)
  • tx TxConfig an object specifying the from value of the transaction (optional, default config.defaultTx)
Examples
await rpc.transferToken("0xf00...", "10");
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

getFaucetAmount

The amount of LPT the faucet distributes when tapped

Examples
await rpc.getFaucetAmount();
// => string

Returns Promise<string>

getFaucetWait

How often an address can tap the faucet (in hours)

Examples
await rpc.getFaucetWait();
// => string

Returns Promise<string>

getFaucetNext

Next timestamp at which the given address will be allowed to tap the faucet

Parameters
  • addr string user's ETH address
Examples
await rpc.getFaucetNext();
// => string

Returns Promise<string>

getFaucetInfo

Info about the state of the LPT faucet

Parameters
  • addr string user's ETH address
Examples
await rpc.getFaucetInfo("0xf00...");
// => FaucetInfo {
//   amount: string,
//   wait: string,
//   next: string,
// }

Returns Promise<FaucetInfo>

getInflation

Gets the per round inflation rate

Examples
await rpc.getInflation();
// => string

Returns Promise<string>

getInflationChange

Gets the change in inflation rate per round until the target bonding rate is achieved

Examples
await rpc.getInflationChange();
// => string

Returns Promise<string>

getDelegatorStatus

The delegator status of the given address

Parameters
  • addr string user's ETH address
Examples
await rpc.getDelegatorStatus("0xf00...");
// => 'Pending' | 'Bonded' | 'Unbonded'

Returns Promise<string>

getDelegator

General info about a delegator

Parameters
  • addr string user's ETH address
Examples
await rpc.getDelegator("0xf00...");
// => Delegator {
//   allowance: string,
//   address: string,
//   bondedAmount: string,
//   delegateAddress: string,
//   delegateAmount: string,
//   fees: string,
//   lastClaimRound: string,
//   pendingFees: string,
//   pendingStake: string,
//   startRound: string,
//   status: 'Pending' | 'Bonded' | 'Unbonding' | 'Unbonded',
//   withdrawRound: string,
//   nextUnbondingLockId: string,
// }

Returns Promise<Delegator>

rebond

Rebonds LPT from an address

Parameters
  • unbondingLockId number
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.rebond(0);
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

rebondWithHint

Rebonds LPT from an address with hint

Parameters
  • unbondingLockId number
  • newPosPrev string
  • newPosNext string
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.rebondWithHint(0, "0x", "0x");
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

rebondFromUnbonded

Rebonds LPT from an address

Parameters
  • to string
  • unbondingLockId number
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.rebondFromUnbonded("0x", 1);
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

rebondFromUnbondedWithHint

Rebonds LPT from an address with hint

Parameters
  • to string
  • unbondingLockId number
  • newPosPrev string
  • newPosNext string
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.rebondFromUnbondedWithHint("0x", 1, "0x", "0x");
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

getPendingStake

Get a delegator's pending stake

Parameters
  • addr string user's ETH address
  • endRound string The last round to compute pending stake from
Examples
await rpc.getPendingStake("0xf00...");
// => string

Returns Promise<string>

getPendingFees

Get a delegator's pending fees

Parameters
  • addr string user's ETH address
  • endRound string The last round to compute pending fees from
Examples
await rpc.getPendingFees("0xf00...");
// => string

Returns Promise<string>

getTranscoderIsActive

Whether or not the transcoder is active

Parameters
  • addr string user's ETH address
Examples
await rpc.getTranscoderIsActive("0xf00...");
// => boolean

Returns Promise<boolean>

getTranscoderStatus

Gets the status of a transcoder

Parameters
  • addr string user's ETH address
Examples
await rpc.getTranscoderStatus("0xf00...");
// => 'NotRegistered' | 'Registered'

Returns Promise<string>

getTranscoderTotalStake

Gets a transcoder's total stake

Parameters
  • addr string user's ETH address
Examples
await rpc.getTranscoderTotalStake("0xf00...");
// => string

Returns Promise<string>

getTranscoderPoolMaxSize

Gets a transcoder's pool max size

Examples
await rpc.getTranscoderPoolMaxSize();
// => string

Returns Promise<string>

getTranscoder

Gets info about a transcoder

Parameters
  • addr string user's ETH address
Examples
await rpc.getTranscoder("0xf00...");
// => Transcoder {
//   active: boolean,
//   address: string,
//   rewardCut: string,
//   feeShare: string,
//   lastRewardRound: string,
//   pendingRewardCut string,
//   pendingFeeShare: string,
//   pendingPricePerSegment: string,
//   pricePerSegment: string,
//   status: 'NotRegistered' | 'Registered',
//   totalStake: string,
// }

Returns Promise<Transcoder>

getTranscoders

Gets transcoders

Examples
await rpc.getTranscoders();
// => Array<Transcoder>

Returns Array<Transcoder>

getProtocolPaused

Whether the protocol is paused

Examples
await rpc.getProtocolPaused();
// => boolean

Returns Promise<boolean>

getProtocol

Gets the protocol

Examples
await rpc.getProtocol()
// => Protocol {
paused
totalTokenSupply
totalBondedToken
targetBondingRate
transcoderPoolMaxSize
maxEarningsClaimsRounds
}

Returns Promise<Protocol>

getRoundLength

Gets the length of a round (in blocks)

Examples
await rpc.getRoundLength();
// => string

Returns Promise<string>

getRoundsPerYear

Gets the estimated number of rounds per year

Examples
await rpc.getRoundsPerYear();
// => string

Returns Promise<string>

getCurrentRound

Gets the number of the current round

Examples
await rpc.getCurrentRound();
// => string

Returns Promise<string>

getCurrentRoundIsInitialized

Whether or not the current round is initalized

Examples
await rpc.getCurrentRoundIsInitialized();
// => boolean

Returns Promise<boolean>

getCurrentRoundStartBlock

The block at which the current round started

Examples
await rpc.getCurrentRoundStartBlock();
// => string

Returns Promise<string>

getLastInitializedRound

The previously intitialized round

Examples
await rpc.getLastInitializedRound();
// => string

Returns Promise<string>

getCurrentRoundInfo

Gets general information about the rounds in the protocol

Examples
await rpc.getCurrentRoundInfo();
// => RoundInfo {
//   id: string,
//   initialized: boolean,
//   startBlock: string,
//   lastInitializedRound: string,
//   length: string,
// }

Returns Promise<RoundInfo>

tapFaucet

Gets LPT from the faucet

Parameters
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.tapFaucet("1337");
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

initializeRound

Initializes the round

Parameters
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.initializeRound();
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

createPoll

Creates a poll

Parameters
  • proposal string The IPFS multihash for the proposal
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.createPoll("Qm...");
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

getPollCreatorAllowance

Get PollCreator transfer allowance

Parameters
  • addr string user's ETH address
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.getPollCreatorAllowance("0x...");
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

getBondingManagerAllowance

Get BondingManager transfer allowance

Parameters
  • addr string user's ETH address
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.getBondingManagerAllowance("0x...");
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

vote

Creates a poll

Parameters
  • pollAddress string poll contract address
  • choiceId int vote (0 = yes, 1 = no)
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.initializeRound();
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

claimEarnings

Claims token and eth earnings from the sender's lastClaimRound + 1 through a given endRound

Parameters
  • endRound string the round to claim earnings until
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.claimEarnings();
// => string

Returns string

bondWithHint

Bonds to a transcoder with hint

Parameters
  • amount string
  • to string
  • oldDelegateNewPosPrev string
  • oldDelegateNewPosNext string
  • currDelegateNewPosPrev string
  • currDelegateNewPosNext string
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.bondWithHint("100", "0x", "0x", "0x", "0x", "0x");
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

estimateGas

Gets the estimated amount of gas to be used by a smart contract method.

Parameters
  • contractName string : name of contract containing method you wish to find gas price for. methodName: name of method on contract. methodArgs: array of argument to be passed to the contract in specified order. tx: (optioanl){ from: address - 0x..., gas: number, value: (optional) number or string containing number }
  • methodName string
  • methodArgs Array
  • tx (optional, default config.defaultTx)
Examples
await rpc.estimateGas("BondingManager", "bond", [10, "0x00....."]);
// => 33454

Returns Promise<number> containing estimated gas price

unbond

Unbonds LPT from an address

Parameters
  • amount string
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.unbond(amount);
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

unbondWithHint

Unbonds LPT from an address with hint

Parameters
  • amount string
  • newPosPrev string
  • newPosNext string
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.unbondWithHint("100", "0x", "0x");
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

setupTranscoder

Sets transcoder parameters

Parameters
  • rewardCut string the block reward cut you wish to set
  • feeShare string the fee share you wish to set
  • pricePerSegment string the price per segment you wish to set
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.setupTranscoder("10", "10", "5");
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

getTargetBondingRate

Get target bonding rate

Examples
await rpc.getTargetBondingRate();
// => string

Returns Promise<string>

withdrawStake

Withdraws earned token (Transfers a sender's delegator bondedAmount to their tokenBalance)

Parameters
  • unbondLockId string? the unbond lock id
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.withdrawStake();
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns TxReceipt

withdrawStakeWithUnbondLock

Withdraws earned token (Transfers a sender's delegator bondedAmount to their tokenBalance)

Parameters
  • unbondlock {id: string, amount: string, withdrawRound: string}
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.withdrawStakeWithUnbondLock(unbondlock);
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns TxReceipt

withdrawFees

Withdraws earned fees (Transfers a sender's delegator fees to their ethBalance)

Parameters
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)
Examples
await rpc.withdrawFees();
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns TxReceipt

getDelegatorUnbondingLocks

Get all the unbonding locks for a delegator

Parameters

  • addr string delegator's ETH address

Examples

await rpc.getDelegatorUnbondingLocks("0xf00...");
// => UnbondingLock [{
//   id: string,
//   delegator: string,
//   amount: string,
//   withdrawRound: string
// }]

Returns Promise<Array<UnbondingLock>>

getDelegatorUnbondingLock

Get an unbonding lock for a delegator

Parameters

  • addr string delegator's ETH address
  • unbondingLockId string unbonding lock ID

Examples

await rpc.getDelegatorUnbondingLock("0xf00...", 1);
// => UnbondingLock {
//   id: string,
//   delegator: string,
//   amount: string,
//   withdrawRound: string
// }

Returns Promise<UnbondingLock>

ABIPropDescriptor

ABI property descriptor

Type: Object

Properties

ContractArtifact

Mostly "truffle-style" ABI artifacts but no bytecode/network properties required

Type: Object

Properties

LivepeerSDKOptions

SDK configuration options

Type: Object

Properties

  • controllerAddress string? The address of the delpoyed Controller contract
  • provider string? The ETH http provider for rpc methods
  • gas number? the amount of gas to include with transactions by default
  • artifacts Object<string, ContractArtifact> an object containing contract name -> ContractArtifact mappings
  • privateKeys Object<string, string> an object containing public -> private key mappings. Should be specified if using the SDK for transactions without MetaMask (via CLI, etc)
  • account (string | number) the account that will be used for transacting and data-fetching. Can be one of the publicKeys specified in the privateKeys option or an index of an account available via MetaMask

LivepeerSDK

An object containing contract info and utility methods for interacting with the Livepeer protocol's smart contracts

Type: Object

Properties

  • config Object<string, any> this prop is mostly for debugging purposes and could change a lot in the future. Currently, it contains the following props: abis, accounts, contracts, defaultTx, eth
  • constants Object<string, any> Exposes some constant values. Currently, it contains the following props: ADDRESS_PAD, DELEGATOR_STATUS, EMPTY_ADDRESS, TRANSCODER_STATUS, VIDEO_PROFILES, VIDEO_PROFILE_ID_SIZE
  • create Function same as the createLivepeerSDK function
  • events Object<string, Object> Object mapping an event name -> contract event descriptor object
  • rpc Object<string, Function> contains all of the rpc methods available for interacting with the Livepeer protocol
  • utils Object<string, Function> contains utility methods. Mostly here just because. Could possibly be removed or moved into its own module in the future

TokenInfo

An object containing the total token supply and a user's account balance.

Type: Object

Properties

  • totalSupply string total supply of token available in the protocol (LPTU)
  • balance string user's token balance (LPTU)

Protocol

A Protocol struct

Type: Object

Properties

  • paused boolean the protocol paused or not
  • totalTokenSupply string total token supply for protocol
  • totalBondedToken string total bonded token for protocol
  • targetBondingRate string target bonding rate for protocol
  • transcoderPoolMaxSize string transcoder pool max size

TxReceipt

Transaction receipt

Type: Object

Properties

  • transactionHash string the transaction hash
  • transactionIndex BN the transaction index
  • blockHash string the transaction block hash
  • blockNumber BN the transaction block number
  • cumulativeGasUsed BN the cumulative gas used in the transaction
  • gasUsed BN the gas used in the transaction
  • contractAddress string the contract address of the transaction method
  • logs Array<Log> an object containing logs that were fired during the transaction

Log

An object representing a contract log

Type: Object

Properties

  • logIndex BN the log index
  • blockNumber BN the log block number
  • blockHash string the log block hash
  • transactionHash string the log's transaction hash
  • transactionIndex BN the log's transaction index
  • address string the log's address
  • data string the log's data
  • topics Array<string> the log's topics

FaucetInfo

Information about the status of the LPT faucet

Type: Object

Properties

  • amount string the amount distributed by the faucet
  • wait string the faucet request cooldown time
  • next string the next time a valid faucet request may be made

Broadcaster

A Broadcaster struct

Type: Object

Properties

  • address string the ETH address of the broadcaster
  • deposit string the amount of LPT the broadcaster has deposited
  • withdrawBlock string the next block at which a broadcaster may withdraw their deposit

Delegator

A Delegator struct

Type: Object

Properties

  • allowance string the delegator's LivepeerToken approved amount for transfer
  • address string the delegator's ETH address
  • bondedAmount string The amount of LPTU a delegator has bonded
  • delegateAddress string the ETH address of the delegator's delegate
  • delegatedAmount string the amount of LPTU the delegator has delegated
  • fees string the amount of LPTU a delegator has collected
  • lastClaimRound string the last round that the delegator claimed reward and fee pool shares
  • pendingFees string the amount of ETH the delegator has earned up to the current round
  • pendingStake string the amount of token the delegator has earned up to the current round
  • startRound string the round the delegator becomes bonded and delegated to its delegate
  • status string the delegator's status
  • withdrawableAmount string the amount of LPTU a delegator can withdraw
  • withdrawRound string the round the delegator can withdraw its stake
  • nextUnbondingLockId string the next unbonding lock ID for the delegator

Transcoder

A Transcoder struct

Type: Object

Properties

  • active boolean whether or not the transcoder is active
  • address string the transcoder's ETH address
  • rewardCut string % of block reward cut paid to transcoder by a delegator
  • feeShare string % of fees paid to delegators by transcoder
  • lastRewardRound string last round that the transcoder called reward
  • pendingRewardCut string pending block reward cut for next round if the transcoder is active
  • pendingFeeShare string pending fee share for next round if the transcoder is active
  • pendingPricePerSegment string pending price per segment for next round if the transcoder is active
  • pricePerSegment string price per segment for a stream (LPTU)
  • status string the transcoder's status
  • totalStake string total tokens delegated toward a transcoder (including their own)

UnbondingLock

An UnbondingLock struct

Type: Object

Properties

  • id string the unbonding lock ID
  • delegator string the delegator's ETH address
  • amount string the amount of tokens being unbonded
  • withdrawRound string the rou